Eserv SpamProtexx plugin
Начиная с версии 3.20 (марта 2005 г) Eserv включает в комплект оценочную серверную версию байесового классификатора почты AGAVA SpamProtexx.http://www.spamprotexx.ru/
Использование SpamProtexx antispam для фильтрации почты на сервере Eserv/3
Версии SpamProtexx
В Eserv включена не та версия SpamProtexx, что доступна для скачивания на сайте spamprotexx.ru (перехватывающая почту через TDI), а серверная версия, разработанная специально для Eserv: в ней нет сетевого уровня, т.к. сетевое взаимодействие осуществляет Eserv, и модифицирован классификатор — с учетом многопользовательского использования. Соответственно эти версии SpamProtexx имеют разные API, и Eserv не будет работать с однопользовательской версией SpamProtexx. Нужно использовать ту, что включена в комплект.Принцип работы acSMTP со SpamProtexx при получении почты по SMTP (MX)
Классификация почты с помощью SpamProtexx производится на стадии, когда все предварительные проверки (антирелей, RBL, черные списки, антивирус и т.д.) уже пройдены, письмо полностью принято в файл в spool, определен ящик-получатель, и осталось решить, в какую из папок пользователя положить письмо. Если SpamProtexx plugin был подключен (опция UseSpamprotexx=1), то Eserv acSMTP после получения письма обращается к SpamProtexx через его API, передает ему имя полученного файла с сообщением, SpamProtexx статистически классифицирует его в соответствии с текущим состоянием словарей, и возвращает имя категории — spam, clear или unclassified. Unclassified означает "неуверенность" фильтра, в какую категорию отнести письмо — это бывает, если числовое значение вычисленной вероятности далеко от предельных значений спам/не_спам (чаще всего это признак "недоученности" словарей, об обучении см. ниже).Почта, классифицированная как спам, не попадает в INBOX пользователя (доступный по IMAP и POP3), а попадает в IMAP-подкаталог "spam" этого пользователя (по умолчанию доступный только по IMAP, но не по POP3), и копия в общий каталог на случай переклассификации отправителем. Отправителю спама во время почтовой сессии в ответ на команду DATA дается код ошибки 5хх и URL для "проталкивания письма" (с автоматической подстройкой словарей SpamProtexx). Все стандартные MTA возвращают такие письма отправителям и приводят в возврате текст из сообщения об ошибке. Таким образом отправитель будет знать, что его письмо попало в spam, и будет знать как его "обелить". Это исключает негативный эффект от возможных ложных срабатываний (false positives), которые и так составляют менее 0.01% (см. AntiSpamNews). Если отправитель посещает приведенный URL, то сообщение автоматически копируется в папку reclassify (для контроля админом), а отправителю дается возможность нажатием одной кнопки обучить SpamProtexx впредь относиться к таким письмам терпимее (слова добавляются в словарь 'clear' классификатора). Для ручной переклассификации клиентом-получателем (например, false negatives — просочившийся спам — переклассифицировать как спам) достаточно в IMAP-клиенте переложить сообщение в папку spam или not_spam (любого каталога — можно создать эти папки, где вам удобно), и IMAP-сервер инициирует соответствующую процедуру обучения на SpamProtexx). Последующие письма будут классифицироваться уже с учетом этих изменений, ничего для этого перезапускать не нужно.
При перекладывании сообщения в папку not_spam, это письмо заново отправляется получателю и попадает в его INBOX.
Письма, классифицированные как 'unclassified' — кандидаты на переклассификацию для дообучения спам-фильтра, поэтому кроме INBOX, они также копируются в специальную административную папку 'ambiguous' ("неоднозначная классификация"), доступную администратору по IMAP.
Переклассификация отправителем по HTTP
Это очень важная возможность спам-фильтра в Eserv, показавшая себя за почти два года с наилучшей стороны. Отправитель, который пытался отправить письмо, классифицированное SpamProtexx как спам, получит от своего MTA уведомление о недоставке письма. Все MTA при этом указывают текст ошибки, выданной принимающей стороной. Eserv там пишет "ваше сообщение классифицировано как СПАМ, нажмите на этот URL" ("ваш-сайт/MailClassify/..."). По указанному URL на вашем сервере работает acWEB из комплекта Eserv (если на сервере нужен другой веб-сервер на 80м порту, то acWEB можно переключить на другой, либо запускать CGI-скрипт переклассификации из вашего веб-сервера). Когда отправитель нажимает на указанный URL в возвращенном письме, он попадает на страницу с объяснением причин такой классификации и с предложением нажать кнопку для переклассификации. Даже если он не нажмет на эту кнопку — письмо попадает в вашу папку reclassify (доступную администратору по IMAP), откуда вы сможете переклассифицировать письмо сами.Такая организация работы спам-фильтра позволяет значительно снизить потенциальный ущерб от ложных срабатываний фильтра (в отличие от общепринятого "отмалчивания" принимающего фильтра, или сообщения "напишите администратору сервера"). В результате практически не приходится вручную просматривать папки spam.
Первичная настройка и проверка SpamProtexx
Режим работы с использованием SpamProtexx ключается опцией SMTP[UseSpamProtexx] в Eserv3.ini или в веб-интерфейсе Eserv. После этого нужно перезапустить acSMTP для загрузки plugin'а SpamProtexx. Если он не запускается, см. диагностические сообщения в acSMTP.log — возможно истек срок тестовой эксплуатации SpamProtexx, или не удается активировать SpamProtexx, и т.п.Для проверки работы фильтра:
- отправить письмо на внешний сетевой интерфейс SMTP-сервера Eserv и смотреть результат классификации в журнале и ответы Eserv на команду DATA: если спам, то это будет видно по вставляемым в эти ответы ссылкам на переклассификацию. Пример записи в логе: 2005-09-07 15:01:01;anelko@mail.com;php@eserv.ru;38467;;82.36.175.74;spam;-;spam;0.999755 — в предпоследнем поле указана классификация, присвоенная на основе вычисленной вероятности, а в последнем поле числовое значение вероятности — от 0 до 1 — ближе к нулю не спам, ближе к 1 спам. Если базы еще не "обучены", то скорее всего значение вероятности будет около 0.5, и unclassified.
- начальном обучении словарей SpamProtexx (импортом вашей старой классифицированной почты или загрузкой наших примеров словарей).
- дообучение по ходу работы — перемещение неверно классифицированной почты в каталоги spam или not_spam при работе в IMAP. Папку 'not_spam' можно создать в любом месте иерархии папок IMAP-клиентом. При перемещении письма из папки spam (или другой) в папку 'not_spam' на сервере запускается процедура переклассификации этого письма — изменения статистических словарей фильтра. При перемещении в словарь 'spam' слова добавляются в словарь 'spam'. На основании этих частотных словарей и работает классификация SpamProtexx (см. StatisticalSpamFiltering). И качество его работы всецело зависит от аккуратности действий того, кто выполняет эти операции переклассификации-дообучения фильтра. У самого SpamProtexx никаких заранее заданных критериев спама/не-спама нет. Если ваши собственные критерии оценки спам/не-спам остаются неизменными, и вы соответственно поправляете неверные срабатывания SpamProtexx, то в скором времени он станет не менее аккуратным в своих оценках. На практике достижима аккуратность 99.99% и выше (см. AntiSpamNews). Поскольку добросовестность классификации является критическим фактором при применении SpamProtexx — некоторые администраторы берут роль переклассификатора полностью на себя (по умолчанию это могут делать и пользователи через IMAP). Для этого администратор может настроить себе доступ в папку reclassify или ко всей иерархии папок IMAP. Спец-каталоги для административных учетных записей IMAP настраиваются здесь: http://localhost:3140/main/CONF/lists/imap/SpecialFolders.txt. Для чтения reclassify можно завести особый IMAP-account, либо использовать заведенный по умолчанию popfile_admin.
- контроль работы фильтра по журналам Eserv или по статистическим отчетам в веб-интерфейсе.
Заранее создавать подкаталог spam не нужно, он будет создан автоматически при поступлении спама пользователю. Если требуется переклассификация (переобучение фильтра) нужно самому создать IMAP-папку not_spam (где угодно). При помещении в not_spam письмо после переклассификации отправляется исходному получателю.
Все письма, которые при классификации опознаны как НЕ спам, попадают напрямую в INBOX пользователя. INBOX доступен как по IMAP, так и по POP3.
Переклассификация без IMAP
Использование почтового робота для переобучения antispam фильтра сервера Eserv/3: см. MailClassifyRobotВерсии SpamProtexx Srv
AndreyCherezov /07.09.2005 15:34/ Вышла версия 2.1.6 классификатора SpamProtexx, для обновления нужно заменить два файлаhttp:///www.eserv.ru/download/files/txtClass.dll
http:///www.eserv.ru/download/files/acSMTP.exe