nginx + mai + dnsrbl + blacklisting + MTA (postfix)
Konstantin V. Pleshakov
www.fangorn на mail.ru
Пт Фев 19 07:41:25 MSK 2010
Предполагалось использовать nginx как фронтенд к postfix для отсеивания спама
на ранних этапах при помощи белых/черных списков и DNSRBL. Таким образом
значительная часть соединений были бы корректно закрыты nginx до их
поступления в postfix (сам он с этим не очень хорошо справляется на слабых
машинах).
Что я сделал:
Я прикрутил к модулю mail возможность проверять соединения по белым/черным
спискам (которые хранятся в файле, и перезагружаются при его изменении), по
спискам dnsrbl-сервером, при этом каждому серверу назначается некоторый "вес"
и если сумма весов сработавших dnsrbl превышает некоторое (тоже заданное)
значение - соединение отвергается.
В обоих случаях на другой конец отправляется уведомление и причина разрыва
соединения.
Если соединение не было отвергнуто nginx, то он переключается в режим прокси,
в том числе передавая команду XCLIENT с указанием реального отправителя.
Так же я открутил http-авторизацию, т.к. с ней отлично справляется и сам
postfix (на самом деле просто не хотелось что-то в нем трогать :)) ).
В чем проблема:
Для того, что бы это сделать я переломал весь модуль mail, т.к. не сразу понял
как вообще работает nginx. Сейчас передо мной стоит делема: либо допилить
mail, добавив в него эти возможности, либо оформить отдельный модуль, что
порекомендуете?
P.S. Если кому-то надо было решить точно такую же проблему - обращайтесь,
поделюсь исходниками еще до того, как выложу конечный патч (или модуль).
Работает более-менее стабильно :)))
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: отсутствует
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100219/91a4698c/attachment.pgp>
Подробная информация о списке рассылки nginx-ru