необходим postfix >= 2.3.0, postgrey >= 1.27-alt4
Postgrey в ALT Linux собирается с патчем http://k2net.hakuba.jp/targrey/index.en.html, добавляющим возможность избирательно вносить дополнительную задержку в SMTP-сессию (tarpitting)
taRgrey режим (--tarpit=65 --targrey):
connect -> tarpit-пауза -> нет грейлистинга -> приём письма + занесение клиента в autowhitelist не ранее чем через --auto-whitelist-delay (1 час по дефолту) если будут последующие сообщения. Tarpit-пауза активна до тех пор пока не истечёт --auto-whitelist-delay
connect -> disconnect во время tarpit-паузы -> повторное соединение клиента -> tarpit-паузы нет, но есть грейлистинг на --delay секунд + необходимо 2 повтора (--retry-count=2). Если грейлистинг пройден, клиент заносится в autowhitelist.
Tarpit-режим (--tarpit=65 ):
connect -> tarpit-пауза -> грейлистинг на --delay секунд, минимум 2 повтора (--retry-count=2). Если грейлистинг пройден, клиент заносится в autowhitelist
Для включения работы tarpitting необходимо выбрать, какой режим вы хотите использовать и прописать соответствующие опции в /etc/sysconfig/postgrey. Например:
Внимание: в tarpit-режиме вместо GREYLIST_TEXT выдаётся сообщение
450 4.7.0 <xxx@xxxx.tld>: Recipient address rejected: defer_if_permit requested
Потому что постфикс, похоже, не совсем правильно обрабатывает несколько action-ов подряд, если в одном из них есть опциональный параметр, в данном случае текст реджекта. Автор патча работает над этим.
taRgrey режим:
mail.cf:
В taRgrey режиме обращение к policy server-у производится дважды
– первый раз в smtpd_recipient_restrictions, где postgrey выполняет tarpitting и заносит IP-адрес клиента в так называемый “tarpit blacklist” (я не совсем понял, почему автор назвал это блэклистом).
– второй раз при вызове из smtpd_data_restrictions postgrey проверяет, прошёл ли клиент tarpitting или нет, и если нет, то он выполняет грейлистинг, а если прошёл, то пропускает запрос.
Tarpit-режим:
postgrey настраивается как обычно, т.е.