Разберем как выполняется настройка spamassassin и других пакетов, позволяющих фильтровать входящие письма.
Для организации почтового сервера чаще всего применяются связка Postfix и Dovecot. Однако нормальной работа почтовой системы на сервере может считаться только в случае наличия защиты от спама.
Будем конфигурировать антиспам систему на базе Spamassassin, Postgrey, ClamAV. Изначально имеем функционирующий почтовый сервер Postfix + Dovecot на Debian.
Устанавливаем из репозитория необходимые пакеты:
apt-get install clamav-milter clamav-unofficial-sigs postgrey
Начнем с конфигурации clamav
mcedit /etc/default/clamav-milter
SOCKET_RWGROUP=postfix
Запускаем реконфигурицю пакета в псевдографическом интерфейсе:
dpkg-reconfigure clamav-milter
Последовательно указываем значения по-умолчанию, следуя подсказкам реконфигуратора.
Приведены только скриншоты тех этапов реконфигурации на которых значения по умолчанию изменялись — в остальных случаях для получения рабочей конфигурации достаточно подтверждать выбор стандартного значения
На этом конфигурация clamav закончена.
service postfix restart
При перезапуске службы в выводе можно заметить сообщения об ошибках следующего вида:
Setting up clamav-daemon (0.99.2+dfsg-0+deb8u2) …
[FAIL] Clamav signatures not found in /var/lib/clamav … failed!
[FAIL] Please retrieve them using freshclam … failed!
[FAIL] Then run '/etc/init.d/clamav-daemon start' … failed!
Если они выводятся выполняем команду
freshclam
Затем запускаем clamav-daemon
/etc/init.d/clamav-daemon start
Установка и настройка SpamAssassin
Устанавливаем SpamAssassin.
apt-get install spamassassin spamc spamass-milter
Создаем системного пользователя, от имени которого будет выполняться процесс
adduser spamd
--
disabled-login
Вносим изменения в конфигурационный файл:
mcedit /etc/default/spamassassin
Прежде всего даем указание на необходимость включения демона
ENABLED=1
Далее задаем:
SPAMD_HOME="/home/spamd/"
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SPAMD_HOME} -s ${SPAMD_HOME}spamd.log"
Указываем имя pid файла
PIDFILE="${SPAMD_HOME}spamd.pid"
Правила Spamassassin должны автоматически обновляться, даем указание на необходимость этого:
CRON=1
Чтобы спам успешно отсеивался в конфигурационном файле нужно задать правила, в соответствии с которыми будет работать пакет
mcedit /etc/spamassassin/local.cf
SpamAssassin по умолчанию будет отсеивать письма, набравшие более 5.0 баллов (баллы прибавляются при присутствии в письмах того или иного признака спама).
rewrite_header Subject ***** SPAM _SCORE_ *****
report_safe 0
required_score 5.0
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
skip_rbl_checks 0
use_razor2 0
use_dcc 0
use_pyzor 0
На этом все, чтобы SpamAssassin мог работать с Postfix сделаем указание на необходимость подгрузки SpamAssassin
mcedit /etc/postfix/master.cf
Добавляем фильтр:
smtp inet n - - - - smtpd
-o content_filter=spamassassin
Также добавляем следующие параметры:
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Строки должны начинаться с 2 пробелов, в противном случае при перезапуске службы могут выводиться предупреждения о неверной конфигурации
Создаем файл, в котором указываем сокет, путь к конфигурационному файлу и максимальный размер письма, которое будет проверять spamassassin
mcedit /etc/spamassassin/spamc.conf
-U /var/spool/postfix/spamass/spamass.sock
-u spamass-milter
-s 350000
Обновляем данные
sa-update
Перезапускаем службы:
service spamassassin start
service postfix restart
Настройка postgrey
Поскольку пакет установили на начальном этапе переходим к настройке, которая элементарна
Смотрим на каком порту работает postgrey
netstat -nltp | grep postgrey
Обычно это 10023 или 6000
Идем в конфигурационный файл и указываем хости и порт, а также необходимое время задержки при приеме письма
mcedit /etc/default/postgrey
POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=60"
Принцип действия основывается на том, что все письма от неизвестных отправителей ставятся на hold на указанное в конфиге время — и принимаются после повторной попытки отправки сервером на другой стороне. Серверы спамеров из соображений снижения нагрузки на инфраструктуру подобных попыток, как правило, не предпринимают.
Перезапускаем службы
/etc/init.d/postgrey restart
service postfix restart
Читайте про настройку веб-интерейса для работы с почтой, который взаимодействует с файлами на диске и не использует базы при этом очень удобен (подходит только для частного использования).