Электронная почта зародилась еще тогда, когда не было Интернета, и сразу же вошла в жизнь людей как неотъемлемый атрибут современности. Сейчас послать письмо по e-mail сможет любой школьник, однако далеко не любой сможет настроить всю сложную систему, которая лежит в основе процесса отправки/получения сообщений. Обычному человеку или начинающему системному администратору может показаться, что электронная почта - это некий нерушимый монолит, одна или две программы принимающие и отправляющие сообщения. В самых простейших случаях так и есть, однако та почта, с которой большинство из нас сталкивается каждый день, является чем-то большим.
Защищайтесь, сударь
Если вы собираетесь использовать почтовый сервер только внутри организации и в Интернет он смотреть не будет, то на этом настройку можно было бы и оставить. Однако, если электронная почта будет приходить из Интернета и планируется активное ее использование, необходимо надежно оградить себя от спама и вирусов. Если вы считаете, что не обязательно, то сильно ошибаетесь. Около 70% почтового трафика является спамовским. Вряд ли вы захотите придя на работу с утра обнаружить у себя несколько тысяч писем с предложениями приобрести столь нужную вам виагру или удлинить/укоротить избранные части тела.
Приступим к установке Amavisd-new, SpamAssassin и ClamAV.
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip unarj bzip2 |
Внесем некоторые изменения в конфигурационные файлы amavisd:
mcedit /etc/amavis/conf.d/50-user $forward_method = 'smtp:127.0.0.1:10025'; # where to forward checked mail $notify_method = $forward_method; # where to submit notifications $virus_quarantine_to = 'undef'; $sa_local_tests_only = 0;@inet_acl = qw( 127.0.0.1 ); |
mcedit /etc/amavis/conf.d/20-debian_defaults $final_virus_destiny = D_REJECT; # (defaults to D_BOUNCE) $viruses_that_fake_sender_re = new_RE( #$QUARANTINEDIR = "$MYHOME/virusmails"; $QUARANTINEDIR = undef; $sa_tag_level_deflt = -999; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 6.3; # add 'spam detected' headers at that level $sa_kill_level_deflt = 999; # triggers spam evasive actions |
Добавим пользователя clamav в группу amavis:
adduser clamav amavis |
Сейчас заставим postfix отдавать почту для проверки антивирусом. Отредактируйте файл /etc/postfix/master.cf:
mcedit /etc/postfix/master.cf : smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 |
Так же добавьте в конец /etc/postfix/main.cf:
content_filter=smtp-amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings |
Перестартуйте его и посмотрите нет ли ошибок в лог-файле:
/etc/postfix/restart tail /var/log/mail.log |
Установим ещё несколько инструментов и настроим spamassassin:
apt-get install razor pyzor dcc-client |
Отредактируем файл /etc/spamassassin/local.cf:
mcedit /etc/spamassassin/local.cf : # rewrite_header Subject *****SPAM*****# report_safe 1 # trusted_networks 212.17.35. # lock_method flock # dcc use_dcc 1 dcc_path /usr/bin/dccproc dcc_add_header 1 dcc_dccifd_path /usr/sbin/dccifd #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1 #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |
Сейчас нужно разрешить spamassassin запускаться:
mcedit /etc/default/spamassassin : ENABLED=1 |
И перезапустить нужные приложения:
/etc/init.d/postfix restart /etc/init.d/amavis restart /etc/init.d/clamav-daemon restart /etc/init.d/spamassassin restart |
Попробуйте создать пользователей и попробовать обменяться письмами. В том числе и письмами с прикрепленными exe-файлами. Если вы все правильно настроили – фильтр должен задержать такие файлы и прислать вам соответствующие уведомления.
Послесловие
Тему настройки почтового сервера под Linux можно развивать бесконечно. Во многом этому способствует модульность всех входящих в наш комплект приложений. Несколькими несложными действиями можно заставить раскладываться письма по папкам в зависимости от их содержимого, настроить доступ через браузер, настроить шифрованное соединение с почтовым сервером, добавить графическое средство для администрирования нашего сервера и многое другое.