Postfix 3.3.0を介してwebformタイプのメールを送信するWebサーバーがあります。着信なし。エキストラなし。
受信メールサーバーは同じPostfixを実行しています(ただし、amavis-new/spamassassin + dovecot/etcを使用)。これらは両方とも同じドメインにありますが、サブドメインは異なります(「www。」と「mail。」)。
テスト電子メールが(postfix sendmailコマンドを使用して)Webサーバーからメールサーバーに送信されると、HELO/EHLOのスコアリングを除いてすべてが完璧です。 FORGED_SPF_HELO
。私はこれにこれまで遭遇したことがなく、見つけるべきドキュメントはほとんどありません。ただし、それはHELOでSPFルックアップを渡していないことから自明のようです。
元のDNSは単に「www」でした。頂点AレコードのCNAMEとして。
頂点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]
「www」を調整しました。レコードは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]
偽造と合格?
主な質問:
最初に、SPFのa
がCNAMEの「www」を許可していない理由を誰かが説明できますか?合格する?第二に、「偽造」と「パス」を同時に行う方法を誰かが説明できますか?
ルールFORGED_SPF_HELO
はSpamassassinの更新に由来します。設定フォルダ(/var/lib/spamassassin
、少なくともDebianoidsでは)をgrepすることで、次の定義が表示されます。
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
がありません(ホストはe-ドメインに代わってメール)。
公式メールサーバーのリストにwww.example.net
を追加したくないので、[email protected]
という形式の送信者に電子メールを送信するように構成します。