|
Для проверки e-mail на счет всяких там вирусов, используем бесплатный антивирусный пакет clamav. Так же понадобится программа-посредник clamsmtp. Берем первую здесь: http://www.clamav.net/ а вторую здесь: http://memberwebs.com/stef/software/clamsmtp/ Сам clamav ставлю из исходников, хотя сейчас во всех дистрибутивах он есть в виде пакетов, но сборка пакетов порой затягивается. А из исходников завсегда можно пересобрать самую последнюю версию. Итак, начинаем сборку:
[root@fido src]# tar -xhvzf clamav-0.93.1.tar.gz [root@fido src]# cd clamav-0.93.1 [root@fido src]# ./configure CFLAGS="-O0" [root@fido src]# make install [root@fido bin]# cp /home/admin/distrib/src/clamav-0.93.1/etc/clamd.conf /usr/local/etc/ [root@fido bin]# vim /usr/local/etc/clamd.conf
Важно! Комментируем токен Example
LogFile /var/log/clamav/clamd.log PidFile /var/run/clamav/clamd.pid TemporaryDirectory /var/tmp DatabaseDirectory /var/lib/clamav LocalSocket /tmp/clamd.socket User clamav [root@bgp-mailserv ~]# ls -l /var/log/ | grep clamav drwxr-xr-x 2 clamav clamav 4096 Сен 11 2007 clamav [root@bgp-mailserv ~]# ls -l /var/lib/ | grep clamav drwxr-xr-x 3 clamav clamav 4096 Июн 14 17:00 clamav [root@bgp-mailserv ~]# ls -l /tmp/clamd.socket srwxrwxrwx 1 clamav clamav 0 Июн 14 16:22 /tmp/clamd.socket [root@fido bin]# cp /home/admin/distrib/src/clamav-0.93.1/etc/freshclam.conf /usr/local/etc/ [root@fido bin]# vim /usr/local/etc/freshclam.conf
Важно! Комментируем токен Example
DatabaseDirectory /var/lib/clamav UpdateLogFile /var/log/clamav/freshclam.log DatabaseOwner clamav DatabaseMirror database.clamav.net HTTPProxyServer bgp.b-domolink.net HTTPProxyPort 3128 [root@fido bin]# freshclam [root@fido bin]# /usr/local/sbin/clamd [root@fido clamsmtp-1.9]# tar -xhzf clamsmtp-1.9.tar.gz [root@fido clamsmtp-1.9]# cd clamsmtp-1.9 [root@fido clamsmtp-1.9]# ./configure [root@fido clamsmtp-1.9]# make [root@fido clamsmtp-1.9]# make install [root@fido clamsmtp-1.9]# cp /home/admin/distrib/src/clamsmtp-1.9/doc/clamsmtpd.conf /usr/local/etc/clamsmtpd.conf [root@fido clamsmtp-1.9]# vim /usr/local/etc/clamsmtpd.conf OutAddress: 10026 Listen: 0.0.0.0:10025 ClamAddress: /tmp/clamd.socket TempDirectory: /tmp User: clamav
В файл main.cf необходимо добавить две строчки:
content_filter = scan:127.0.0.1:10025 receive_override_options = no_address_mappings
Первая говорит postfix'у о том, что необходимо пересылать всю почту через сервис (фильтр) 'scan' на 10025-ый порт, который, как раз, открыт clamsmtpd. Вторая строчка говорит о том, чтобы postfix не делал никаких манипуляций с адресами до того, как они дойдут до content_filter. Так что получается, что фильтр работает с реальными почтовыми адресами, а не с результатами перевода в виртуальные псевдонимы, маскарадингом и т.п.
В файл master.cf необходимо добавить следующие строки:
# Подключаем clamav # AV scan filter (used by content_filter) scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes # For injecting mail back into postfix from the filter 127.0.0.1:10026 inet n - n - 16 smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8
Примечание: вокруг знака '=' пробелы не ставить. Значение 127.0.0.1:10026 открывает 10026-порт для возвращения почты обратно от clamsmtpd. Остальные значения см. в соответствующем мануале. Вот, собственно, и все.