За последние два года, проблема СПАМа приобрела настолько широкий размах, что активное интернет-сообщество всерьез задумалось над задачей искоренения этого "двигателя прогресса".
Не для кого не секрет, что спрос рождает предложение, а современный рынок очень сильно нуждается в дешевой и эффективной рекламе, каковой, являются массовые рассылки электронной почты. Чисто техническая сторона - доставка информации до конечного потребителя, уже приобрела этический оттенок.
В основном, из за лавинообразного роста невостребованной корреспонденции, которую, так или иначе, надо просматривать перед тем, как удалить за ненадобностью. В результате, возникает излишняя рутинная работа по сортировке этой самой почты - 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-м портом вместо стандартного. Мороки с конфигами будет довольно много, но дело того стоит.