Как внести хосты/IP в белый список Postfix
TL;DR
Добавьте IP или имя хоста в локальный файл исключений, сформируйте хеш с помощью postmap и вставьте проверку check_client_access в smtpd_recipient_restrictions перед списком RBL. После перезапуска Postfix указанные хосты будут игнорировать DNSBL-проверки.
Version 1.0
Author: Falko Timme
Проблема
Если вы администрируете почтовый сервер и используете блокировку по спискам (DNSBL) для фильтрации спама, иногда легитимные freemailer’ы попадают в черный список и перестают доставлять письма вашим пользователям. В логах вы можете увидеть запись примерно такого вида:
SMTP error from remote mail server after RCPT TO:<[email protected]>: host mail.example.com [4.3.2.1]: 554 5.7.1 Service unavailable; Client host [1.2.3.4] blocked using dnsbl.sorbs.net; Currently Sending Spam See: http://www.sorbs.net/lookup.shtml?1.2.3.4В этом примере сервер 1.2.3.4 внесён в чёрный список и блокируется.
Важно: внесение хоста в белый список обходит проверки DNS-блокировщиков — используйте осторожно и только для доверенных отправителей.
Короткая методика — шаг за шагом
- Создайте файл /etc/postfix/rbl_override и перечислите в нём по одной записи в строке IP-адрес или имя хоста и слово OK.
vi /etc/postfix/rbl_overrideСодержимое файла должно быть, например:
1.2.3.4 OK
1.2.3.5 OK
mail.freemailer.tld OK- Сформируйте хеш-таблицу Postfix:
postmap /etc/postfix/rbl_override- Откройте /etc/postfix/main.cf и найдите параметр smtpd_recipient_restrictions. Добавьте проверку check_client_access hash:/etc/postfix/rbl_override после reject_unauth_destination, но перед первой директивой reject_rbl_client.
Пример до изменений:
vi /etc/postfix/main.cf[...]
smtpd_recipient_restrictions = reject_invalid_hostname,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client multi.uribl.com,
reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client combined.rbl.msrbl.net,
reject_rbl_client rabl.nuclearelephant.com,
permit
[...]Измените на:
[...]
smtpd_recipient_restrictions = reject_invalid_hostname,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
check_client_access hash:/etc/postfix/rbl_override,
reject_rbl_client multi.uribl.com,
reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client combined.rbl.msrbl.net,
reject_rbl_client rabl.nuclearelephant.com,
permit
[...]- Перезапустите Postfix:
/etc/init.d/postfix restartПосле этого IP-адреса и хосты, указанные в /etc/postfix/rbl_override, будут приниматься несмотря на наличие их в списках DNSBL.
Когда это полезно
- Экстренное восстановление доставки от крупных freemailer’ов, которые попали в DNSBL по ошибке.
- Белый список для доверенных партнёров и сервисов рассылки.
Когда это не сработает или нежелательно
- Если отправитель действительно рассылал спам — белый список скрывает проблему и позволяет спаму проходить.
- Если в системе применяются дополнительные фильтры на уровне контента или внешние антивирусные шлюзы — белый список только отключит RBL-проверки, но не другие проверки.
Альтернативные подходы
- Обратная связь с поддержкой конкретного DNSBL и запрос на удаление записи.
- Использование условной белой таблицы с датой/меткой и автоматическим истечением (скрипт управления).
- Ограничение белого списка по диапазону доверенных IP и политике DKIM/SPF/DMARC.
Риски и рекомендации
Риск: обход фильтрации спама.
Митигировать: вести журнал изменений, документировать причину добавления и проверять поведение в течение 7–14 дней.Риск: человеческая ошибка при указании IP или формата.
Митигировать: использовать git/версионирование для конфигурации и проверять синтаксис postmap.
Чеклисты по ролям
Администратор (операции):
- Добавить запись в /etc/postfix/rbl_override.
- Выполнить postmap /etc/postfix/rbl_override.
- Правильно вставить check_client_access в main.cf.
- Перезапустить Postfix и проверить логи.
Служба поддержки (helpdesk):
- Собирать примеры недоставленных писем и заголовки.
- Передавать владельцу сервиса для оценки доверия.
Отдел безопасности:
- Подтвердить, что отправитель не участвует в рассылке спама.
- Установить срок автоматической проверки/удаления из белого списка.
Критерии приёмки
- Письма с тестового хоста, указанные в rbl_override, успешно принимаются сервером.
- В логах видно, что проверка check_client_access вернула OK для соответствующего IP.
- Нет роста числа жалоб на спам от клиентов после внесения записи.
Мини-методология управления (оперативная)
- Получить подтверждение от владельца почтового домена отправителя.
- Добавить запись в rbl_override с пометкой причины и даты.
- Выполнить postmap и перезапустить Postfix.
- Мониторить логи и обратную связь 7–14 дней.
- По истечении срока повторно проверить ротацию DNSBL или удалить запись.
Глоссарий (1 строка)
- DNSBL — распределённый список блокированных IP; используется для блокировки известных спамеров.
FAQ
Как отменить внесение в белый список?
Удалите запись из /etc/postfix/rbl_override, выполните postmap /etc/postfix/rbl_override и перезапустите Postfix.
Можно ли добавить диапазон IP вместо одного адреса?
Postfix check_client_access поддерживает форматы CIDR при использовании hash: требуется указать точные ключи; для диапазонов можно использовать CIDR в формате 1.2.3.0/24 в специальных базах, но в простом hash нужно перечислить нужные адреса или использовать netmap/other lookup type.
Нужно ли уведомлять владельца DNSBL?
Рекомендуется: сначала запросить удаление из DNSBL у их поддержки, а белый список использовать как временную меру.
Ссылки
- Postfix: http://www.postfix.org
Похожие материалы
Google Password Manager в Chrome — инструкция
Как изменить имя аккаунта Origin (EA ID)
Отключить Sticky Keys в Windows 11
Отключить Quick Access в Windows 10
Измерить расстояние по прямой в Google Maps