[Из песочницы] Обучение SpamAssassin

Ни для кого не секрет, что почтовая служба Gmail является лучшей в своем роде сервисом. Фильтрация писем происходит очень точно. Пользователи этого сервиса давно забыли о таком страшном слове как «Спам».Среди корпоративного сектора очень актуальна проблема большого количества спам-писем. Для борьбы с данной проблемой приходится приходить к очень неоднозначным мерам. В сети достаточно информации, собрав которую воедино, можно получить неплохой спам-фильтр. В данном же случае, я постараюсь описать процесс обучения всеми известного SpamAssassin средствами сервиса Gmail. В итоге мы получим идентичное поведение самого SpamAssassin на письма, как если бы они приходили к вам на Gmail.Компания Google, очень трепетно относится к своей интеллектуальной собственности и не раскрывает подробностей работы их почтового сервиса, но можно выйти из ситуации, адаптировав свою почту на манер «корпорации добра».

Итак, предполагается, что у вас есть почтовый сервер. Настроенный и полностью функционирующий. Прописана PTR и DMARC. Настроен SPF, DKIM и работающий, но не обученный SpamAssassin. Отчасти — этих действий достаточно для того, чтобы в разы уменьшить количество нежелательной корреспонденции, но все же, мы не остановимся на этом.

Для реализации необходимо установить fetchmail:

#apt-get install fetchmail

Эта утилита и будет служить посредником между Gmail и нашим почтовым сервером.

Настройка fetchmail.

Для начала, нам необходимо создать конфигурационный файл:

#touch /root/.fetchmailrc

#vi /root/.fetchmailrc

Со следующим содержимым:

poll imap.gmail.com protocol imap port 993 and options no dns, user »[vashadres@gmail.com](mailto: vashadres@gmail.com)» options ssl, password «vashparol», fetchall, pass8bits, nokeep, folder »[Gmail]/Spam», mda »/usr/bin/sa-learn --spam»

poll imap.gmail.com protocol imap port 993 and options no dns, user »[vashadres@gmail.com](mailto: vashadres@gmail.com)» options ssl, password «vashparol», fetchall, pass8bits, nokeep, folder »[Gmail]/Important», mda »/usr/bin/sa-learn --ham»

Важно! Почтовый ящик должен иметь английский интерфейс, т.к. fetchmail имеет проблемы с кириллицей.

С папкой «спам» все ясно, а вот с папкой «INBOX» не все так однозначно. У Gmail ее попросту нет, а при подключении по IMAP мы имеем дело с так называемыми «ярлыками». Поэтому мы указываем папку «Important».

Далее, переходим в файл с альясами (у меня установлен Postfix, поэтому я буду приводить пример на его настройке) и указываем форвардинг писем на новосозданный или уже имеющийся адрес Gmail. Рекомендую создать новый, т.к. старый адрес может содержать какие-либо правила из «прошлого», которые могут неправильно скорректировать SpamAssassin при обучении.

#vi /etc/aliases

Пишем следующее:

почтовый ящик: почтовый ящик, root

vasya: vasya, root

Когда были прописаны все пользователи и пересылкой на пользователя root, то вся эта корреспонденция должна пройти до нашего почтового ящика в Google:

В конце файла альясов мы должны написать:

root: vashadres@gmail.com

Важно! Так необходимо прописать каждый ящик имеющийся в системе. Можно и не пересылать все сообщения на пользователя root, но это в дальнейшем облегчит Вам жизнь.

Сохраняем файл. Готово. Отныне все письма приходящие к пользователям, будут дублироваться на vashadres@gmail.com, который в свою очередь будет грамотно рассортировывать все письма.

Теперь получив достаточное кол-во писем на почтовый ящик от Google, необходимо их промаркировать, чтобы благодаря ярлыкам, письма из папки INBOX, продублировались в папку Important нажав на стрелку рядом с заголовком письма. Она должна окраситься в желтый. Это разовое действие, которое в дальнейшем понадобиться очень редко. Все новые письма, будут помечены как «Важные» и продублированы в необходимую нам папку.

Нам же осталось сказать fetchmail собрать все письма из Google и показать SpamAssassin.

#/usr/bin/fetchmail -f /root/.fetchmailrc -v

Все готово. Пройдя обучение в несколько тысяч писем — будьте уверены, ваша почта будет вести себя так же, как качественный почтовый сервис от Google.

© Habrahabr.ru