Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Сергей Супрунов
Бороться и искать,
Найти и не сдаваться!
Программа spamd, являющаяся частью OpenBSD, призвана блокировать нежелательную почту. Благодаря своей эффективности и оригинальному подходу к решению проблемы она была портирована на ряд других систем, включая FreeBSD. Об особенностях работы на этой платформе и пойдет речь в сегодняшней статье.
Найти и не сдаваться
Spamd – система фильтрации спама, использующая механизм «черного», «белого» и «серого» списков. Интересен алгоритм работы по серому списку: сообщение, отправитель которого не входит ни в белый, ни в черный списки, отклоняется с ошибкой 451 (временная ошибка, повторите попытку позже). И по реакции удаленной системы на эту вежливую просьбу принимается решение о занесении отправителя в белый список. В следующих подразделах будет описан принцип работы spamd, а необходимые для этого настройки рассмотрены далее в соответствующем разделе.
Работа в «нормальном» режиме
Spamd может быть сконфигурирован для работы в одном из двух режимов – «нормальном» и «сером» (greylisting mode). Схема работы spamd в нормальном режиме представлена на рис. 1.
Рисунок 1. Схема работы spamd в нормальном режиме
Соединение на порт 25 (SMTP) в зависимости от принадлежности отправителя черному списку пакетный фильтр pf либо пропускает как есть (на 25-й порт, прослушиваемый MTA) либо перенаправляет на вход spamd (по умолчанию используется порт TCP 8025, см. /etc/services). Типичный SMTP-диалог со spamd (для перенаправленных соединений) выглядит следующим образом:
220 test.ru ESMTP spamd IP-based SPAM blocker; Thu Jul 7 07:56:09 2005
HELO me
250 Hello, spam sender. Pleased to be wasting your time.
MAIL FROM: me@me.ru
250 You are about to try to deliver spam. Your time will be spent, for nothing.
RCPT TO: serg@test.ru
250 This is hurting you more than it is hurting me.
data
354 Enter spam, end with "." on a line by itself
Hello, spamd!
I test you!!!
.
450 SPAM. Blocked by me.
Ко всему прочему, каждый символ ответных сообщений выводится с задержкой в 1 секунду (по умолчанию, может быть изменено). То есть для соединений, попавших на вход spamd, стандартный диалог будет отрабатываться чрезвычайно медленно, и в итоге отправитель получает сообщение об ошибке. Таким образом, время соединения затягивается, спаммер должен полностью сформировать отправляемое сообщение, но в самый последний момент, буквально после завершающей точки, соединение разрывается. Причем в случае 450-го кода ответа оно обычно остается в очереди на отправку, и столь же безнадежные попытки могут повторяться неоднократно.