Dmarc
具有多個 MX 的 OpenDMARC:正確設置伺服器之間的信任
有許多關於如何在您最喜歡的 Linux 風格上設置 OpenDMARC 的教程,但它們都側重於單伺服器配置。我的目標是保留備用輔助 MX 伺服器,但強制
RejectFailures true
要求 DMARCp=reject
真正得到滿足。這導致了一個問題:範例配置具有
TrustedAuthservIDs HOSTNAME
上行 SPF 和 DKIM 源。如果這用於列出輔助 MX 伺服器,它將允許在具有單個偽造標頭的主 MX 上完全繞過 OpenDMARC 檢查。Authentication-Results: <HOSTNAME>; dkim=pass (1024-bit key; unprotected) header.d=example.com header.i=@example.com;
如何在沒有此缺陷的情況下配置主 MX 和輔助 MX 之間的信任?
這是對 Server Fault 範圍內關於 Security Stack Exchange的另一個問題的重寫。
簡而言之:
- OpenDMARC 可以而且應該獨立檢查 SPF。
- OpenDKIM 必須驗證簽名,即使它已經“驗證”。(在單個 MX 上也是如此!)
- MX 伺服器之間的信任不應依賴於標頭,而應依賴於 SMTP 連接。
如何配置這個?
- 您可以按照教程進行 (SPF,) OpenDKIM 和 OpenDMARC 的初始配置。
(此後,Postfix 將 OpenDKIM 和 OpenDMARC 配置為 SMTP milters。) 2. 所有 MX 伺服器的OpenDMARC
/etc/opendmarc.conf
配置更改:
- 使用 OpenDMARC milter 進行連接階段拒絕(預設為
false
):RejectFailures true
不要相信來自 pypolicyd-spf 或替代方案的外部 SPF 檢查。執行自己的檢查:
FIgnoreResults true FSelfValidate true
3. **OpenDKIM**必須配置為添加標頭,即使它已經存在。`/etc/opendkim.conf`:
AlwaysAddARHeader yes
4. 一旦每個 MX 都配置了 #1-#3,**主 MX 上的 OpenDMARC 就**可以信任其他 MX 伺服器所做的檢查;偽造的郵件應該已經被輔助 MX 拒絕。不要在 上列出它們`TrustedAuthservIDs`,因為它容易被偽造標題。還有另 `opendmarc.conf`一種更適合這種情況的選擇: > > `IgnoreHosts` *(細繩)* > > > 指定文件的路徑,該文件包含主機名、IP 地址和/或 CIDR 表達式列表,用於標識過濾器將忽略其 SMTP 連接的主機。如果未指定,則預設為`127.0.0.1`only。 > > >
IgnoreHosts /etc/opendmarc-ignorehosts.conf
...並在該新配置文件中列出輔助 MX 伺服器的 IP 地址。