web-dev-qa-db-ja.com

複数のMXを備えたOpenDMARC:サーバー間の信頼のための正しいセットアップ

Linuxのお気に入りのフレーバーでOpenDMARCをセットアップする方法については多くのチュートリアルがありますが、それらはすべて単一サーバー構成に焦点を合わせています。私の目標は、バックアップのセカンダリMXサーバーを維持することでしたが、RejectFailures trueDMARCの場合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の書き直しです。

1
Esa Jokinen

要するに:

  • OpenDMARCは、SPFを個別にチェックできます。
  • OpenDKIMは、署名がすでに「検証済み」であっても、署名を検証する必要があります。 (単一のMXでも!)
  • MXサーバー間の信頼は、ヘッダーではなくSMTP接続に依存する必要があります。

これを構成する方法は?

  1. (SPF、)OpenDKIMおよびOpenDMARCの初期構成のチュートリアルに従うことができます。

    (この後、PostfixはOpenDKIMとOpenDMARCをSMTPミルターとして構成します。)

  2. OpenDMARCすべてのMXサーバーの構成変更/etc/opendmarc.conf

    • 接続ステージの拒否にはOpenDMARCmilterを使用します(デフォルトはfalse):

      RejectFailures true
      
    • Pypolicyd-spfまたは代替からの外部SPFチェックを信頼しないでください。独自のチェックを実行します。

      SPFIgnoreResults true
      SPFSelfValidate true
      
  3. OpenDKIMヘッダーが既に存在する場合でも、ヘッダーを追加するように構成する必要があります。 /etc/opendkim.conf

    AlwaysAddARHeader yes
    
  4. すべての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アドレスをリストします。

1
Esa Jokinen