SpamAssassin является одним из наиболее распространенных ПО для борьбы со спамом. А точнее определения спама. Данный продукт присутствует в официальном репозитарии, поэтому установка трудностей не вызовет.
#aptitude install spamassassin
Создадим пользователя, под которым будет работать SpamAssassin: #adduser virtual
Теперь настроим SpamAssassin. Для этого отредактируем файл /etc/spamassassin/local.cf:
rewrite_header Subject *****SPAM*****
report_safe 0
trusted_networks 192.168.0.0/24
required_score 5.0
use_bayes 1
bayes_auto_learn 1
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
bayes_min_ham_num 1
bayes_min_spam_num 1
report_charset koi8-r
ok_locales ru en uk
Пришло время подключить SpamAssassin к серверу Postfix.
В файл /etc/postfix/master.cf после строки
smtp inet n - - - - smtpd
добавим строку:
-o content_filter=spamassassin
В конце данного файла вставим:
spamassassin unix - n n - - pipe
user=virtual argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Теперь необходимо перезапустить сервисы postfix и SpamAssassin:
#service postfix restart
#service spamassassin restart
Система антиспама у нас уже работает.
Однако на старте SpamAssassin не очень хорошо различает спам. Ему требуется обучение. Для этого копируем письма, которые были нераспознаны как спам в папку /home/virtual/spam, а письма которые были ложно распознаны как спам в /home/virtual/nospam, и выполним команды:
#sa-learn --ham /home/virtual/nospam/
#sa-learn --spam /home/virtual/spam/
Таким образом мы обучаем байесовский фильтр.
Делать это стоит по мере необходимости.