Это старая версия документа!
Эвристический фильтр спама
SpamAssassin – это очень мощный и гибкий в настройке фильтр спама с различными возможностями, включая «белый список», RBL-тесты, байесовский анализ, анализ текста в заголовке и теле письма. Фильтр может запускаться из пользовательских файлов .procmail и .forward, почтовых программ и служб MTA.
В пакет включена резидентная программа spamassassin (spamd), которая взаимодействует с клиентами (spamc) по TCP. Такая конфигурация позволяет при последовательной обработке нескольких сообщений загружать интерпретатор perl только один раз. Для использования этой конфигурации необходимо установить пакет spamc.
apt-get install spamassassin
Перед запуском нужно установить следующие значения:
ENABLED=1 CRON=1
И разрешить автозапуск:
update-rc.d spamassassin enable
Папка с файлами настройки: /etc/spamassassin
Папка с БД: /var/lib/spamassassin
Запуск:
service spamassassin start
Может работать через прокси, использует Wget.
Для работы через прокси нужно добавить
--proxy http://proxy:3128
в
GTUBE (Generic Test for Unsolicited Bulk Email) текстовая строка для тестирования SpamAssassin. По умолчанию имеет оценку 1000.
Для проверки нужно вставить её в сообщение.
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Пример обучения spam
по папке Junk
sa-learn --dbpath /var/lib/amavis/.spamassassin --spam /home/user/.Junk
Пример обучения ham
по папке In
sa-learn --dbpath /var/lib/amavis/.spamassassin --ham /home/user/.In
Пример обучения по всем пользователям:
#!/bin/bash MAIL_ROOT_DIR=/srv/mail/vmail SA_DB_DIR=/var/lib/amavis/.spamassassin IFS=$'\n' echo "HAM:" for DIR_HAM in $(find $MAIL_ROOT_DIR -type d|grep ".*/cur"|egrep -v "./*Junk*|./*Archive*|./*Drafts*|./*Sent*|./*Trash*") do echo $DIR_HAM sa-learn --dbpath $SA_DB_DIR --ham $DIR_HAM done echo "SPAM:" for DIR_SPAM in $(find $MAIL_ROOT_DIR -type d|grep ".*Junk/cur") do echo $DIR_SPAM sa-learn --dbpath $SA_DB_DIR --spam $DIR_SPAM done
Сообщение с ошибкой:
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) /etc/cron.daily/spamassassin: spamassassin.service is not active, cannot reload. invoke-rc.d: initscript spamassassin, action "reload" failed.
Решение
В файле /etc/cron.daily/spamassassin
заменяем
invoke-rc.d spamassassin reload > /dev/null else /etc/init.d/spamassassin reload > /dev/null
на
invoke-rc.d spamassassin restart > /dev/null else /etc/init.d/spamassassin restart > /dev/null