Блокировка исходящей почты на определенный адрес с помощью Postfix

Как я могу заблокировать исходящую почту на определенный адрес, используя Postfix?

Мне частично удалось заблокировать исходящую электронную почту, используя header_checks, Однако header_checks не распространяется на BCC.

Я также протестировал это решение: http://www.linuxmail.info/postfix-restrict-sender-recipient/ но оно не сработало.

4 ответа

Решение

Как описано в access (5), просто добавьте карту check_recipient_access к своим smtpd_recipient_restrictions; если вы хотите заблокировать этих получателей и для своих собственных пользователей, обязательно разместите их перед allow_mynetworks и / или allow_sasl_authenticated.

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/bad_recipients, permit_mynetworks, reject_unauth_destination, permit

И в /etc/postfix/bad_recipients:

bad_user1@example.com REJECT We don't like him
bad_user2@example.org REJECT Delivery to this user is prohibited

Чтобы запретить кому-либо (локальным (команда mail/sendmail) системным пользователям и пользователям SMTP) отправку на адрес электронной почты, на который вы не можете положиться smtpd_recipient_restrictions, Вы должны поместить ограничение в qmgr фаза. Для этого я обнаружил, что transport_maps работает хорошо.

main.cf:

transport_maps = pcre:/etc/postfix/transport_maps

transport_maps:

/^user(\+[^@]+)?@host\.com/ discard:
/.*/ :

Может быть, есть лучшее решение, но оно подходит для всех типов доставки. К вашему сведению, это регулярное выражение поддерживает user@host.com а также user+anything@host.com при условии + разделитель. Это мешает To, CC и BCC.

Также убедитесь, что в вашем постфиксе включена поддержка pcre. В операционных системах на основе Debian (Ubuntu и т. Д.), Предоставляемых пакетом postfix-pcre.

Самый простой способ сделать это без поддержки регулярных выражений:

  1. Добавьте это в main.cf, если его там еще нет:

    transport_maps = хэш:/etc/postfix/transport

  2. Добавьте эту строку в файл "/ etc / postfix / transport"

    address_to_discard@example.com сбросить

  3. Запустить postmap

    postmap / etc / postfix / transport

  4. Перезагрузить постфикс

    сервис перезагружает постфикс

У нас был сценарий использования для этого сценария, в котором нам нужно было заблокировать некоторых пользователей, получающих (подписку) почтовые рассылки из списка. Пользователи, которые отказались нажимать на ссылку "Отписаться" в этих запросах пользователей (так что нет, это не спам). Через некоторое время мы получили неправильные письма от интернет-провайдеров, которые получили жалобы от этих странных ленивых пользователей, что было чересчур много времени. Поэтому мы решили создать карту для постфикса. Однако размещение их в REJECT создало новые проблемы с программным обеспечением, отправляющим им почту через postfix, так что мы в итоге сделали это вместо этого:

lazy_user@aol.com DISCARD Delivery to this user is ignored as a result of annoying abuse-responses from even lazier ISPs.
Другие вопросы по тегам