web-dev-qa-db-ja.com

Office 365テナントでのDMARCポリシーの適用(拒否)

ドメインとテナントでSPFとDKIMが正しく設定されており、DMARCポリシーがp=rejectに設定されています。それでも、Fromヘッダーにドメインが偽装されたメールは拒否されませんが、Office 365のJunk Emailフォルダーに表示されます。人々は自分の迷惑メールをチェックしています誤検知の場合、およびすべてのCEOの詐欺、セクストーションの手紙などをまだ読んでいます。

これは、Microsoftの documentation で説明されているように、バグではなく機能のようです。

DMARCに失敗した受信メールをOffice 365がどのように処理するか

送信サーバーのDMARCポリシーがp=rejectの場合、EOPはメッセージを拒否するのではなく、スパムとしてマークします。つまり、受信メールの場合、Office 365はp=rejectp=quarantineを同じように扱います。

一部の正当な電子メールがDMARCに失敗する可能性があるため、Office 365はこのように構成されています。たとえば、メーリングリストに送信されたメッセージがすべてのリスト参加者に中継される場合、そのメッセージはDMARCに失敗する可能性があります。 Office 365がこれらのメッセージを拒否した場合、人々は正当な電子メールを失い、それを取得する方法がなくなる可能性があります。代わりに、これらのメッセージはDMARCに失敗しますが、スパムとしてマークされ、拒否されません。

ただし、この推論にはいくつかの欠点があります。

  • DKIMは正当なメールを保護します。 DKIMで署名されたメッセージは、メーリングリストで転送されたときにSPFと一致しない場合でも、DMARCポリシーで渡されます。 (とにかく、メーリングリストはenvelope senderを変更してSPFチェックに合格する必要があります。そのため、SPFチェックはおそらく合格しますが、調整されません。)

  • p=rejectではなくp=quarantineを実装することで、ドメインの所有者はメールを拒否する必要があると述べています。したがって、マイクロソフトの実装は RFC 7489、6. に違反しています。

    p: Requested Mail Receiver policy ...
    
       reject:  The Domain Owner wishes for Mail Receivers to reject
          email that fails the DMARC mechanism check.  Rejection SHOULD
          occur during the SMTP transaction.
    

Office 365でこの動作を変更してこれらのメッセージを拒否する設定はありますか?

5
Esa Jokinen

これは、Office 365テナントでトランスポートルールを追加することで実現できます。 p=rejectが含まれるドメインのDMARCテストに合格しないメールでは、 dmarc=fail action=orejectヘッダーcompauth=fail reason=000およびAuthentication-Resultsが含まれます。

dmarc=fail action=orejectをキャッチできます:

action DMARCチェックの結果に基づいてスパムフィルターが実行したアクションを示します。

  • orejectまたはo.reject:オーバーライド拒否を表します。この場合、Office 365は、DMARCチェックに失敗したメッセージを、DMARC TXTレコードにp = rejectというポリシーがあるドメインから受信したときに、このアクションを使用します。メッセージを削除または拒否する代わりに、 Office 365はメッセージをスパムとしてマークします。

残念ながら、 複合認証compauth=fail reason=000p=rejectp=quarantineの両方で同じです。単独で使用すると、検疫のみを行うより厳密でないポリシーのメールにも影響します。 RFC 7489、6. の後には、これは望ましくありません。

compauth=failメッセージは、明示的な認証(DNSでドメイン公開レコードを明示的に送信)または暗黙的な認証(DNSでレコードを公開しなかったため、Office 365がレコードを公開したかのように結果を補間しました)に失敗しました。

reason=0xxメッセージは複合認証に失敗しました。

  • 000は、メッセージが拒否または隔離のアクションでDMARCに失敗したことを意味します。

誤検知を回避するには、両方を要求するのが最善です。ただし、Office 365トランスポートルールには「and」条件のオプションがありません。適切なオプションは、「メッセージヘッダーに含まれる...」のみです。 「or」リストのみ、つまり「includesanyof these words」のみです。これらの理由により、私はdmarc=fail action=orejectを選び、以下の手順で使用しました。


トランスポートルールを追加する手順:

  1. Exchange管理センターにアクセスしますhttps://Outlook.office365.com/ecp/

  2. mail flow>rules+を押してルールを追加し、ルールに名前を付けます。 DMARCは拒否します。

  3. 必要な設定を表示するには、選択項目の下にある[その他のオプション...]リンクを押します。

  4. オン "このルールを適用する場合..."選択 "メッセージヘッダー..."および「そこにある単語のいずれかを含む」

  5. 詳細を追加します:'Authentication-Results'header include'dmarc=fail action=oreject'

    Apply this rule if... A message header includes...

  6. 「次を実行...」および「メッセージをブロック...」の設定で目的のアクションを選択します。

    RFC 7489、1.3メッセージの拒否 は、2つの可能性を示唆しています。

       o  A "silent discard", wherein the SMTP server returns a 2xy reply
          code implying to the client that delivery (or, at least, relay)
          was successfully completed, but then simply discarding the message
          with no further action.
    

    これに相当するものは、 "誰にも通知せずにメッセージを削除する"です

    Delete the message without notifying anyone.

       o  Full rejection, wherein the SMTP server issues a 5xy reply code as
          an indication to the SMTP client that the transaction failed; the
          SMTP client is then responsible for generating notification that
          delivery failed (see Section 4.2.5 of SMTP RFC 5321).
    

    "説明付きでメッセージを拒否...rejected by DMARC policy"

    Reject the message with the explanation... rejected by DMARC policy

ただし、Microsoft Office 365 connection-stage rejection はサポートされていないため、後者はSMTPで正確に応答しません5xy応答コード、ただし配信不能レポート(NDR)をエンベロープ送信者に送信し、定義されたカスタムメッセージ:

NDR: Your message to user@example.com couldn't be delivered.

NDRの技術的なエラーは550 5.7.1 TRANSPORT.RULES.RejectMessage; the message was rejected by organization policyで、元のメッセージヘッダーが添付されています。

5
Esa Jokinen