Postfix 拒絕來自經過身份驗證的客戶端的郵件
我正在嘗試配置 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_authenticated
到smtpd_client_restrictions
(不要與 混淆smtpd_recipient_restrictions
)。這已經解決了。
使用 telnet/openssl 從系統測試http://www.postfix.org/SASL_README.html#server_test我不知道 iPhone 是否支持 starttls,因此您可能需要針對 465 和 587 進行測試以獲取 ssl 支持。我認為您也將其設置為僅在使用 ssl 時接受身份驗證。