Postgrey (Postfix Greylisting Policy Server) - решение на Perl реализации технологии Greylisting для MTA Postfix.
Собственно говоря, Greylisting уже давно использую на корпоративных почтовых серверах. Но там в качестве MTA используется Exim. Сегодня знакомый пожаловался, что увеличилось количество приходящего спама на почтовые ящики в некоторых доменах. Эти домены я не так давно перенес на отдельный сервер, чтобы отделить грешное от праведного, тоесть клиентские данные от корпоративных.
На этом сервере в качестве MTA используется Postfix. Ряд дополнительных проверок уже установлен. Теперь дело за малым - включить поддержку Greylisting. Итак, по вышеуказанной ссылке можно узнать, как работает технология "серых списков". Поэтому не будем тратить время на описание технологии, а сразу приступим к настройке. Выполним установку Postgrey из системы портов:
# cd /usr/ports/mail/postgrey/ && make install clean && rehash |
Следующим шагом добавляем поддержку Postgrey при загрузке:
# echo '# Postfix Greylisting' >> //etc/rc.conf |
Запускаем службу:
# sh /usr/local/etc/rc.d/postgrey start Starting postgrey. |
Далее, следуя инструкциям, приступаем к редактированию конфигурационного файла Postfix - main.cf. Необходимо в параметр smtpd_recipient_restrictions сразу после reject_unauth_destination добавить опцию check_policy_service inet:127.0.0.1:10023. Навожу пример моего параметра smtpd_recipient_restrictions:
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client, reject_unknown_hostname, reject_unknown_sender_domain, reject_unverified_sender, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, reject_unauth_pipelining, reject_unlisted_recipient, reject_invalid_hostname |
Также следует обратить внимание на следующие файлы:
После внесения необходимых изменений перезапускаем Postfix:
# sh /usr/local/etc/rc.d/postfix restart postfix/postfix-script: stopping the Postfix mail system postfix/postfix-script: starting the Postfix mail system |
Для проверки посмотрим логи почтового сервера:
# tail -f /var/log/maillog |
В случае обнаружения примерно такой записи:
Jul 15 15:41:32 web0 postfix/smtpd[75888]: NOQUEUE: reject: RCPT from mail.example.com[xxx.xxx.xxx.xxx: 450 4.2.0 office [at] example [dot] com: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/example.com.html; from=admin [at] example [dot] org to=office [at] example [dot] org proto=ESMTP helo=<mail.example.com> |
можно считать, что настройка завершена успешно.
Настройки по умолчанию я не изменял, время грейлистинга - 5 минут.
Ознакомиться с доступными опциями можно на странице руководства:
# man postgrey |
Необходимые ключи запуска необходимо добавить в /usr/local/etc/rc.d/postgrey и перезапустить potgrey.
Сформировать отчет можно, используя утилиту postgreyreport, следующей командой :
А нет желания написать по
А нет желания написать по настройке Exima статью, где разжевано, будет все? :) Неделю мучаю, а нормально он так и не заработал. Вроде отправляет (с веб морды и консоли) и получает нормально, но в веб морде полученное не отображает и почтовым клиентом не получается принять/отправить почту )
Наверное напишу...
Наверное напишу, когда буду сетапить очередной почтовик, при условии, что будет немного времени. А то, обычно, сервер нужен "на вчера", и просто не остается времени, чтобы задокументировать настройку.
Если нужна помощь - пиши на мыло. Возможно пересечемся, попьем пивасика и посмотрим что да как...