Postfix

Postfix 拒絕來自經過身份驗證的客戶端的郵件

  • November 1, 2020

我正在嘗試配置 Postfix,以便它可以接受來自外部經過身份驗證$mynetworks的客戶端的郵件。

當我嘗試從配置為使用埠 25、SSL 和密碼身份驗證的 iPhone 發送測試電子郵件時,郵件被 Postfix 拒絕。我得到以下內容/var/log/mail.info

10 月 25 日 17:41:35 郵件主機 postfix/smtpd

$$ 6136 $$:警告:212.183.xx:主機名 host212-183-xx.uk.access.vodafone.net 驗證失敗:名稱或服務未知 10 月 25 日 17:41:35 郵件主機 postfix/smtpd

$$ 6136 $$: 從未知連接$$ 212.183.x.x $$ 10 月 25 日 17:41:39 郵件主機 postfix/smtpd

$$ 6136 $$: NOQUEUE: 拒絕:來自未知的 RCPT$$ 212.183.x.x $$:554 5.7.1:客戶端主機被拒絕:訪問被拒絕;從=<aix@x.com> 到=<aix@x.com> proto=ESMTP helo=<$$ 10.25.x.x $$> 10 月 25 日 17:41:39 郵件主機 postfix/smtpd

$$ 6136 $$: 從未知斷開$$ 212.183.x.x $$

以下是我所有main.cf與 SASL/TLS 相關的設置:

smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtp_use_tls = yes
smtpd_tls_received_header = yes
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_auth_only = yes
tls_random_source = dev:/dev/urandom

如何確定會話確實經過身份驗證?

我該如何進一步解決這個問題?

經過大量實驗,結果證明我必須添加permit_sasl_authenticatedsmtpd_client_restrictions(不要與 混淆smtpd_recipient_restrictions)。

這已經解決了。

使用 telnet/openssl 從系統測試http://www.postfix.org/SASL_README.html#server_test我不知道 iPhone 是否支持 starttls,因此您可能需要針對 465 和 587 進行測試以獲取 ssl 支持。我認為您也將其設置為僅在使用 ssl 時接受身份驗證。

引用自:https://serverfault.com/questions/324689