SESで送信したメールのDMARCレポートをCloudflare DMARC Management で確認してみた

Cloudflare DMARC Management を利用して、Amazon SESから送信したメールのDMARCレポートの可視化を試みました。
2024.02.28

メール送信にAmazon SES、 DNSはCloudflareを利用しているワークロードで、 Google、Yahooがメール送信者に求めるガイドラインに準拠したAmazon SES設定を実施。 Cloudflareが提供するDMARCレポートの可視化を確認する機会がありましたので、紹介させて頂きます。

Amazon SES設定

カスタム MAIL FROMドメインを設定、SPFのアライメントを揃えたSESを用意しました。

SES設定

Cloudflare

DMARC Management 設定

Cloudflare管理画面で、設定対象のドメインの選択。

「Email」 以下の 「DMARC Management」 で設定を行いました。

有効化

DMARC Managementを有効化しました。

DMARC_Management_enable

DMARCレコード設定

DMARCレコードの構成を更新しました。

DMARCレコード作成

DMARCレコード(_dmarc)、レポートの送付先(RUA)として、Cloudflareが提供するメールアドレスを追加しました。「rua=mailto:xxxx@dmarc-reports.cloudflare.net」

作成されたDMARCレコードは、Cloudflareの「DNS」→「Records」より、確認、修正が可能です。

DMARC_DNSレコード設定

DMARCレポート確認

設定後、24時間程度経過すると、Cloudflareに到着したDMARCレポートの確認が可能になります。

今回は設定1週間後に確認を試みました。

Email volume

  • DMARCのPass、Failの件数が把握できます。(最大30日)

Dmarc_EmailVolumeグラフ

日時レポート

  • 日単位でDMARCレポートが確認可能です。

Dmarc_EmailVolume日時レポート

今回の環境では、DMARCは全て合格(100% Pass)。 DMARC違反(Fail)は存在しない事を確認できました。

ソース別レポート

  • メール送信元(From: Domain)毎のレポートが確認可能です。

Dmarc_EmailVolume_Top10

amazon.com

  • ソースIP、エンベローブFROMアドレス、レポート元で集計された日時情報が確認出来ます。

Dmarc_EmailVolume_amazon

  • DMARC、SPF、DKIMは全てPass

  • IPアドレスは、全てAmazon SESのIPアドレスでした。

$ dig -x 23.251.234.12 +short
e234-12.smtp-out.ap-northeast-1.amazonses.com.

Google,Sakura

DKIM認証でDMARCはパスしているものの、SPF検証に失敗している記録が確認できました。

Dmarc_EmailVolume_Google

Dmarc_EmailVolume_sakura

メールの自動転送設定により、Gmail、さくらのレンタルサーバに届いたメール転送により記録されたものでした。

最終転送先(Gmail)のメールに記録されていたAuthentication-Resultsヘッダー

Authentication-Results: mx.google.com;
       dkim=pass header.i=@developers.io header.s=trmtn3icxbpps2r2xp6hwo45gjr37yh4 header.b=WxuB8Zl3;
       dkim=pass header.i=@amazonses.com header.s=zh4gjftm6etwoq6afzugpky45synznly header.b=ZYcEhJXa;
       spf=softfail (google.com: domain of transitioning <略>-000000@<略>.developers.io does not designate 59.106.xx.xx as permitted sender) smtp.mailfrom=<略>-000000@<略>.developers.io;
       dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=developers.io

DMARCエラー例

別ドメインで、DMARC認証の失敗が記録されている環境の確認を試みました。

DMARC_Management_失敗サンプル1

  • 過去30日で14回、DMARC認証に失敗が記録されていました。

ソース情報を確認、

DMARC_Management_失敗サンプル2

なりすましの可能性が高いメールがGmail宛に送信されていた事が分かりました。

  • IP逆引き
$ dig -x 5.55.xx.xx +short
ppp0050550xxxx.access.hol.gr.

まとめ

メールの発送規模が大きな環境でDMARCを設定すると、XMLファイルが添付されたDMARCレポートを大量に受け取る可能性があります。

DNSとして Cloudflare を利用しているドメインであれば、今回紹介した DMARC Managementはオープンベータ版を無料利用可能です。(2024年2月現在)

今回のドメインでは、メール送信は Amazon SESのみ利用する環境であったため、 DMARC Managementの「Amazon.com」レポートだけで、送信者ドメイン認証設定(DMARC、SPF、DKIM)に不備がない事が確認できました。

DMARCレポートを簡易に解析出来る手段としてご活用ください。

尚、DMARCのレポート、複数のメールアドレスを指定する事が可能です。ドメイン認証設定が不完全な正規ワークロードの調査などが必要な場合には、より多機能なSaaSや、OSS、Athenaを併用頂くことをお勧めします。

dmarcレコード例

$ dig txt _dmarc.developers.io +short
"v=DMARC1; p=quarantine; rua=mailto:0dd123fcf71b43c0999139ef85530b63@dmarc-reports.cloudflare.net,mailto:dmarc_agg@vali.email;"