пятница, 14 января 2011 г.

смотрим, какие порты в системе открыты

lsof -Pni4 | grep LISTEN

ssh brute force. Закроем двери

Никогда не думал, что мой домашний комп кому-то понадобиться... Сегодня глянул логи auth.log и упал на землю - 700 записей с неудачными попытками авторизироваться к моему компу по ssh!
  Первым делом я полез в конфиг ssh и изменил параметр:
ListenAddress 0.0.0.0 на ListenAddress х.х.х.х (указал интерфейс с которого принимать запросы)
  Первое что мне показал гугл было:
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
  И еще:
apt-get install fail2ban
/etc/fail2ban/jail.conf


полезная программуля denyhosts, кладёт нехорошие айпишники в /etc/hosts.deny и отсылает отчёт об этом на мыло.

понедельник, 10 января 2011 г.

Жизнь без GUI или работа в командной строке

Поставил не так давно серверную ОС графики естественно там нет. Сеть настроил, NAT, web, squid, samba.
А вот с принтером не все так просто...
Случайно удалил принтер. поставил так:

lpadmin -p Photosmart_C3100 -E -v socket://127.0.0.1:632 -P /path/to/ppd -u allow:all


lpadmin -d Photosmart_C3100 - добавил его по умолчанию
lpstat -p
lpstat -d - проверяем))

Удаляем принтер:

lpadmin -x HP-Photosmart-3100


lpq - просмотр очереди печати
lprm - удаление из очереди

http://ru.wikibooks.org/wiki/Ubuntu

How to print on remote Ubuntu machine via samba

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
 gedit /etc/samba/smb.conf
Find the following lines
...
 # printing = cups
 # printcap name = cups
 ...
and uncomment them.
printing = cups
 printcap name = cups
Restart cups server
sudo /etc/init.d/cups restart

воскресенье, 9 января 2011 г.

консоль и торрент

apt-get install deluge-common deluge-webui deluge-console

apt-get install deluge
deluge --ui web&
Web интерфейс работает по порту 8112.
Заходим через браузер на нужный сервер по этому порту.
Пароль по умолчанию - deluge

сканирование с командной строки

root@share:/home/ur4a# scanimage --format=tiff > /home/ur4a/share/001.tif

На основе статьи: http://www.bible-mda.ru/soft/scanning/scanning-linux.html

среда, 5 января 2011 г.

snmp+mrtg

Небходима библиотека: apt-get install gcc
http://www.net-snmp.org качаем последнюю версию snmp.
$ sudo su
# cd /путь до папки куда распаковали содержимое
# ./configure - далее отвечаем на вопросы.
этот конфиг проверен лично мной и используется. ссылка в конце статьи.

sudo gedit /etc/mrtg.cfg:
######################################################################
# Multi Router Traffic Grapher -- Sample Configuration File
######################################################################
# This file is for use with mrtg-2.5.4c
# Global configuration

RunAsDaemon: yes
LogDir: /var/log/mrtg
WorkDir: /var/www/mrtg
WriteExpires: Yes
EnableIPv6: no
#HtmlDir: /var/www/mrtg
#ImageDir: /var/www/mrtg #images

###########################
# Сетевой интерфейс маршрутизатора

Title[wlan0]: Output interface
PNGTitle[wlan0]: Interface to local #Internet
MaxBytes[wlan0]: 64000
AbsMax[wlan0]: 128000
Options[wlan0]: growright, bits
SetEnv[wlan0]: MRTG_INT_IP="192.168.1.1" MRTG_INT_DESCR="wlan0"
Target[wlan0]: 2:public@localhost:
PageTop[wlan0]: < h1 >
Output interface< /h1 >
YLegend[wlan0]: bits/s
ShortLegend[wlan0]: b/s
Legend1[wlan0]: Incoming Traffic
Legend2[wlan0]: Outgoing Traffic
Legend3[wlan0]: Maximum Incoming Traffic
Legend4[wlan0]: Maximum Outgoing Traffic
LegendI[wlan0]:  In:
LegendO[wlan0]:  Out:
WithPeak[wlan0]: ymwd

# Сетевой интерфейс маршрутизатора

Title[eth0]: Output interface
PNGTitle[eth0]: Interface to Internet
MaxBytes[eth0]: 64000
AbsMax[eth0]: 128000
Options[eth0]: growright, bits
SetEnv[eth0]: MRTG_INT_IP="93.170.13.118" MRTG_INT_DESCR="eth0"
Target[eth0]: 2:public@localhost:
PageTop[eth0]: < h1 > Output interface< / h1 >
YLegend[eth0]: bits/s
ShortLegend[eth0]: b/s
Legend1[eth0]: Incoming Traffic
Legend2[eth0]: Outgoing Traffic
Legend3[eth0]: Maximum Incoming Traffic
Legend4[eth0]: Maximum Outgoing Traffic
LegendI[eth0]:  In:
LegendO[eth0]:  Out:
WithPeak[eth0]: ymwd

###########################
# CPU

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[cpu]: public@127.0.0.1
MaxBytes[cpu]: 100
Title[cpu]: CPU Load
PageTop[cpu]: < H1 >Active CPU Load %< / H1 >
Unscaled[cpu]: ymwd
ShortLegend[cpu]: %
YLegend[cpu]: CPU Utilization
Legend1[cpu]: Active CPU in % (Load)
Legend2[cpu]:
Legend3[cpu]:
Legend4[cpu]:
LegendI[cpu]: Active
LegendO[cpu]:
Options[cpu]: growright,nopercent

###########################
# Memory

LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[mem]: < H1 >Free Memory< / H1 >
Options[mem]: nopercent,growright,gauge,noinfo
Title[mem]: Free Memory
MaxBytes[mem]: 1000000
kMG[mem]: k,M,G,T,P,X
YLegend[mem]: bytes
ShortLegend[mem]: bytes
LegendI[mem]: Free Memory:
LegendO[mem]:
Legend1[mem]: Free memory, not including swap, in bytes
sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

моя статистика: http://darvin.info-lan.me/mrtg

snort - ip пакеты

# apt-get install snort
# gedit /etc/snort/snort.conf
var HOME_NET 192.168.1.0/24
вывод инфы с определенного устройства: # snort -vd -i wlan0

вторник, 4 января 2011 г.

iptables. filter

# iptables -t filter -F
# iptables -t filter -X


программа> колонка правил> действие (в данном примере очистка правил в колонке "Фильтр")
Далее примеры:
# iptables -t filter -A INPUT -i eth0 -p tcp --dport 111:65535 -j DROP
iptables -t filter -A INPUT -d 127.0.0.1 -i lo -j ACCEPT

Утилита iptables-save & iptables-restore первая выводит правила на консоль, вторая восстанавливает данные из файла.

# iptables-save > fw.rules
# cat fw.rules


sudo gedit /etc/iptables.rules

eth0 -интернет
wlan0 - локалка
#################


# Generated by iptables-save v1.3.6 on Tue May 6 21:15:27 2008
*nat
:PREROUTING ACCEPT [1521:139658]
:POSTROUTING ACCEPT [10:1372]
:OUTPUT ACCEPT [66:5753]
-A PREROUTING -d ! 192.168.1.0/255.255.255.0 -i wlan0 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.1.1:3128
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [28890:12820098]
:FORWARD ACCEPT [22:3088]
:OUTPUT ACCEPT [30305:14410374]
-A INPUT -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 5222 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 5060 -j ACCEPT
-A INPUT -i eth0 !wlan0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -o eth0 !wlan0 -p tcp -j DROP
COMMIT


########################

# Generated by iptables-save v1.3.6 on Tue May 6 21:15:27 2008
*filter
:INPUT ACCEPT [782:109309]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1035:267913]
-A INPUT -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 23 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 5222 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 5060 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 1:20 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 81:5221 -j DROP
-A INPUT -i wlan0 -p tcp -m tcp --dport 1:65535 -j ACCEPT
COMMIT

*nat
:PREROUTING ACCEPT [1521:139658]
:POSTROUTING ACCEPT [10:1372]
:OUTPUT ACCEPT [66:5753]
-A PREROUTING -d ! 192.168.1.0/255.255.255.0 -i wlan0 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.1.1:3128
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

########################
Теперь для внешнего мира открыты порты 21, 80, 5222, 5060, а для локалки работает полноценно NAT

суббота, 1 января 2011 г.

samba+user


Сначала создаем группы пользователей на сервере
groupadd admins
groupadd usrs
Затем создаем пользователей и включаем их в соответствующие группы
useradd -M -g admins -c "комментарий" user1
...
useradd -M -g admins -c "комментарий" usern
-M означает что создаваемые пользователи будут созданы без создания домашнего каталога в каталоге /home.
-g группа в которую будет помещен пользователь.
-c комментарий.
Точно также заводим пользователей в группу usrs
useradd -M -g usrs -c "комментарий" usr1
...
useradd -M -g usrs -c "комментарий" usrn
Задаем пароли для вновь созданных пользователей
passwd < имя_пользователя >
добавляем этих пользователей в Samba
smbpasswd -a < имя_пользователя >
и разрешаем пользователей
smbpasswd -e < имя_пользователя >

Теперь переходим к файлу /etc/samba/smb.conf. Привожу свой итоговый файл конфигурации.
[global]
dos charset = CP866
unix charset = KOI8-R
encrypt password = yes
smb passwd file = /etc/samba/smbpasswd
max log size = 50
wins serwer = IP-адрес сервера
socket options =TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
server string = Super-Puper Linux Server :)))
security = user
os level = 20
load printers =yes
log file = /var/log/samba/%m.log
workgroup = имя_группы
dns proxy = no
[FS]
path = /mnt/data/FS
comment = "Catalog FS"
read only = No
force group = +admins
directory mask = 0777
create mask = 0777
[CB]
path = /mnt/data/CB
comment = "Catalog CB"
read only = No
force group = +admins
directory mask = 0777
create mask = 0777
Рассмотрим что означает каждая опция.
Опция dos charset = CP866 задает с каким набором символов Samba, будет "разговаривать" с клиентами DOS.
Опция unix charset = KOI8-R задает в какой кодировке Samba, будет хранить файлы на сервере. Samba должна знать как конвертировать текст в кодировку используемую другими клиентами. Здесь я должен заметить что при установке ASPLinux я выбрал локаль по умолчанию CP1251. Так как пользователями samba будут windows-клиенты то эта установка в сочетании с dos charset и unix charset без проблем позволяет пользователям создавать на сетевом ресурсе файлы с русскими именами. И на сервере отображаться эти файлы будут также русскими буквами. Конечно вы можете использовать другую кодировку.
Опция encrypt password = yes означает что пароли будут передаваться по сети в зашифрованном виде. Следующие три параметра я описывать не буду, думаю интуитивно они понятны.
Строка socket options =TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 присутствовала в файле созданном по умолчанию и я не стал ее менять, она отвечает за сетевое соединение между клиентом и сервером и об этом параметре можно почитать в man smb.conf.
Параметр server string задает комментарий который будет выводиться например в Проводнике для этого сервера.
Параметр security = user означает что аутентификация пользователей на сервере samba будет проходить на основании полученных от клиента имени пользователя и пароля. Существуют и другие значения параметра security.
Парметр os level задает с кем Samba ассоциирует себя в сети. Значение 20 это значение по умолчанию, при этом Samba считет себя STAND ALONE сервером. Чем выше значение os level тем выше роль сервера в сети. Если вы делаете контроллер домена на Samba то os level должен быть ну например 65.
Строка load printers означает что если у вас на сервере будет устанолен принтер, то он будет виден в сети.
Следующие две строки интуитивно понятны, скажу только что %m.log означает что в соответствующем каталоге для каждого пользователя стучащегося в Samba будет вестись отдельный логфайл с именем пользователя.
Строка dns proxy = no говорит что у меня в сети уже есть dns сервер с которым Samba будет общаться и прокси мне не нужен. Возможно эту строку можно и вообще не писать.
Перейдем к описанию ресурсов.
path это путь к каталогу ресурса. comment - комментарий, read only = No означает что ресурс не является каталогом только для чтения. Вместо этого параметра могут использоваться его синонимы, но нужно внимательно прочитать в man smb.conf что они означают, есть много нюансов.
Параметр force group самый интересный. Его присутствие решает проблему описанную в официальном HOWTO когда файлы созданные одним пользователем не могут изменяться другими. Для этого вводится параметр force group и все файлы создаваемые или редактируемые разными пользователями будут иметь группу владельца указанную в парметре force group. Наряду с этим параметром применяется параметр force user, но в моем случае применение этого параметра приводило к тому что члены группы usrs получали такие же права как и admins и мне пришлось его исключить и оставить только force users = +admins
По поводу плюсика:
Точно перевести мне не удалось, по-этому привожу фрагмент из man smb.conf, без перевода. Этот плюсик мне очень помог получить то что нужно.
Цитата из man smb.conf
In Samba 2.0.5 and above this parameter has extended functionality in the following way. If the group name listed here has a '+' character prepended to it then the current user accessing the share only has the primary group default assigned to this group if they are already assigned as a member of that group. This allows an administrator to decide that only users who are already in a particular group will create files with group ownership set to that group. This gives a finer granularity of ownership assignment. For example, the setting force group = +sys means that only users who are already in group sys will have their default primary group assigned to sys when accessing this Samba share. All other users will retain their ordinary primary group.
If the force user parameter is also set the group specified in force group will override the primary group set in force user.
Default: force group =
Example: force group = agroup
Конец цитаты.
Параметр directory mask задает какие права доступа будут иметь вновь создаваемые директории, а параметр create mask задает тоже самое, но для вновь создаваемых файлов.
Теперь перейдем непосредственно к каталогам. Для размещения файловых ресурсов я создал специальный каталог /mnt/data. В этом каталоге от имени пользователя входящего в группу admins создаем каталоги которые будут являться шарами со следующими правами доступа:
drwxrwx-wx 6 user1 admins 4096 Дек 7 09:07 .
drwxrwxrwx 3 root root 4096 Дек 7 11:57 ..
drwxrwx-wx 3 user1 admins 4096 Дек 7 14:58 FS
drwxrwx-wx 3 user1 admins 4096 Дек 7 15:03 CB
Почему нужно создавать каталоги и файлы от имени определенного пользователя? Смотри выше про параметр force group. Как видите я снял атрибут чтение для "остальных" пользователей с каталогов FS и CB. В результате пользователь на рабочей станции Windows имеет возможность подключить сетевые диски FS и CB но при попытке войти внутрь получает сообщение о том что у него нет доступа. Однако прикладная программа может работать с файлами на этих сетевых дисках.
Снятие атрибута чтение в первой строке приведенного примера необязательно.

smb.conf

[global]
workgroup = WORKGROUP
netbios name = Server
server string = Linux Server
bind interfaces only = yes
interfaces = eth0, wlan0, lo
hosts deny = ALL
hosts allow = 192.168.1.1 192.168.1.98 192.168.1.99 127.0.0.1
printcap name = /etc/printcap
printing = cups
cups options = raw
log file = /var/log/samba/log.smbd
max log size = 50
debug level = 5
security = share
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
local master = yes
preferred master = yes
domain master = no
wins support = no
dns proxy = no
guest ok = yes
guest account = nobody
unix charset = utf8
dos charset = cp1251
display charset = cp1251

[ftp]
path = /home/ftp/pub
writable = no
guest ok = yes
create mask = 0666
directory mask = 0777
read only = yes

#######################################################################

smbpasswd -a "username"

h265.sh

#!/bin/bash file="../mp4" if [ -d $file ]; then         echo "  Директория существует :-) "         for i in *.mp4; do f...