Spf

Amavis / Spamassassin - FORGED_SPF_HELO 和 SPF_HELO_PASS

  • January 1, 2020

我有一個通過 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

引用自:https://serverfault.com/questions/997288