Апр 11 2009

Postgrey. Защищаем postfix от spamа.

«Серый список» (greylist), один из очень простых, но в то же время эффективных систем защищающих от SPAM. Идея очень простая, спамеру необходимо отправить максимальное количество почты, спам чаще всего рассылается из «зомбированного» компьютера, с помощью «троянского коня», реализовывать полноценный SMTP сервер в трояне никто не будет, поэтому дисковая очередь отправки сообщений, чаще всего полностью отсутствует. А почтовый сервер при первом получении соединения, откажется принять сообщение, вернув 400-тую ошибку. 400-тые ошибки означают временный отказ почтовой системы и сигнализируют удаленному почтовому серверу, повторить отправку позже. Обычно это позже означает, через примерно 30 минут. Но если дисковый spool отсутствует, повторная отправка уже не состоится. В общем простая и эффективная система защиты от SPAMа.
Одна из реализация его для postfixа, postgrey. Установим его из портов:

cd /usr/ports/mail/postgrey/
make install clean

Установка не задает дополнительных вопросов. Соответственно собирается все быстро и легко.
Теперь разрешим его запуск:

echo "postgrey_enable=YES" >> /etc/rc.conf

и естественно запустим:

/usr/local/etc/rc.d/postgrey start

Ну а теперь нужно настроить postfix. Postfix состоит из целого ряда компонент, которые управляются центральным процессом master. За прием сообщений из вне, отвечает smtpd, соответственно, проверку greylist, необходимо указать в его рестрикшенах, для этого нужно найти такую строку в main.cf:

smtpd_recipient_restrictions =
          permit_mynetworks,
          reject_unauth_destination,
          reject_non_fqdn_sender,
          reject_non_fqdn_recipient,
          reject_unauth_pipelining,
          reject_invalid_hostname

и добавим в конце обращение к posgrey, теперь это в main.cf postfixа примет такой вид:

smtpd_recipient_restrictions =
          permit_mynetworks,
          reject_unauth_destination,
          reject_non_fqdn_sender,
          reject_non_fqdn_recipient,
          reject_unauth_pipelining,
          reject_invalid_hostname,
          check_policy_service inet:127.0.0.1:10023

Теперь перегрузим конфигурацию postfix, ну что бы новые настройки применились:

postfix reload

В общем настройка postgrey для postfix закончилась. Все должно нормально заработать, но в каждой компании наверняка найдется человек, который начнет нудеть, что почта ходит плохо, теряются важные письма и тд и тп. Да и просто, у вас наверняка найдутся коллеги, фильтровать почту от которых смысла нет.
Для этого в postgrey присутствуют 2 файла postgrey_whitelist_clients, в него вы можете внести ip адреса серверов отправителей, для которых не нужно осуществлять проверку «серым» списком и postgrey_whitelist_recipients, тут перечисленны адреса электронной почты, ваших пользователи, для которых не нужно применять фильтрацию.
Больше никаких настроек делать не нужно.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть