понедельник, 23 марта 2009 г.

Местный провайдер отжигает

Крупнейший интернет-провайдер нашей республики, если не сказать монополист местной связи вообще, «Сахателеком» известил своих клиентов о том, что начиная с 1 апреля текущего года начнёт взимать плату за пока бесплатный входящий трафик со своих почтовых серверов. Плата будет приравнена к ценам за «внешний» интернет.

Интересно узнать, впереди ли мы всей страны с таким вот «нововведением»?

Теперь я в IRC сети ZeroLife

Меня можно найти на каналах #propheta и #freebsd (irc.zerolife.ru:6667). Список других серверов IRC сети ZeroLife можно найти вот тут. Сеть образовалась совсем недавно, но активно развивается. :)

суббота, 14 марта 2009 г.

xargs: многопоточная обработка

Благодаря посту Владимира Бредникова узнал, что xargs благодаря двум ключам помогает организовать многопоточную обработку файлов:

-n X
Ограничивает количество передаваемых вашей программе аргументов. По умолчанию xargs передаёт программе довольно большое число аргументов, поэтому для обработки одного файла за один раз нужно указывать эту опцию.
-P X
Устанавливает количество одновременно выполняемых процессов. По умолчанию xargs запускает только один процесс, но в нашем случае нужно увеличить это число до количества процессоров.
Например, в паре с утилитой find можно в несколько потоков обработать множество картинок, размер которых больше одного мегабайта
$ find ~/Photos -iname '*.jpg' -and -size +1M -print0 | \
xargs -0 -n 1 -P 2 -I'{}' convert '{}' -resize '800x600>' -quality 100 '{}'
P.S. Надо почаще заглядывать в man :)

пятница, 13 марта 2009 г.

Простая конфигурация Netflow для сбора данных о трафике в FreeBSD

Чтобы конфигурация netflow загружалась во время запуска системы добавляем в «/etc/rc.local» следующие строки

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

/usr/sbin/ngctl -f - << EOF

mkpeer if0: tee lower left
name if0:lower tee0
connect if0: if0:lower upper right
mkpeer tee0: one2many left2right many0
name tee0:left2right one2many0
connect tee0: one2many0: right2left many1
mkpeer one2many0: netflow one iface0
name one2many0:one netflow
mkpeer netflow: ksocket export inet/dgram/udp
msg netflow: setifindex { iface=0 index=0 }
msg netflow:export connect inet/127.0.0.1:7771

EOF
«if0» меняем на свой интерфейс. Если надо собирать данные с нескольких сетевых интерфейсов, множим блок «/usr/sbin/ngctl -f - << EOF ... EOF» и в каждом дополнительном блоке вместо «if0» вписываем нужный сетевой интерфейс. Так же меняем порядковые номера нодов и значение параметра «iface».
Чтобы загрузились необходимые модули добавляем в файл «/boot/loader.conf»
netgraph_load="YES"
ng_netflow_load="YES"
ng_socket_load="YES"
ng_tee_load="YES"
ng_iface_load="YES"
ng_one2many_load="YES"
ng_ksocket_load="YES"
ng_ether_load="YES"
Следующим шагом ставим коллектор netflow-трафика, прослушивающий порт «7771» по адресу «127.0.0.1».

среда, 11 марта 2009 г.

Samba + pam_mkhomedir

Возникла необходимость, чтобы при входе на сервер с «samba» для вошедшего пользователя домена создавалась локальная домашняя папка (если отсутствует).

Сперва убедитесь что smbd собран с поддержкой PAM

$ smbd -b | grep WITH_PAM
WITH_PAM
Если PAM не поддерживается, соберите Samba из исходников с ключом «--with-pam».
В файл «etc/smb.conf» (секция «global») добавляем
obey pam restrictions = Yes
Создаем шару для домашних папок пользователей
[homes]
valid users = DOMAIN\%S
read only = no
browseable = no
create mode = 0600
directory mode = 0700
По умолчанию Samba считает, что домашние папки пользователей находятся в «/home/DOMAIN/user». Если вы хотите разместить их в другом месте, задайте явно параметр «template homedir» в секции «global» и рестартуйте winbindd.
Нужно создать директорию «/home/DOMAIN», так как pam_mkhomedir не умеет создавать вложенные директории
$ sudo mkdir /home/DOMAIN
Добавляем в файл «pam.d/samba»
session    required    pam_mkhomedir.so umask=0077
Под занавес ребутаем smbd.

вторник, 3 марта 2009 г.

vsftpd и pam_mkhomedir: «OOPS: Cannot change directory»

Столкнулся с тем, что модуль PAM pam_mkhomedir отказался работать с vsftpd. После захода на FTP не создаются домашние каталоги пользователей и соединение прерывается сообщением сервера об ошибке 500 «OOPS: Cannot change directory». А поиск в интернете ничего вразумительного не дал.
Как оказалось все решается одной строкой в «vsftpd.conf»:

session_support="YES"
Проблема возникает из-за того, что vsftpd по умолчанию не трогает модули сервиса session в PAM.