среда, 11 ноября 2009 г.

Инсталляция и использование DCC клиента на FreeBSD

DCC можно использовать в виде клиента или в виде сервера. Для того чтобы использовать серверный вариант необходимо получить server-ID. Получить его можно (следуя инструкции по инсталляции) через соответствующую веб-форму на сайте производителя. Чтобы вас рассматривали как успешного кандидата на получение этого идентификационного кода, вам необходимо иметь почтовый "оборот" не менее 100 тысяч писем в день и 4 гигабайта оперативной памяти для процесса сервера DCC. Поэтому далее обсуждать будем только "клиентский" вариант.
Рассмотрим случай, когда роль почтового сервера играет sendmail. Взаимодействие с DCC осуществляется через механизм мильтеров.
#uname -prs
FreeBSD 7.0-RELEASE i386
# cd /usr/ports
# make search name=dcc


...
Port: dcc-dccd-1.3.115
Path: /usr/ports/mail/dcc-dccd
Info: Distributed Checksum Clearinghouse bulk email detector
Maint: cgreen@sentex.net
B-deps:
R-deps:
WWW: http://www.rhyolite.com/dcc/
...


#cd mail/dcc-dccd
#make install

Делаем без clean, так как нам понадобиться директория work
Правим фаерволл (я использую pf):
#vim /etc/pf.conf
pass out on fxp0 proto udp from fxp0 to any port { 6276 6277 }
pass in on fxp0 proto udp from any port {6276 6277 } to fxp0

Правим
#vim /var/dcc/dcc_conf
DCCM_ENABLE=on
# vim /etc/rc.conf
dccm_enable="YES"
# cd mail/dcc-dccd/work/dcc-1.3.115/
# ./configure

В директории mail/dcc-dccd/work/dcc-1.3.115/misc/ появится файл dcc.m4. Скопируем его в /usr/local/share/sendmail/cf/feature/.
Далее - комментируем в нем всю часть, относящуюся к LOCAL_RULESETS. И добавляем в конфигурационный mc файл, находящийся в /etc/mail:
FEATURE(`dcc')dnl
Добавляем в том же файле "dcc" в строчку перечисления используемых мильтеров (если это единственный мильтер, который мы используем, то слово dcc будет одно):
define(`confINPUT_MAIL_FILTERS', `milter1,milter2,...,dcc')
#vim /var/dcc/whiteclnt
mx ip xxx.xxx.xxx.xxx адрес вашего почтовика
ok env_to postmaster административные почтовые адреса
ok env_to root@xxx.xxx.xxx.xxx
ok ip 10.10.0.0/16 ваша локальная сеть


Стартуем мильтер и рестартуем почтовый сервер:
# /usr/local/etc/rc.d/dccm start
# /usr/local/etc/rc.d/sendmail.sh stop start
#ps ax|grep dcc


...
47063 ?? Is 0:00.00 /usr/local/dcc/libexec/dccm -Idcc -tREP,20 -tCMN,5, -wwhiteclnt -llog -Uuserdirs -SHELO -Smail_host -SSender -SList-ID
47065 ?? S 0:00.20 /usr/local/dcc/libexec/dccm -Idcc -tREP,20 -tCMN,5, -wwhiteclnt -llog -Uuserdirs -SHELO -Smail_host -SSender -SList-ID
...


Полезными будут следующие ссылки:
http://linux.die.net/man/8/dcc
http://www.rhyolite.com/dcc/INSTALL.html#configure-dccproc
http://kocmuk.ru/2008/12/27/dcc-distributed-checksum-clearinghouse/

Комментариев нет: