вторник, 25 октября 2011 г.

Комплексная почтовая система Этап 2 (postfix + amavis + clamAV + SpamAssassin)

Данная статья является продолжением первой.
Здесь мы рассмотрим как добавить к почтовой системе проверку писем на наличие вирусов и спама. Для этого используется антивирус ClamAV и фильтр спама SpamAssassin. Так же мы рассмотрим методы фильтрации спама. Приступим:

1) Установим необходимые приложения:
sudo apt-get install amavisd-new spamassassin clamav-daemon
Для улучшения функции распознавания спама в электронных письмах различного формата:
sudo apt-get install libnet-dns-perl libmail-spf-query-perl pyzor razor
Для проверки вирусов в архивах устанавливаем следующие пакеты:
sudo apt-get install arj bzip2 cabextract cpio file gzip lha nomarch pax rar unrar unzip unzoo zip zoo

2) Переходим к настройке:
ClamAV
Для того чтоб ClamAV мог взаимодействовать с Amavis их необходимо поместить в соответствующие группы группы:
sudo adduser clamav amavis
sudo adduser amavis clamav
Обязательно нужно обновить бинарные файлы и антивирусные базы:
sudo freshclam
Spamassassin
Необходимо включить spamassassin и разрешить автоматическое обновление его базы данных. Для этого отредактируем конфигурационный файл: /etc/default/spamassassin
Нужно подправить два параметра:
ENABLED=1
CRON=1
Теперь можно перезапустить spamassassin с помощью команды:
sudo /etc/init.d/spamassassin restart
Amavis
Сначала нужно включить проверку писем на наличие вирусов и спама. Для этого нужно отредактировать конфигурационный файл: /etc/amavis/conf.d/15-content_filter_mode. В файле нужно разкомментировать два параметра:
@bypass_virus_checks_maps = (    \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);


@bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Для правильной обработки писем предназначенных для локального домена, в конец конфигурационного /etc/amavis/conf.d/20-debian_defaults нужно добавить параметр:
@local_domains_acl = ('.');
Теперь можно перезагрузить amavis:
sudo /etc/init.d/amavis restart
Postfix
Для того чтоб postfix использовал amavis при обработки электронных писем, его нужно использовать в качестве кентент фильтра. Amavis запускается на петлевом интерфейсе и ожидает подключение на порту 10024. Для этого в конец конфигурационного файла /etc/postfix/main.cf нужно добавить параметр
content_filter = smtp-amavis:[127.0.0.1]:10024
Теперт postfix с помощью протокола smtp будет отправлять на amavis электронные письма для проверки их на наличие вирусов и спама, а затем получать их обратно тем же протоколом с результатом проверки. Для этого в postfix нужно настроить дополнительные smtp клиент и сервер. Это делается в конфигурационном файле: /etc/postfix/master.cf. Вконец файла нужно добавить такие параметры:
smtp-amavis     unix    -       -       -       -       2       smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Ниже транспорта pickup нужно добавить два параметра:
         -o content_filter=
-o receive_override_options=no_header_body_checks

Теперь можно перезапустить postfix:
sudo /etc/init.d/postfix reload
На этом базовая настройка закончена, можно переходить к проверке.

3) Проверка работы
Нужно убедиться в правильной работе сервиса amavis. Для этого выполни к нему telnet-подключение:
telnet localhost 10024 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready ^]
Если в ответ мы получим сообщение ESMTP amavisd-new service ready значит все работает.

4) Режимы фильтрации почты:
Конфигурационный файл /etc/amavis/conf.d/21-ubuntu_defaults содержит параметры отвечающие за режимы фильтрации писем содержащих спам и вирусы.
$final_virus_destiny - указывает режим фильтрации вирусов;
$final_spam_destiny - указывает режим фильтрации спама;
Существуют такие режимы фильтрации:
D_DISCARD - отбросить письмо;
D_REJECT - отбросить письмо и отослать отправителю письма предупреждение;
D_BOUNCE - отбросить письмо и поместить его в карантин;
D_PASS - доставить письмо получатель с пометкой в теме письмо.

На этом второй этап окончен.
Этап 3

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

Отправить комментарий