eserv.ru // EservPopFile

oldwiki /2006-04-07 14:44/ (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
News
15.05.2012
Eserv504
15.05.2012
ActiveSync
01.04.2012
Eproxy508
25.03.2012
Eserv503
26.02.2012
Eserv502
08.02.2012
UMI.CMS
22.12.2011
Eserv431
20.12.2011
Eproxy507
15.11.2011
Eproxy506
19.09.2011
Eproxy505
08.09.2011
Eserv430
07.09.2011
Lightning
19.07.2011
PoweredBy
16.07.2011
IPv6
08.07.2011
Eproxy5beta1
17.06.2011
IPv6DNS
13.06.2011
IPv6Mail
21.03.2011
Eserv428
22.10.2010
Eserv426
22.10.2010
SSL
22.04.2010
Eserv423
20.04.2010
Eserv4WhatsNew
19.04.2010
EservLDAP
19.04.2010
EservDHCP
19.04.2010
EservRubricator
08.04.2010
EservDNS
08.04.2010
NSСI
08.04.2010
WPAD
27.03.2010
Eserv422
27.03.2010
Eserv4Docs
26.03.2010
Eserv4FAQ
21.03.2010
EservIrc
05.03.2010
Eserv421
05.03.2010
HttpProxy
02.03.2010
EservVideo
02.12.2009
Eserv4Wiki
02.12.2009
Eserv4acWEB
02.12.2009
PopPull
22.11.2009
PigMailPigProxy2/WhatsNew
22.11.2009
PigMail/WhatsNew
23.09.2009
FossilEservHowTo
22.09.2009
SourceCodeManagement
22.09.2009
FossilScm
16.09.2009
SendEmail
08.09.2009
RoundCube
07.05.2009
GitScm
07.05.2009
GitEservHowTo
06.05.2009
SunBird

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

TOC

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.

Для проверки работы фильтра:
  • проверить, запущен ли процесс wperl.exe
  • включить PopFileDebug=1 и смотреть XMLRPC трассировку в acSMTP.log и ответы Eserv на команду DATA (если спам, то это будет видно по вставляемым в эти ответы ссылкам на переклассификацию)
Управление заключается в:
  • создании начальных словарей spam/clear/другие_классы (через веб-интерфейс PopFile на порту 8080 или загрузкой наших примеров словарей). Это описано в собственной документации PopFile.
  • начальном обучении словарей PopFile (импортом вашей старой классифицированной почты из почтового клиента через веб-интерфейс PopFile на порту 8080 или загрузкой наших примеров словарей). Это описано в собственной документации PopFile.
  • дообучение по ходу работы — перемещение неверно классифицированной почты в каталоги spam или not_spam при работе в IMAP. Папку 'not_spam' можно создать в любом месте иерархии папок IMAP-клиентом. При перемещении письма из папки spam (или другой) в папку 'not_spam' на сервере запускается процедура переклассификации этого письма — добавление слов в словарь-"букет" 'clear'. При перемещении в словарь 'spam' слова добавляются в словарь 'spam'. На основании этих частотных словарей и работает классификация PopFile (см. StatisticalSpamFiltering). И качество его работы всецело зависит от аккуратности действий того, кто выполняет эти операции переклассификации-дообучения фильтра. У самого PopFile никаких заранее заданных критериев спама/не-спама нет. Если ваши собственные критерии оценки спам/не-спам остаются неизменными, и вы соответственно поправляете неверные срабатывания PopFile, то в скором времени он станет не менее аккуратным в своих оценках. На практике достижима аккуратность 99.99% (см. AntiSpamNews). Поскольку добросовестность классификации является критическим фактором при применении PopFile — некоторые администраторы берут роль переклассификатора полностью на себя (по умолчанию это могут делать и пользователи через IMAP). Для этого администратор может настроить себе доступ в папку reclassify или ко всей иерархии папок IMAP. Спец-каталоги для административных учетных записей IMAP настраиваются здесь: http://localhost:3140/main/CONF/lists/imap/SpecialFolders.txt. Для чтения reclassify можно завести особый IMAP-account, либо использовать заведенный по умолчанию popfile_admin.
  • Обратите внимание, что при работе с PopFile через Eserv в статистике и "истории" самого PopFile почта Eserv не учитывается. В веб-интерфейсе PopFile можно только посмотреть статистику по словам в его базе, но не по обработанным письмам. А работа Eserv (классификация, переклассификация через PopFile) отражается в журналах Eserv.
Первичную настройку корзин 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

Работает на Eserv/7.0.beta1/Linux/arm64 (Dec 25 2023)