Linuxのお気に入りのフレーバーでOpenDMARCをセットアップする方法については多くのチュートリアルがありますが、それらはすべて単一サーバー構成に焦点を合わせています。私の目標は、バックアップのセカンダリMXサーバーを維持することでしたが、RejectFailures true
DMARCの場合p=reject
実際に満足する。
これにより問題が発生しました。設定例にはTrustedAuthservIDs HOSTNAME
uptreamSPFおよびDKIMソースの場合。これを使用してセカンダリMXサーバーを一覧表示すると、単一の偽造ヘッダーを使用して、プライマリMXでOpenDMARCチェックを完全にバイパスできます。
Authentication-Results: <HOSTNAME>;
dkim=pass (1024-bit key; unprotected) header.d=example.com [email protected];
この欠陥なしにプライマリMXとセカンダリMXの間の信頼を構成するにはどうすればよいですか?
これは別の 質問 サーバー障害の範囲のセキュリティスタックExchangeの書き直しです。
要するに:
これを構成する方法は?
(SPF、)OpenDKIMおよびOpenDMARCの初期構成のチュートリアルに従うことができます。
(この後、PostfixはOpenDKIMとOpenDMARCをSMTPミルターとして構成します。)
OpenDMARCすべてのMXサーバーの構成変更/etc/opendmarc.conf
:
接続ステージの拒否にはOpenDMARCmilterを使用します(デフォルトはfalse
):
RejectFailures true
Pypolicyd-spfまたは代替からの外部SPFチェックを信頼しないでください。独自のチェックを実行します。
SPFIgnoreResults true
SPFSelfValidate true
OpenDKIMヘッダーが既に存在する場合でも、ヘッダーを追加するように構成する必要があります。 /etc/opendkim.conf
:
AlwaysAddARHeader yes
すべてのMXで#1-#3が構成されると、プライマリMX上のOpenDMARCは他のMXサーバーによって行われたチェックを信頼できます。偽造されたメールは、セカンダリMXによってすでに拒否されているはずです。ヘッダーの偽造に対して脆弱であるため、TrustedAuthservIDs
にリストしないでください。これにより適した別のopendmarc.conf
オプションがあります:
IgnoreHosts
(string)SMTP接続がフィルターによって無視されるホストを識別するホスト名、IPアドレス、またはCIDR式のリストを含むファイルへのパスを指定します。指定しない場合、デフォルトは
127.0.0.1
のみです。
IgnoreHosts /etc/opendmarc-ignorehosts.conf
...そして、その新しい構成ファイルにセカンダリMXサーバーのIPアドレスをリストします。