Гид по технологиям

Как внести хосты/IP в белый список Postfix

4 min read Почтовые серверы Обновлено 18 Nov 2025
Белый список IP/хостов в Postfix
Белый список 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-блокировщиков — используйте осторожно и только для доверенных отправителей.

Короткая методика — шаг за шагом

  1. Создайте файл /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
  1. Сформируйте хеш-таблицу Postfix:
postmap /etc/postfix/rbl_override
  1. Откройте /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
[...]
  1. Перезапустите 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.
  • Нет роста числа жалоб на спам от клиентов после внесения записи.

Мини-методология управления (оперативная)

  1. Получить подтверждение от владельца почтового домена отправителя.
  2. Добавить запись в rbl_override с пометкой причины и даты.
  3. Выполнить postmap и перезапустить Postfix.
  4. Мониторить логи и обратную связь 7–14 дней.
  5. По истечении срока повторно проверить ротацию 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 у их поддержки, а белый список использовать как временную меру.

Ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Google Password Manager в Chrome — инструкция
Безопасность

Google Password Manager в Chrome — инструкция

Как изменить имя аккаунта Origin (EA ID)
Игры

Как изменить имя аккаунта Origin (EA ID)

Отключить Sticky Keys в Windows 11
Windows

Отключить Sticky Keys в Windows 11

Отключить Quick Access в Windows 10
Windows 10

Отключить Quick Access в Windows 10

Измерить расстояние по прямой в Google Maps
Навигация

Измерить расстояние по прямой в Google Maps

Изменить устройство по умолчанию Amazon Kindle
Инструкции

Изменить устройство по умолчанию Amazon Kindle