Назад | Перейти на главную страницу

Очередь ретрансляции Postfix заполнена сообщениями о недоставке от несуществующих пользователей

Я нахожусь в особой ситуации, когда мой Postfix ретранслирует почту между Интернетом и внутренним кластером MS Exchange.

Кластер MS Exchange всегда отвечает 250 OK, независимо от получателя. В данный момент нет никакой надежды получить доступ к списку действительных получателей.

Недоставленное письмо в конечном итоге будет возвращено как сообщение об ошибке через ретранслятор и обратно отправителю.

Затем отправитель вернет его обратно на ретранслятор, и это будет продолжаться в виде снежного кома, пока активная очередь не заполнится настолько, что доставка почты займет 30-45 минут.

Я знаю, что решал это раньше, система работает с 2013 года без каких-либо проблем. Но до недавнего времени он работал со спам-фильтром Amavis в качестве прокси-фильтра в master.cf.

Большое изменение, которое недавно вызвало эту проблему с очередью, заключалось в том, что ретранслятор Postfix был повторно развернут без какой-либо фильтрации с RHEL6 на CentOS 8, обновившись с postfix 2.6.6 до 3.3.1.

Но конфигурация main.cf в основном такая же, только удалены некоторые фильтры политики и добавлены enable_long_queue_ids = yes.

Одна из моих идей заключалась в том, чтобы создать еще одну службу smtpd в master.cf, прослушивающую localhost: 10025, и установить для моей службы порта 25 значение smtpd_proxy_filter = 127.0.0.1: 10025. По сути, это то, что мы сделали с Amavis, когда он использовался, чтобы избежать очередей на диске.

Но это не избавит от проблемы с отскоками, идущими туда и обратно, может даже истощить ресурсы.

Кто-нибудь знает, как справиться с этой конкретной ситуацией? Я читал http://www.postfix.org/QSHAPE_README.html и http://www.postfix.org/STRESS_README.html и http://www.postfix.org/BACKSCATTER_README.html но, похоже, ни одна из ситуаций не подходит.

Текущий main.cf

soft_bounce = no
smtpd_error_sleep_time = 0
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
default_privs = mail

inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, spam.mydomain.tld mxtest.mydomain.tld

virtual_alias_maps = hash:/etc/postfix/virtual_aliases
mynetworks = /etc/postfix/relay_networks
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

relayhost = spam-filtering-service.com:587
transport_maps = hash:/etc/postfix/transport

#debug_peer_level = 2
message_size_limit = 25000000

unknown_local_recipient_reject_code = 550
address_verify_map = btree:$data_directory/verify_cache
smtpd_recipient_restrictions =
  permit_mynetworks
  reject_unauth_destination
  reject_unknown_sender_domain
  reject_unknown_recipient_domain

unverified_recipient_reject_reason = Address lookup failed
smtp_defer_if_no_mx_address_found = yes
smtpd_client_restrictions = 
  check_client_access hash:/etc/postfix/client_access
  permit_mynetworks
  reject_rbl_client sbl.spamhaus.org
  permit

#smtpd_tls_cert_file = /etc/postfix/server.crt
#smtpd_tls_key_file = /etc/ssl/server.key

# TLS Server options
smtpd_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_exclude_ciphers = aNULL, eNULL, EXP, MD5, IDEA, KRB5, RC2, SEED, SRP, RC4
smtpd_tls_eecdh_grade = strong
smtpd_tls_received_header = yes

# TLS Client options
#smtp_tls_security_level = may
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_note_starttls_offer = yes
smtp_tls_CApath = /etc/ssl/certs
smtp_tls_loglevel = 1

# Borde egentligen implementera ändringarna som föreslås här https://weakdh.org/sysadmin.html
# openssl dhparam -out /etc/postfix/dhparams.pem 2048
# smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA
# smtpd_tls_dh1024_param_file = /etc/postfix/dhparams.pem

#header_checks = regexp:/etc/postfix/header_checks

# Long Session IDs in logs and queues to make troubleshooting easier
enable_long_queue_ids = yes

home_mailbox = Maildir/