mail.eserv.ruВойти

EservPopFile

AndreyCherezov
(v1)
  • v1 AndreyCherezov· · Открыта

Использование PopFile antispam для фильтрации почты на сервере Eserv/3

���������� ���������

PopFile XMLRPC

В состав Eserv/3 входит plugin для подключения к XMLRPC API популярного байесового фильтра PopFile. Сам PopFile нужно устанавливать отдельно (см. PopFile, EservPopfileRC7). Нужно устанавливать именно нашу сборку PopFile, т.к. в стандартный комплект PopFile, доступный на сайте разработчика, не включены необходимые для работы XMLRPC библиотеки. В стандартном режиме PopFile работает как Pop3proxy, а для проверки почты, приходящей на Eserv/3 по SMTP, а также для обучения фильтра / переклассификации почты через IMAP и HTTP, нужно использовать XMLRPC-интерфейс.

Принцип работы acSMTP с PopFile при получении почты по SMTP (MX)

Классификация почты с помощью PopFile производится на стадии, когда все предварительные проверки (антирелей, RBL, черные списки, антивирус и т.д.) уже пройдены, письмо полностью принято в файл в spool, определен ящик-получатель, и осталось решить, в какую из папок пользователя положить письмо. В настройке по умолчанию предполагается, что в PopFile заведена категория 'spam', категория 'clear', и одна или более других категорий (в его веб-интерфейсе это называется 'bucket' или 'корзина'). Eserv acSMTP обращается к PopFile по XMLRPC, передает ему имя полученного файла с сообщением, PopFile статистически классифицирует его в соответствии с текущим состоянием словарей, и возвращает имя категории.

Почта, классифицированная как спам, не попадает в INBOX пользователя (доступный по IMAP и POP3), а попадает в IMAP-подкаталог "spam" этого пользователя (по умолчанию доступный только по IMAP, но не по POP3), и копия в общий каталог на случай переклассификации отправителем. Отправителю спама во время почтовой сессии в ответ на команду DATA дается код ошибки 5хх и URL для "проталкивания письма" (с автоматической подстройкой словарей POPfile). Все стандартные MTA возвращают такие письма отправителям и приводят в возврате текст из сообщения об ошибке. Таким образом отправитель будет знать, что его письмо попало в spam, и будет знать как его "обелить". Это исключает негативный эффект от возможных ложных срабатываний (false positives), которые и так составляют менее 0.01% (см. AntiSpamNews). Если отправитель посещает приведенный URL, то сообщение автоматически копируется в папку reclassify (для контроля админом), а отправителю дается возможность нажатием одной кнопки обучить POPfile впредь относиться к таким письмам терпимее (слова добавляются в словарь 'clear' классификатора). Для ручной переклассификации клиентом-получателем (например, false negatives — просочившийся спам — переклассифицировать как спам) нужно заходить не на веб-интерфейс POPfile, как в стандартной версии PopFile Pop3proxy, а на IMAP. Достаточно просто в IMAP-клиенте переложить сообщение в папку spam или not_spam (любого каталога — можно создать эти папки, где вам удобно), и IMAP-сервер инициирует соответствующую процедуру на POPfile).

При перекладывании сообщения в папку not_spam, это письмо заново отправляется получателю и попадает в его INBOX.

Переклассификация отправителем по HTTP

Это очень важная возможность спам-фильтра в Eserv, показавшая себя за почти два года с наилучшей стороны. Отправитель, который пытался отправить письмо, классифицированное PopFile как спам, получит от своего MTA уведомление о недоставке письма. Все MTA при этом указывают текст ошибки, выданной принимающей стороной. Eserv там пишет "ваше сообщение классифицировано как СПАМ, нажмите на этот URL" ("ваш-сайт/MailClassify/..."). По указанному URL на вашем сервере работает acWEB из комплекта Eserv (если на сервере нужен другой веб-сервер на 80м порту, то acWEB можно переключить на другой, либо запускать CGI-скрипт переклассификации из вашего веб-сервера). Когда отправитель нажимает на указанный URL в возвращенном письме, он попадает на страницу с объяснением причин такой классификации, с "раскраской" его письма и с предложением нажать кнопку для переклассификации. Даже если он не нажмет на эту кнопку — письмо попадает в вашу IMAP-папку reclassify, откуда вы сможете переклассифицировать письмо сами.

Такая организация работы спам-фильтра позволяет значительно снизить потенциальный ущерб от ложных срабатываний фильтра (в отличие от общепринятого "отмалчивания" принимающего фильтра, или сообщения "напишите администратору сервера"). В результате практически не приходится вручную просматривать папки spam.

Первичная настройка и проверка PopFile

Режим работы с использованием PopFile ключается опцией SMTP[UsePopFile] в Eserv3.ini или в веб-интерфейсе Eserv. После этого нужно перезапустить acSMTP для загрузки и компиляции plugin'а PopFile.

Для проверки работы фильтра:
Управление заключается в:
Первичную настройку корзин PopFile иногда делают, "скармливая" ему старые почтовые архивы, сортированные на спам/не_спам (скармливая средствами самого PopFile, он умеет читать сообщения всех популярных почтовых клиентов). Или используя наши тренированные базы.

Далее обрабатываются только ложные срабатывания и "ложные несрабатывания". Причем ложные срабатывания обрабатывает сам отправитель через веб, как описано выше. Если пользователи не используют IMAP, то переклассификацию "ложных несрабатываний" придётся делать админу, входя в корень иерархии всех IMAP-каталогов (supervisor@) или прося пользователей пересылать ему спам, попавший в их ящики.

Корзина 'clear' в PopFile — это "не спам" — в эту корзину добавляются слова из писем, помещаемых в папку not_spam по IMAP. Заранее создавать подкаталог spam не нужно, он будет создан автоматически при поступлении спама пользователю. Если требуется переклассификация (переобучение фильтра) нужно самому создать IMAP-папку not_spam (где угодно). При помещении в not_spam письмо после переклассификации отправляется исходному получателю.

Все письма, которые при классификации опознаны как НЕ спам (любая другая 'корзина', например 'clear'), попадают напрямую в INBOX пользователя. INBOX доступен как по IMAP, так и по POP3.

Переклассификация без IMAP

Использование почтового робота для переобучения antispam фильтра сервера Eserv/3: см. MailClassifyRobot

Отличия от pop3proxy-режима PopFile

При взаимодействии с почтовым сервером по XMLRPC PopFile не заносит классифицируемую почту в папку history и не изменяет статистику. Поэтому в собственном веб-интерфейсе PopFile переклассификация будет недоступна. Для контроля процесса классификации и переклассификации можно использовать лог PopFile (в его каталоге), а также отладочные XMLRPC записи в логе DATA\log\smtp\*popfile_debug.txt.

Дополнения к описанию

http://forum.etype.net/viewtopic.php?p=16838#16838 — дискуссия о PopFile+Eserv на нашем форуме.
http://forum.etype.net/viewtopic.php?t=2154 — работа PopFile сервисом, контроль PopFile