nginx + mai + dnsrbl + blacklisting + MTA (postfix)
Богун Дмитрий
vugluskr на vugluskr.org.ua
Пт Фев 19 11:39:46 MSK 2010
В сообщении от Пятница, 19-фев-2010 06:41:25 автор Konstantin V. Pleshakov
написал:
> Предполагалось использовать nginx как фронтенд к postfix для отсеивания
> спама на ранних этапах при помощи белых/черных списков и DNSRBL. Таким
> образом значительная часть соединений были бы корректно закрыты nginx до
> их поступления в postfix (сам он с этим не очень хорошо справляется на
> слабых машинах).
>
> Что я сделал:
> Я прикрутил к модулю mail возможность проверять соединения по белым/черным
> спискам (которые хранятся в файле, и перезагружаются при его изменении), по
> спискам dnsrbl-сервером, при этом каждому серверу назначается некоторый
> "вес" и если сумма весов сработавших dnsrbl превышает некоторое (тоже
> заданное) значение - соединение отвергается.
> В обоих случаях на другой конец отправляется уведомление и причина разрыва
> соединения.
> Если соединение не было отвергнуто nginx, то он переключается в режим
> прокси, в том числе передавая команду XCLIENT с указанием реального
> отправителя. Так же я открутил http-авторизацию, т.к. с ней отлично
> справляется и сам postfix (на самом деле просто не хотелось что-то в нем
> трогать :)) ).
>
> В чем проблема:
> Для того, что бы это сделать я переломал весь модуль mail, т.к. не сразу
> понял как вообще работает nginx. Сейчас передо мной стоит делема: либо
> допилить mail, добавив в него эти возможности, либо оформить отдельный
> модуль, что порекомендуете?
>
> P.S. Если кому-то надо было решить точно такую же проблему - обращайтесь,
> поделюсь исходниками еще до того, как выложу конечный патч (или модуль).
> Работает более-менее стабильно :)))
Извиняюсь за офтопик, но может быть проще использовать более нормальный MTA? К
примеру exim - быстр, стабилен и очень гибок.
Требует гораздо меньше велосипедов, а для тех которые все же захочется
написать, можно использовать встроенный perl и/или вызывать нужные функции .so
библиотек.
Подробная информация о списке рассылки nginx-ru