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