Обучение SpamAssassin при помощи бесплатных почтовых систем

Здравствуйте, уважаемые товарищи!

Сегодня мы разберем такой насущий вопрос, с которым сталкивается каждый уважающий себя администратор почтового сервера, ипользующий различные открытые MTA (sendmail, postfix, exim) и защищающий своих пользователей от СПАМа. Есть множество очень дорогих способов борьбы со спамом — как «софтовых» так и «железных», но мы остановимся на весьма популярном инструменте — бесплатном пакете SpamAssassin который сам по себе довольно не плох, но без правильного обучения в современных условиях бесполезен (СПАМеры не спят и усовершенствуют свои технологии с каждым днем!)

Итак, у нас есть:

  • Выделенный сервер или VPS под управлением Linux CentOS
  • Почтовый сервер PostFix(Sendmail или Exim в данном случае не важно)
  • Установленный и настроенный (а как же иначе) SpamAssassin
  • Желание научить спам-фильтр распознавать СПАМ.

Кроме этого нам потребуется зарегистрированный почтовый ящик в одной из бесплатных почтовых систем, которая очень успешно умеет отделять СПАМ от нормальных писем (рекомендую Gmail).

Далее все предельно просто.

1. Нам потребуется пакет, отвечающий за сбор и чтение писем по протоколу IMAP в консоле — FetchMail

yum install fetchmail

2. После установки пакета особых манипуляций не требуется, все работает из коробки.

3. Самое главное — создаем в удобном нам каталоге (пусть это будет /etc) скрипт обучения, отвечающий за скачивание «плохой» почты и обучения на ней нашего фильтра. Для Gmail’a он выглядит так:

poll imap.gmail.com protocol imap port 993 and options no dns,
user "login@gmail.com",
password "vash_password", options ssl
fetchall,
pass8bits,
nokeep,
folder "[Gmail]/Spam",
mda "/usr/bin/sa-learn --spam --single"

4. Сохраняем файл под удобным именем, например learnspam

5. Запускаем обучение:

fetchmail -f /etc/learnspam -v

ВАЖНО: данный скрипт можно легко адаптировать под любую почту, достаточно изменить сервер IMAP (например на imap.yandex.ru) порт, имя пользователя и папку, в которой у вас находится уже распознанный СПАМ (например /Spam или /Junk).

Так же вы без лишних проблем сможете обучить SpamAssassin’a на своей почте (корпоративной), достаточно создать папку, куда вы будете помещать нераспознанные письма (например ForFilter) и указать её в качестве назначения в представленном выше скрипте (естественно изменив все параметры авторизации).

Пример скрипта, действующего у меня на сервере:

poll mail.mydomen.ru protocol imap port 143 and options no dns,
user "user@mydomen.ru",
password "MyPassword",
fetchall,
pass8bits,
nokeep,
folder "ForFilter",
mda "/usr/bin/sa-learn --spam --single"

Выполнение скрипта можно поставить в cron и радоваться постепенному обучению SpamAssassin’a и, в конечном итоге, уменьшению СПАМа во входящих письмах (напомню, что сам по себе SpamAssassin не может удалять СПАМ, он лишь помечает его, но при должной настройке фильтра в почтовом клиенте или с помощью некоторых манипуляций, SpamAssassin может класть весь распознанный СПАМ в специальную папку) .

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *