Эвристический фильтр спама
SpamAssassin – это очень мощный и гибкий в настройке фильтр спама с различными возможностями, включая «белый список», RBL-тесты, байесовский анализ, анализ текста в заголовке и теле письма. Фильтр может запускаться из пользовательских файлов .procmail и .forward, почтовых программ и служб MTA.
В пакет включена резидентная программа spamassassin (spamd), которая взаимодействует с клиентами (spamc) по TCP. Такая конфигурация позволяет при последовательной обработке нескольких сообщений загружать интерпретатор perl только один раз. Для использования этой конфигурации необходимо установить пакет spamc.
apt install spamassassin
Перед запуском нужно установить следующие значения:
ENABLED=1 CRON=1
И разрешить автозапуск:
update-rc.d spamassassin enable
Папка с файлами настройки: /etc/spamassassin
Папка с БД: /var/lib/spamassassin
Запуск:
service spamassassin start
Может работать через прокси, использует Wget.
Список URL для обновления, можно использовать в Squid:
spamassassin.apache.org/updates .sa-update sa-update. sa-update.dnswl.org www.sa-update.pccc.com sa-update.secnap.net sa-update.space-pro.be sa-update.ena.com sa-update.razx.cloud sa-update.fossies.org sa-update.verein-clean.net sa-update.bitwell.fi sa-update.spamassassin.org
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
Скрипт для обновления:
#!/bin/bash cd /etc/spamassassin wget http://www.wentor.ru/download/spamassassin/99_wentor.cf service spamassassin reload
В конец файла /etc/spamassassin/local.cf
нужно добавить параметр whitelist_from
с указанием маски адреса.
Пример:
whitelist_from *@domain1.ru whitelist_from *@domain2.ru whitelist_from *@domain3.ru
http://spamassassin.apache.org/
http://sawin32.sourceforge.net/
https://wiki.debian.org/ru/DebianSpamAssassin
Обучаем SpamAssassin из RoundCube
sa-learn, dovecot virtual users and virtual user configs
Spamassassin Filter Customized Per User With Automatic SPAM Learning