понедельник, 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» следующие строки

  1. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
  2. /usr/sbin/ngctl -f - << EOF
  3. mkpeer if0: tee lower left
  4. name if0:lower tee0
  5. connect if0: if0:lower upper right
  6. mkpeer tee0: one2many left2right many0
  7. name tee0:left2right one2many0
  8. connect tee0: one2many0: right2left many1
  9. mkpeer one2many0: netflow one iface0
  10. name one2many0:one netflow
  11. mkpeer netflow: ksocket export inet/dgram/udp
  12. msg netflow: setifindex { iface=0 index=0 }
  13. msg netflow:export connect inet/127.0.0.1:7771
  14. EOF
«if0» меняем на свой интерфейс. Если надо собирать данные с нескольких сетевых интерфейсов, множим блок «/usr/sbin/ngctl -f - << EOF ... EOF» и в каждом дополнительном блоке вместо «if0» вписываем нужный сетевой интерфейс. Так же меняем порядковые номера нодов и значение параметра «iface».
Чтобы загрузились необходимые модули добавляем в файл «/boot/loader.conf»
  1. netgraph_load="YES"
  2. ng_netflow_load="YES"
  3. ng_socket_load="YES"
  4. ng_tee_load="YES"
  5. ng_iface_load="YES"
  6. ng_one2many_load="YES"
  7. ng_ksocket_load="YES"
  8. 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») добавляем
  1. obey pam restrictions = Yes
Создаем шару для домашних папок пользователей
  1. [homes]
  2. valid users = DOMAIN\%S
  3. read only = no
  4. browseable = no
  5. create mode = 0600
  6. directory mode = 0700
По умолчанию Samba считает, что домашние папки пользователей находятся в «/home/DOMAIN/user». Если вы хотите разместить их в другом месте, задайте явно параметр «template homedir» в секции «global» и рестартуйте winbindd.
Нужно создать директорию «/home/DOMAIN», так как pam_mkhomedir не умеет создавать вложенные директории
$ sudo mkdir /home/DOMAIN
Добавляем в файл «pam.d/samba»
  1. 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»:

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