Linux
獲取後綴以將 SMTP/SSL/TLS 中繼到憲章/頻譜
我在 Debian 上執行 Postfix 作為小型 LAN 的 MX,並試圖讓SMTPS通過埠 587 與 mobile.charter.net 一起工作。我按照Google的一些連結進行了設置,並在serverfault上發布了類似的文章問題。我嘗試發送幾封電子郵件,但在郵件日誌中收到有關*“初始伺服器問候”的錯誤:*
Nov 17 03:39:14 edgemx postfix/smtp[30355]: 9B39AA4: to=<xxxxxxxx@charter.net>, relay=mobile.charter.net[47.43.18.12]:587, delay=473, delays=173/0.03/300/0, dsn=4.4.2, status=deferred (conversation with mobile.charter.net[47.43.18.12] timed out while receiving the initial server greeting)
我在發送時在埠 587 上執行了tcpdump,但我沒有看到 Postfix 和 Charter 之間發生證書傳輸。大概有三個 SYN 數據包,僅此而已。如果我在客戶端模式下使用openssl進行連接,tcpdump流量會有很大不同,我可以看到發生證書傳輸。
openssl s_client -connect mobile.charter.net:587
有誰知道怎麼回事?什麼是 openssl 做 Postfix 不是?main.cf中的相關 SASL/SSL 編輯如下。
main.cf
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/relayhost_passwd smtp_sasl_security_options = noanonymous smtp_use_tls = yes smtp_tls_security_level = encrypt relayhost = [mobile.charter.net]:587 smtp_tls_mandatory_ciphers = high
relayhost_passwd 文件(postmap’d 已經)
[mobile.charter.net]:587 xxxxxxxx@charter.net:sUp3rS3kr1t
您嘗試訪問的遠端郵件伺服器配置錯誤。
在埠 587 上,郵件伺服器應該以純文字形式回复,並期望發件人發送 STARTTLS 命令以開始 TLS 協商。
該郵件伺服器不這樣做。相反,它會立即進行 TLS 協商(隱式 TLS)。這是埠 465 的預期行為(它的行為完全相同,對於該埠是正確的)。
您可以通過設置解決此損壞的行為
smtp_tls_wrappermode
:smtp_tls_wrappermode = yes
還可以考慮將埠從 587 更改為 465(您仍然需要添加上述設置),因為當郵件伺服器管理員修復他們的錯誤配置時,您的傳遞將再次中斷。