Postfix Postgrey и очистка очереди

Не дают покоя спаммеры факультетской почте. После настройки Яндекс.Спамооборона 1024 спам в ящики практически перестал приходить, но пошла новая тема – вдувать за день в очередь около миллиона корявых сообщений, которые системе приходится обрабатывать и получается, фактически, отказ в обслуживании.

Пришлось подключить к postfix релею policy server Postgrey. Смысл её работы:

When a request for delivery of a mail is received by Postfix via SMTP, the triplet CLIENT_IP / SENDER / RECIPIENT is built. If it is the first time that this triplet is seen, or if the triplet was first seen, less than 5 minutes ago, then the mail gets rejected with a temporary error. Hopefully spammers or viruses will not try again later, as it is however required per RFC.

Тем самым отсекается основной поток одинаковых писем.

Настроить на Ubuntu очень просто:

apt-get install postgrey

И потом добавить нужную директиву к smtpd_recipient_restrictions, например:

smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023

И перезапустить postfix:

/etc/init.d/postfix reload

После этого не помешает очистить очередь от скопившихся там баунсов. Что бы найти и удалить все письма в очереди от MAILER-DAEMON, я воспользовался скриптом, найденным тут:

#!/bin/bash
mailq | tail -n +2 | grep -v '^ *(' | awk  'BEGIN { RS = "" }
# $7=sender, $8=recipient1, $9=recipient2
{ if ($7 == "MAILER-DAEMON" )
    print $1 }
' | tr -d '*!' | postsuper -d -

3 thoughts on “Postfix Postgrey и очистка очереди

  1. больше интересует то, как очистить базу этого самого Postgrey. Эта собака зачемто хранит всю историю своих действий за всё время своего существования 🙁 Складывает её аккуратно в /var/lib/postgrey. За год 2 гига набежало. Это при том что –max-age=20 установлено. Ну зачем мне история всего и вся за все годы работы этой дряни? Нет, ладно бы была возможность её очищать. Но я таковой не нашёл 🙁 Ни в мане, ни в гугле 🙁

  2. Остановить, переместить файлы из /var/lib/postgrey, запустить, по идее должно помочь.

  3. Да, действительно, очень удобный способ!

    Естественно, я так и сделал. Только вот плохо, что штатными средствами нельзя.

Оставить комментарий