Amavis / Spamassassin - FORGED_SPF_HELO 和 SPF_HELO_PASS
我有一個通過 Postfix 3.3.0 發送網路表單類型電子郵件的網路伺服器。沒有入境。沒有多餘的。
接收郵件伺服器正在執行相同的 Postfix(但使用 amavis-new/spamassassin + dovecot/etc)。它們都在同一個域上,但不同的子域(“www.”和“mail.”)。
當測試郵件從 Web 伺服器發送到郵件伺服器(使用 postfix sendmail 命令)時,除了 HELO/EHLO 上的評分外,一切都很完美。我不斷得到一個
FORGED_SPF_HELO
. 我以前從未遇到過這個,並且幾乎找不到文件。不過,似乎不言自明,它沒有通過 HELO 上的 SPF 查找。最初的 DNS 只是“www”。作為 CNAME 到頂點 A 記錄。
頂點 SPF 包括“a”記錄:
"v=spf1 a mx ~all"
來自日誌的 HELO 是:
helo=www.example.net, Tests:[ALL_TRUSTED=-1,FORGED_SPF_HELO=1,MISSING_HEADERS=1.207,MISSING_SUBJECT=1.767]
我調整了“全球資訊網”。記錄,所以它是一個 A 記錄,並為它單獨添加了一個 SPF TXT 記錄。
現在我得到:
helo=www.example.net, Tests: [ALL_TRUSTED=-1,FORGED_SPF_HELO=1,MISSING_HEADERS=1.207,MISSING_SUBJECT=1.767,SPF_HELO_PASS=-0.001]
偽造並通過?
主要問題:
誰能解釋為什麼在第一個實例
a
中 SPF 不允許 CNAME ‘www。通過?其次,誰能解釋一下如何同時擁有“偽造”和“通行證”?
該規則
FORGED_SPF_HELO
來自 Spamassassin 更新。通過 grepping 您的配置文件夾(/var/lib/spamassassin
至少在 Debianoids 上),您將看到定義:meta FORGED_SPF_HELO __HELO_NOT_RDNS && SPF_HELO_PASS && !SPF_PASS header __HELO_NOT_RDNS X-Spam-Relays-External =~ /^[^\]]+ rdns=(\S+) helo=(?!\1)\S/ header SPF_PASS eval:check_for_spf_pass() header SPF_HELO_PASS eval:check_for_spf_helo_pass()
您失敗了規則
__HELO_NOT_RDNS
(主機的反向 DNS 查找www.example.net
不是www.example.net
)並且您沒有SPF_PASS
(主機無權代表您的域發送電子郵件)。由於您當然不想添加
www.example.net
到您的官方郵件伺服器列表中,請將其配置為發送帶有表單的發件人的電子郵件user@www.example.net
。