Что такое Spamassassin?
Spamassassin – это написанный в Perl свободный почтовый фильтр с открытым исходным кодом, предназначенный для выявления спама путем проведения эвристических проверок почтовых заголовков и текстов. Spamassassin способен защитить сервер от огромного количества нежелательных сообщений.
Требования
Прежде чем приступить к выполнению руководства, нужно установить и настроить почтового агента передачи (например, Postfix).
Примечание: все необходимые инструкции можно найти в руководстве «Установка и настройка Postfix на Ubuntu 12.04».
Установка Spamassassin
Для установки Spamassassin и вспомогательного пакета spamc используйте apt-get:
apt-get install spamassassin spamc
После установки Spamassassin нужно выполнить еще несколько действий для корректной работы фильтра.
Добавление пользователя Spamassassin
Для запуска Spamassassin на виртуальном сервере нужно создать нового пользователя.
Для начала создайте группу spams:
groupadd spamd
Затем создайте пользователя по имени spamd с домашним каталогом /var/log/spamassassin:
useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
Создайте сам домашний каталог /var/log/spamassassin:
mkdir /var/log/spamassassin
После этого передайте права на каталог группе spams:
chown spamd:spamd /var/log/spamassassin
Готово! Теперь можно запустить фильтр Spamassassin.
Настройка Spamassassin
Откройте конфигурационный файл Spamassassin:
nano /etc/default/spamassassin
Для активации фильтра нужно найти строку:
ENABLED=0
И изменить ее значение:
ENABLED=1
Чтобы получать новейшие правила фильтрации спама, нужно включить автоматическое обновление правил; для этого найдите строку:
CRON=0
И измените ее значение:
CRON=1
Теперь создайте переменную SAHOME, а в качестве ее значения задайте домашний каталог Spamassassin:
SAHOME="/var/log/spamassassin/"
Найдите переменную OPTIONS и измените ее следующим образом:
OPTIONS="--create-prefs --max-children 2 --username spamd \
-H ${SAHOME} -s ${SAHOME}spamd.log"
Данная переменная задает пользователя, который будет запускать Spamassassin (в данном случае это spamd), а также добавляет домашний каталог, создает лог-файл и ограничивает количество дочерних процессов, которые может породить Spamassassin.
Примечание: если сервер нагружен, рекомендуется увеличить максимальное количество дочерних процессов.
Запустите демон Spamassassin при помощи следующего кода:
service spamassassin start
Теперь приступайте к настройке Postfix.
Настройка Postfix
Несмотря на то, что Spamassasin полностью готов к работе, письма по-прежнему не проходят через спам-фильтр. Чтобы изменить это, нужно открыть конфигурационный файл Postfix:
nano /etc/postfix/master.cf
Найдите в нем строку:
smtp inet n - - - - smtpd
и добавьте:
-o content_filter=spamassassin
Теперь Postfix будет пропускать почту через Spamassassin.
Чтобы настроить дополнительный фильтр контента, добавьте следующую строку в конец файла:
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Чтобы активировать изменения, перезапустите Postfix:
service postfix restart
Теперь Postfix будет использовать Spamassassin в качестве спам-фильтра.
Тонкая настройка Spamassassin
Чтобы использовать Spamassassin по максимуму, нужно создать правила.
Откройте стандартный файл правил SpamAssassin:
nano /etc/spamassassin/local.cf
Чтобы активировать правила, раскомментируйте нужные строки, удалив символ #.
Чтобы добавить заголовки в спам, нужно раскомментировать или добавить строку:
rewrite_header Subject [***** SPAM _SCORE_ *****]
После проведения различных тестов Spamassassin дает оценку каждому сообщению. Следующая строка будет отмечать сообщения как спам, если оценка фильтра превышает значение, указанное в правиле.
required_score 3.0
Чтобы использовать для проверки почты теорему Байеса, раскомментируйте или добавьте строку:
use_bayes 1
bayes_auto_learn 1
Внеся все вышеперечисленные строки, сохраните файл и перезапустите спам-фильтр.
service spamassassin restart
Тестирование работы Spamassassin
Чтобы убедиться в том, что Spamassassin работает должным образом, проверьте лог-файл фильтра:
nano /var/log/spamassassin/spamd.log
или отправьте почту с внешнего сервера и проверьте почтовые заголовки.
Заключение
Spamassassin надежно защитит почтовый ящик от спама. Преимущество Spamassassin состоит в том, что пользователь может создавать правила и управлять ими самостоятельно.