Оригинал материала: https://3dnews.ru./169024

Kaspersky Anti-Spam

Автор: Майк Лобов

За последние два года, проблема СПАМа приобрела настолько широкий размах, что активное интернет-сообщество всерьез задумалось над задачей искоренения этого "двигателя прогресса".

Не для кого не секрет, что спрос рождает предложение, а современный рынок очень сильно нуждается в дешевой и эффективной рекламе, каковой, являются массовые рассылки электронной почты. Чисто техническая сторона - доставка информации до конечного потребителя, уже приобрела этический оттенок.

В основном, из за лавинообразного роста невостребованной корреспонденции, которую, так или иначе, надо просматривать перед тем, как удалить за ненадобностью. В результате, возникает излишняя рутинная работа по сортировке этой самой почты - 10 минут в день, один час в неделю, 2-3 суток в году. А ведь это, порядка 1% реального времени, которым мы все так сильно дорожим! И это еще без подсчета времени и средств, затраченных на скачивание СПАМа с почтового сервера - трафик тоже имеет свою финансовую составляющую.

Настройки фильтров в стандартных почтовых клиентах уже мало чего дает - спамеры шифруются, кодируют текст таким образом, что просто невозможно вычленить из него отдельные ключевые слова и фразы. Да и зачем, собственно, обрабатывать входящую почту на стороне клиента? Гораздо надежнее, поставить заслон невостребованным письмам прямо на почтовом сервере. Так, уже не найдешь ни одного приличного сервера, который не фильтровал бы письма с вирусами. А чем СПАМ лучше вирусов? - Разве что, количеством приносимого вреда….

Собственно, таковым серверным приложением является разработка небезызвестной компании "Лаборатория Касперского". Продукт "Kaspersky Anti-Spam" представляет собой полнофункциональный почтовый сервер-фильтр, работающий на UNIX-платформах. В настоящее время, имеются версии для Linux и FreeBSD 4.x. Работа продукта основана на базе распространенного почтового сервера Postfix, который в разных вариантах работы, будет осуществлять роль релея либо основного почтового сервера.

Мы решили протестировать эффективность и удобство использования "Kaspersky Anti-Spam" на отдельно взятом веб-сервере с установленной операционной системой FreeBSD 4.x, 512 мегабайтами памяти, двумя процессорами P4-2400, со скоростью подключения к Internet 10 Мб/с. Описанная конфигурация с лихвой покрывала системные требования, указанные разработчиками программного обеспечения.


Процесс инсталляции продукта особых проблем не вызывает - все шаги детально описаны в руководстве пользователя. Поскольку, к моменту установки, на нашей машине уже находился почтовый сервер sendmail, и им пользовалось не менее двух сотен пользователей, пришлось установить postfix параллельно уже работающему основному почтовому серверу. Естественно, два аналогичных продукта никак не смогли ужиться в рамках одного сетевого интерфейса. Пришлось переносить sendmail со стандартного SMTP-порта на порт 26. Postfix, в свою очередь стал слушать 25-й порт на предмет всех входящих соединений. Справедливости ради, стоит сказать, что процедура такого типа установки, описана в прилагаемом к продукту буклете, однако, не очень детально. Те, кто доселе не работал с конфигами sendmail, вполне может и запутаться.

И так, схема работы получилась следующая:

Удаленный клиент желает послать на наш сервер некую почту. Для этого, он соединяется с нашим сервером на порт 25, где его гостеприимно принимает демон postfix, получает от клиента сообщение и закрывает соединение. Postfix проверяет - является ли адресат лицензированным пользователем спам-фильтра и если да - проверяет письмо на наличие спама. Спама нет - письмо идет дальше в неизменном (внешне) виде. СПАМ есть - действует согласно инструкциям (удалить, пометить, вернуть сообщение об ошибке). После этого, postfix сам выступает в роли клиента - он соединяется с локальным демоном sendmail через loopback-интерфейс на 26 порт и отдает ему полученную почту. Sendmail направляет почту локальному адресату.

Возможные проблемы:

Sendmail отказывается принять почту потому, что она пришла от хоста с тем же самым именем, что прописано в его личном конфиге. Что же, обзываем наш сервер в конфиге sendmail как нибудь иначе. "localhost", например - главное, чтобы имя не перечило локальной таблице DNS.

Postfix отказывается релеить (пересылать) почту на sendmail, потому, что адресат имеет неизвестное ему доменное имя - открываем конфиг postfix и указываем все доменные имена нашего сервера в качестве "relay_domains" через запятую.

Пользователи, теперь, не могут отправлять почту через 25-й порт сервера (SMTP). Тут, либо опять правим конфиг postfix, либо сообщаем пользователям, чтобы они пользовались 26-м портом вместо стандартного. Мороки с конфигами будет довольно много, но дело того стоит.

Настало время вспомнить, что наш почтовый фильтр, при установке, разместил у нас еще и дополнительный web-сервер на порт 1100 для работы с WebTuner - программой настройки спам-фильтра через web-интерфейс. Чтобы туда не лазили "всякие разные" - ставим на эту штуку пароль методами htaccess и на всякий случай, шифруем трафик через https. WebTuner позволяет настроить степень жесткости фильтрации спама и создать список лицензированных адресов, которые будут фильтроваться.


К слову сказать, в нашем случае имеется лицензия на 10 пользователей. Стоит такое удовольствие 90 долларов в год или 9 баксов в год с одного почтового адреса. В принципе, фильтр себя окупит, сэкономив адресатам время и трафик в дальнейшем.

WebTuner мы настроили на легкий уровень фильтрации. Кроме этого, не стали удалять с сервера сообщения распознанные как СПАМ. Таковые, так или иначе, доходили до адресата, однако, уже были помечены символами [!! SPAM] в заголовке, что позволяло их легко фильтровать на клиентской машине в отдельную папку.


Как и в любом уважающем себя антивирусном фильтре, у фильтра СПАМа необходимо регулярно обновлять базу контентной фильтрации, списки "нечистых" почтовых и IP-адресов, доменов и прочие аналогичные данные.

Многие спамеры отдали бы душу за "живые" списки Open-Relay. По этому, все скачиваемые базы приходят в бинарном виде, "расколоть" который, нам с первого раза не удалось. За эти апдейты, отвечает отдельное приложение sfupdates, которое разработчики рекомендуют запускать не реже четырех раз за сутки. Самое простое, что можно сделать - это включить его в crontab. Но эта штука, как оказалось, весьма требовательна к дисковому пространству и ресурсам системы. За время обновления, расход ДП увеличивается на 200-400 Мб (интересно, на что оно расходуется?).

Трафик, по серверным меркам, получается не такой большой, зато один сплошной входящий. Чтобы загружать новые базы не в самые пиковые часы посещаемости нашего сервера, мы прописали в crontab что-то вроде 0 1,5,9,18 * * * /usr/local/ap-mailfilter/bin/sfupdates

Кстати, во время работы, демон СПАМ-фильтра занимает не менее 15 мегабайт оперативной памяти, а иногда и вдвое-втрое больше.


Итоги тест-драйва показали, что на легком уровне фильтрации система стабильно распознает не менее 85% от всего входящего СПАМА. Остальное она либо пропускает, либо помечает как [?? Probable Spam]. Но пропускает существенно больше. При разработке продукта, разработчики делали основной упор на эвристический анализ текста письма. Однако, анализатор все же не совершенен. Достаточно, например, было просто приравнять к одному шаблону символы русского языка и латиницы - одинаковые по внешнему виду, чтобы увеличить процент точной фильтрации. То же самое касается всяческих "лишних" знаков: "A//ЕPИКA - СkИЙ @Н ^/ИЙCКИЙ" - упорно не распознается как СПАМ.

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

Еще один минус. Система не умеет и не хочет работать с алиасами - почтовыми синонимами. В принципе, так выгоднее разработчикам. Они зарабатывают деньги за продажу каждой лицензии, единицей которой является один почтовый адрес. На нашем тестовом сервере, алиасами являлись имена admin, info, webmaster, root, hostmaster и т.п. Вся почта с этих адресов приходила на один основной почтовый ящик, СПАМ приходил на каждый из них в отдельности, а фильтр считал по одной лицензии на каждый адрес. Получилось довольно накладно.

Ну а общие впечатления от работы системы - сугубо положительные: Резко уменьшился поток СПАМА, особенно после того, как почтовому клиенту было велено удалять все, что содержит [!! SPAM] в заголовке, прямо с сервера не скачивая. Сократилось время скачивания и просмотра почты до уровня "старых-добрых времен".

Стало быть, такие продукты всегда найдут своего потребителя. Пока что, на рынке российского ПО это всего лишь первая ласточка. Очередные версии "Kaspersky Anti-Spam" и происки их конкурентов создадут более благодатную почву для развития рынка подобных серверных приложений и предоставления услуг по фильтрации СПАМа на адресах клиентов у различных хостинг-провайдеров. Само-собой, СПАМ никуда не денется. Он будет и дальше шифроваться и нарастать до тех пор, пока не будут введены новые стандарты почтовых протоколов - на замену устаревшему SMTP с его многочисленными недочетами. Но это - уже совсем другая история.



Оригинал материала: https://3dnews.ru./169024