Exchange

配置 exim4 以使用 Microsoft Exchange 作為智能主機

  • July 7, 2015

我的公司最近設置了一個 Active Directory 驅動的 Microsoft Exchange 環境來整合外發郵件。我們確實有一組登台伺服器,現在應該使用我們的 MSEXCHG 作為發送郵件的智能主機。

這些伺服器位於 DMZ 中,這就是為什麼在對 Exchange 2010 智能主機進行身份驗證中讚成的解決方案?不是替代方案,因為我們不能允許 DMZ 中的伺服器通過我們的 Exchange 伺服器隨意發送郵件。

我們在 MSEXCHG 中所做的事情:

我們做過的事情exim4 (8)

  • 使用update-exim4.conf (8)(cf exim4_files (5)) 我們將 exim 配置為exchange.contoso.com:587用作智能主機。
  • 在 passwd.client ( exim4_files (5)) 我添加了以下行exchange.contoso.com:stagingserver@activedirectory.contoso.com:secret123:)

使用上述配置啟動 exim 後,我在mainlog中收到以下兩個 TLS 錯誤:

  • TLS error on connection to ex.contoso.com [192.168.1.8] (recv): A TLS packet with unexpected length was received.
  • TLS error on connection to ex.contoso.com [192.168.1.8] (send): The specified session has been invalidated for some reason.

然後我們的 MSEXCHG 拒絕發送郵件,並顯示以下(最終)日誌條目:

** kiewiet@contoso.com R=smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM:<root@contoso-stage.com> SIZE=1538: host ex.contoso.com [192.168.1.8]: 530 5.7.1 Client was not authenticated

我嘗試過的其他事情:

所以,一個強制性的問題:我們如何讓 exim 使用我們的 MSEXCHG 環境作為智能主機?

我們的問題是特定於我們的設置的。我們有多個 Exchange Server 與充當 AP 的負載平衡器並行執行。LB 配置錯誤,導致它忽略提供任何身份驗證方法欄NTLMGSSAPI即使在成功STARTTLS握手之後也是如此。

swaks 通過jetmore.org(強烈推薦此工具)進行的深入測試揭示了這一點。

您的組織是否為內部伺服器運營自己的證書頒發機構?也許您需要將 Exchange 伺服器的 CA 證書添加到 Exim 的證書信任庫中?很多產品都不能很好的報這個錯誤(不知道Exim有沒有)。

Wireshark(首先在伺服器上擷取,tcpdump -p -s0 -w /tmp/foo.pcap然後使用 Wireshark 複製到本地工作站)應該能夠顯示從 Exchange 發送的伺服器證書,如​​果客戶端在此之後掛斷,那麼缺少 CA 證書是一個常見原因。

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