使用 DeamonPortOptions 透過 genericstable 偽裝修復 DKIM 簽名

使用 DeamonPortOptions 透過 genericstable 偽裝修復 DKIM 簽名

我正在使用 sendmail 從我的 Debian 伺服器發送郵件。我希望能夠使用 genericstable 進行偽裝來發送具有多個網域的郵件。我正在使用 OpenDKIM 簽署郵件,但由於 OpenDKIM 在偽裝發生之前簽署郵件,因此金鑰不符。

OpenDKIM 在其上解決了這個問題自述文件頁面

由於 milter 協定合併到 MTA 的方式,opendkim 在根據這兩個功能的要求修改標頭之前會看到標頭。這意味著 DKIM 簽章是根據郵件用戶端最初注入的標頭產生的,而不是根據 MTA 實際發送的標頭產生的。結果,接收方的驗證代理將無法驗證簽名,因為簽署的資料和接收到的資料不符。

針對此問題的建議解決方案是:

(1) 發送郵件時已根據需要編寫了標頭,從而不再需要這些功能(或直接將其關閉)。

(2) 設定兩個 MTA,可以在不同的盒子上,也可以在同一個盒子上。第一個 MTA 應該執行所有重寫(即使用這兩個功能),第二個 MTA 應該使用 opendkim 添加簽名並且根本不進行重寫。

(3) 設定檔中有多個 DaemonPortOptions 行。第一個守護程式連接埠(連接埠 25)進行標頭重寫,然後將訊息路由到第二個連接埠;後者不進行重寫,而是進行簽名,然後按原樣發送訊息。

我想使用第三種解決方案來解決問題,但我不知道如何開始。由於某些原因,我不想使用第一個解決方案。

我的 sendmail.mc 檔案中目前的 DeamonPortOptions 是

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea')dnl

是否可以將我的 sendmail 設定為使用 1 個連接埠進行偽裝,使用另一個連接埠新增 DKIM 並按照自述文件的建議進行傳送?

任何幫助將不勝感激!

答案1

我能夠透過在我的submit.mc/submit.cf配置中添加偽裝功能和設定來解決這個問題。這樣,本機郵件程式 (MSP) 在 MTA 將其傳送到 DKIM 郵件過濾器之前會更改 From: 標頭。

我使用了與我相同的MASQUERADE_AS和行MASQUERADE_DOMAINsendmail.mc

相關內容