sendmail 作為客戶端時不發出 STARTTLS

sendmail 作為客戶端時不發出 STARTTLS

我在中繼到透過 mimecast 路由郵件的伺服器時遇到問題。連線被拒絕並顯示以下訊息:

553 This route requires encryption (TLS) - https://community.mimecast.com/docs/DOC-1369#553

這讓我覺得 sendmail(配置了憑證並在充當伺服器時通告 STARTTLS)沒有在正確的時間(或根本沒有)發送 STARTLS。這是傳輸失敗的痕跡:

>>220 zzz.mimecast.com ESMTP; Thu, 16 Jun 2022 11:55:55 +0200
>>> EHLO rigel-170.orion.it
250-zzz.mimecast.com Hello [212.115.64.170]
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
>>> MAIL From:<[email protected]>
250 Sender OK [R9SDNpJCMqeqqffSnRQQeg.de46]
>>> RCPT To:<[email protected]>
553 This route requires encryption (TLS) - https://community.mimecast.com/docs/DOC-1369#553 [R9SDNpJCMqeqqffSnRQQeg.de46]
>>> DATA
503 Illegal command sequence - https://community.mimecast.com/docs/DOC-1369#503 [R9SDNpJCMqeqqffSnRQQeg.de46]

我要補充的是,同一台伺服器作為 smtps 伺服器運行,沒有任何問題(表明證書方面沒有問題),並且提交郵件程式定期發送 STARTTLS(我可以在日誌中看到 STARTTLS=client。)但是,那就是我在那裡見過的唯一的=客戶端(表明sendmail在充當其他伺服器的客戶端時實際上並沒有發送STARTTLS)

我嘗試了 SRV_Features、Try_TLS、TLS_Clt、TLS_Srv 和 TLS_Rcpt 的幾種組合,但沒有成功。到目前為止,我在訪問映射中留下的唯一 TLS 指令是:

Try_TLS: Yes

我還在sendmail.mc中配置了客戶端證書

我不知道接下來要嘗試什麼。

編輯

我剛剛發現以下內容(進一步模糊了問題)。

我配置了(由於黑名單問題)與預設主機名稱/位址不同的主機名稱/位址(位址和主機名稱都在 DNS 中正確註冊)。我用以下幾行這樣做了:

CLIENT_OPTIONS(`M=S,Addr=a.b.c.d')dnl
define(`confDOMAIN_NAME', `fubar.it')dnl

如果這兩行被註釋,starttls 將如預期發出(如透過追蹤 SMTP 會話所見)。這似乎沒有任何意義。

編輯2:根據評論,罪魁禍首是M=SCLIENT_OPTIONS 行中的位元(這是從很久以前的某個地方撕下來的)。 “S”的意思是“關閉 STARTTLS”,更改它就M=s可以了。作為參考,以下是自 sm 14.4 起守護程式/用戶端選項中標誌的意思:

 ON  OFF     Meaning
 a   A       Offer the AUTH SMTP extension
 b   B       Offer use of the SMTP VERB command
 d   D       Offer the DSN SMTP extension
 e   E       Offer the ETRN SMTP extension
 l   L       Require the client to authenticate with AUTH
 p   P       Offer the PIPELINING SMTP extension
 s   S       Offer the STARTTLS SMTP extension
 v   V       Verify a client certificate
 x   X       Offer use of the SMTP EXPN ...

此致,

答案1

據我了解,S標記會CLIENT_OPTIONS關閉STARTTLS支援。

CLIENT_OPTIONS(`M=S,Addr=a.b.c.d')dnl

相關內容