SpamAssassin local.cf DMARC 配置辨識拒絕和無,但不辨識隔離
對於 SpamAssassin 3.4.2,我添加了以下配置規則集,
local.cf
目的是為失敗的 DMARC 測試提供垃圾郵件分數。DMARC 和 SPF Authentication-Results 標頭由 創建,
opendmarc
DKIM Authentication-Results 標頭由opendkim
.預期輸出是添加到 X-Spam-Report 標頭的所有三個標頭結果的分數。
實際輸出僅適用於在 X-Spam-Report 標頭中添加
p=reject
或p=none
具有適當分數的域,但p=quarantine
即使 DMARC、DKIM 和 SPF Authentication-Results 標頭也不會將任何內容添加到 X-Spam-Report 標頭已按預期添加。添加到
/etc/spamassassin/local.cf
:ifplugin Mail::SpamAssassin::Plugin::AskDNS askdns __DMARC_POLICY_NONE _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=none;/ askdns __DMARC_POLICY_QUAR _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=quarantine;/ askdns __DMARC_POLICY_REJECT _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=reject;/ meta DMARC_REJECT !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_REJECT score DMARC_REJECT 10 meta DMARC_QUAR !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_QUAR score DMARC_QUAR 5 meta DMARC_NONE !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_NONE score DMARC_NONE 0.1 endif # Mail::SpamAssassin::Plugin::AskDNS
配置有什麼問題?
您所指的配置是從DMARC/Spamassassin/Qmail上的 Random Thoughts 部落格複製的。如果由於某種原因您不能使用 OpenDMARC,這篇博文將 AskDNS 作為第三種選擇。由於您已經在使用 OpenDMARC,您可以直接
Authentication-Results
在 SpamAssassin 中使用它的標頭。從大衛瓊斯修改:header DMARC_PASS Authentication-Results =~ /mail\.example\.com; dmarc=pass/ describe DMARC_PASS DMARC check passed score DMARC_PASS -0.1 header DMARC_FAIL Authentication-Results =~ /mail\.example\.com; dmarc=fail/ describe DMARC_FAIL DMARC check failed score DMARC_FAIL 5.0 header DMARC_NONE Authentication-Results =~ /mail\.example\.com; dmarc=none/ describe DMARC_NONE DMARC check neutral score DMARC_NONE 0.1
如果您已實施 OpenDMARC 以在連接階段拒絕未通過 DMARC 檢查的消息
p=reject
,則您的 SpamAssassin 將永遠不會看到任何屬於第四類的消息,但這裡只是為了完整性:header DMARC_FAIL_REJECT Authentication-Results =~ /mail\.example\.com; dmarc=fail \(p=reject/ describe DMARC_FAIL_REJECT DMARC check failed and the sending domains says to reject this message score DMARC_FAIL_REJECT 10.0
因為
Authentication-Results
標題也可以偽造,所以我不會僅根據它們給出高*負分。*因此,這裡最有用的規則是DMARC_FAIL
, 觸發p=quarantine
。在我看來,這也可能比本範例中的得分更高5.0
,因為發送域已經做出了決定。如果上面的範例配置不合適,這裡有一個額外的配置和評分選項:
header DMARC_PASS Authentication-Results =~ /mail\.example\.com; dmarc=pass/ describe DMARC_PASS DMARC check passed score DMARC_PASS -0.1 header DMARC_NONE Authentication-Results =~ /mail\.example\.com; dmarc=none/ describe DMARC_NONE DMARC record not found score DMARC_NONE 0.1 header DMARC_FAIL_NONE Authentication-Results =~ /mail\.example\.com; dmarc=fail \(p=none/ describe DMARC_FAIL_NONE DMARC check failed (p=none) score DMARC_FAIL_NONE 2.0 header DMARC_FAIL_QUARANTINE Authentication-Results =~ /mail\.example\.com; dmarc=fail \(p=quarantine/ describe DMARC_FAIL_QUARANTINE DMARC check failed (p=quarantine) score DMARC_FAIL_QUARANTINE 5.0 header DMARC_FAIL_REJECT Authentication-Results =~ /mail\.example\.com; dmarc=fail \(p=reject/ describe DMARC_FAIL_REJECT DMARC check failed (p=reject) score DMARC_FAIL_REJECT 10.0