Рубрика:
Администрирование /
Продукты и решения
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Артем Деянов
MS Exchange 2003 + SpamAssassin
Перепробовав множество коммерческих продуктов, направленных на борьбу со спамом, таких как SerfControl E-mail Filter, SpamFighter Exchange Module (SEM) и другие, я пришел к выводу, что соотношение цена/качество у них оставляет желать лучшего. За что платить? Но как всегда и всюду, у людей есть альтернативы в виде Open Source-продуктов.
Первое, что пришло в голову – отказаться от удобства и практичности продукта Microsoft Internet Security and Acceleration Server, поставить на шлюзовом сервере один из клонов UNIX и настроить не раз описанную связку Postfix + Exchange с фильтрацией спама средствами одного из лучших фильтров – SpamAssassin, но человек тем и жив, что в стремлении к большему комфорту и удобству рождает подчас гениальные идеи, и я задумался. Если с вопросом об установке SpamAssassin на платформе Windows особых вопросов нет, SA как модуль Perl изначально кросплатформенен, то с вопросом его непосредственного взаимодействия с Exchange 2003 пришлось перекопать кучу материалов в Интернете.
Парадигма «кто ищет, тот найдет» сработала и здесь. Был найден интересный проект ESA Sink [1], который по сути своей является тем самым связующим звеном, обеспечивающим взаимодействие сервера Exchange 2003 и модуля SpamAssassin.
Таким образом, на первый взгляд нетривиальная задача сводится к нескольким стандартным действиям:
- установка Perl;
- компиляция и установка SpamAssassin и связанных модулей;
- установка ESA Sink;
- обучение фильтра.
Приступим.
Установка Perl
Первое, что необходимо сделать, – это скачать дистрибутив Perl для Windows, пройдя по ссылке [2]. С установкой проблем возникнуть не должно. После установки необходимо добавить переменную окружения Perl с путем к установленному дистрибутиву (у меня это C:\perl\bin) и перезагрузить сервер. Затем устанавливаем нужные модули:
ppm install Win32-Registry-File
ppm install Net-DNS
ppm install DB_File
ppm install IP-Country
ppm install Mail-SPF
ppm install Error
ppm install Digest-SHA
Компиляция и установка SpamAssassin и связанных модулей
Далее скачиваем исходные коды самого SpamAssassin, например, с проекта Apache Software Foundation [3], также для его компиляции понадобится nmake [4]. Качаем, распаковываем архив в папку с установленным Perl (C:\perl\bin) и начинаем процесс сборки исходного кода:
cd \..\Mail-SpamAssassin-3.2.3
perl Makefile.pl
nmake
nmake install
Процесс сборки должен пройти без проблем, но если что, их всегда можно решить, ибо сборщик в достаточной степени информативен.
После установки копируем файл spamassassin.bat из директории C:\perl\site\bin в директорию C:\perl\bin. Снимаем с него атрибут «только для чтения» и в редакторе сразу после строк, отключающих echo, добавляем следующее:
SET RES_NAMESERVERS=xxx.xxx.xxx.xxx
SET LANG=ru
Можно так же отредактировать конфигурационный файл фильтра (C:\perl\site\etc\mail\spamassassin\local.cf) на предмет включения баесов, установки порогового значения баллов и т. д.
Установка ESA Sink
Следующим пунктом и номером нашей программы является установка самого ESASink, который перехватывает поток поступающих на Exchange сообщений, перенаправляет его SpamAssassin на анализ и с выставленными баллами и модифицированным заголовком (при условии, что балловый порог, по умолчанию равный 5, превышен и включена соответствующая настройка) возвращает серверу, который перенаправляет сообщение в mailbox получателя. С этим проблем возникнуть не должно, т.к. дистрибутив имеет интерактивный и интуитивно понятный установщик. После этого правим файл C:\ESA\ExchangeSpamAssassin.ini, добавляя в него полный путь к нашему SpamAssassin:
SpamAssassin_Batch_File=C:\Perl\bin\spamassassin.bat
Пробуем со всем этим делом «взлететь»:
С:\ESA\Install_ESA_Sink.bat
Для проверки связки можно прислать себе тестовое письмо и посмотреть на его заголовок, если там присутствуют строки примерно следующего содержания:
X-Spam-Checker-Version: * X-Spam-Status: No, score=1.6 required=5.0 |
то все работает, если таких строк нет, ищем ошибки и «грызем гранит науки».
Обучение фильтра
Связка установлена и настроена, осталось только провести ручное обучение нашего фильтра. Для этого удобно импортировать спам-писма и белую почту в ящики формата mbox.
Cделать это проще всего с помощью программы The Bat!, которая имеет в своем инструментарии богатый набор средств по конвертированию различных форматов почтовых ящиков.
Итак, имея на руках два файла формата UNIX mbox – у меня они называются spam и ham соответственно, приступаем к обучению фильтра. Общий формат команды обучения смотрите на рисунке.
Общий формат команды обучения
И в частности:
Sa-learn – -spam – -mbox ..\spam
Sa-learn – -ham - -mbox ..\ham
При большем объеме соответствующих ящиков процедура занимает довольно длительное время. Все, остается только включить автоматическое обучение и радоваться жизни.
Удачи!
- http://www.christopherlewis.com/ESA/ExchangeSpamAssassin.htm.
- http://www.activestate.com/Products/activeperl.
- http://spamassassin.apache.org.
- http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|