後綴客戶端證書資訊未傳遞給 opendkim milter
我有一個私有後綴伺服器,它使用 dovecot sasl 來選擇性地驗證送出客戶端,我正在嘗試將它設置為也接受客戶端證書,以允許它充當某些特定源伺服器的中繼主機。
我已經讓它大部分工作了,但是遇到了一個小問題,opendkim milter 無法將經過證書身份驗證的中繼連接辨識為內部或經過身份驗證,因此它沒有添加 DKIM 簽名。
在 main.cf 中:
milter_default_action = accept smtpd_milters = inet:opendkim:8891 non_smtpd_milters = inet:opendkim:8891 smtpd_tls_CAfile = /path/to/private-ca-cert.pem tls_append_default_CA = no smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_tls_all_clientcerts,reject_unauth_destination smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_tls_all_clientcerts,reject_unauth_destination
在送出/inet 下的 master.cf 中:
-o smtpd_client_restrictions=permit_sasl_authenticated,permit_tls_all_clientcerts,reject -o smtpd_tls_ask_ccert=yes
以上所有方法都有效,並且允許提供由我的私有 CA 簽名的有效證書的連接進行中繼訪問。
但是,這些中繼的電子郵件不是由 opendkim 簽名的——相反,opendkim milter 會記錄以下內容:
external host [host.that.connected.with.cert] attempted to send as [mydomain.com]
我知道我可以使用 opendkim
ExternalIgnoreList
配置,但是由於這些主機位於動態 IP 上,這不是一個理想的解決方案,我正在尋找一種接受任何主機的解決方案,就像它接受通過 SASL 身份驗證的送出連接發送的郵件一樣任何郵件客戶端。我相信我已經將它追溯到
{auth_authen}
milter 用來確定郵件是否來自經過身份驗證的連接的宏…… postfix 只是將該宏設置為 sasl 使用者名。有什麼方法可以擴展功能
{auth_authen}
或添加新宏(使用 opendkim 的MacroList
配置)以指示使用了有效的客戶端證書?
因為無論如何您只接受經過身份驗證的郵件,所以您不需要傳遞有關opendkim使用哪種方法的資訊- 只有具有強制身份驗證(簽名)的埠和不提供身份驗證(驗證)的埠之間的(布爾)區別。
您可以設置讓
-o milter_macro_daemon_name=whatever
opendkim知道應該簽署哪些郵件*。*否則,該宏將預設為,但通過使用(任意,opendkim 不關心)不同的值進行僅驗證和強制身份驗證埠,您可以區分它們。master.cf``$myhostname
Docs 推薦使用
ORIGINATING
andVERIFYING
讓它超級明顯。MacroList
然後在您的opendkim.conf
罐子中檢查是否daemon_name
等於您設置的任何內容。