Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

DMARCのレポートメールを受信してみる

DMARCとは何か?ということについては、以下の記事をご確認ください。今回のブログでは実際にDMARCに対応し、レポートメールを受信することにフォーカスします。

DMARCのTXTレコードを設定する

私が個人で所有している「kikutaro.tech」ドメインを使います。DMARCの設定方法は上記の記事でも触れられていますが、個人的には次のGmailのページでまとめられている例がわかりやすかったです。

support.google.com

このうち3つ目の「DMARC 認証に失敗したメールの 100% を拒否する~」を設定しました。Gmailぺージの例だと日次レポートの送り先を2つ指定していますが、私の設定では1つにしました。TXTレコードの内容は次のとおりです。(my@example.comの部分は実際のTXTレコードでは私のメアドを指定しています。)

TXTレコードのホスト名:_dmarc.kikutaro.tech
TXTレコードの値   :v=DMARC1; p=reject; rua=my@example.com

f:id:kikutaro777:20190902232318p:plain

DMARCの設定に問題がないかチェックする

DMARCのTXTレコードが正しく設定できているかチェックするツールはたくさんあります。今回はMXToolboxを使いました。
mxtoolbox.com

ドメイン「kikutaro.tech」を入力後、設定に問題がなければ次のような結果が表示されます。設定できていない場合はエラーが表示されます。
f:id:kikutaro777:20190902235149p:plain

実際にレポートメールを受信する

DMARCのTXTレコードで日次レポートの送り先を指定したので、実際にレポートメールを受信してみます。

やり方は色々あると思いますが、最初SendGridを使って、Domain Authentication(SPFやDKIMを設定する機能)を設定していない状態でFromを「kikutaro@kikutaro.tech」にして送信したところ、うまくいきませんでした。よく考えたらSendGridの場合はDomain Authenticationを設定していない場合でも、sendgrid.netとしてSPFやDKIMはパスするので、DMARCに引っかからないのかなと。

Postfixなどを立てるのも面倒なので、適当なメールプロバイダを使ってFromを変えました。これも地味に面倒で、最近のメールプロバイダはFromを変えるとき、Verificationを通す必要があります。kikutaro.techはメール受信の設定をしていないので、SendGridのParse Webhookで受信して、Verificationを通しました。

メールプロバイダはどこでもいいと思いますが、今回はYahoo.comを使って次のように設定しました。
f:id:kikutaro777:20190903000906p:plain

あとはYahoo.comからFrom「kikutaro.tech」でメールを送信するだけです。

レポートメールの確認

今回はp=rejectで設定したので、宛先にはメールが届きません。そして、時間が経ってからレポートメールが来ました。

f:id:kikutaro777:20190903001149p:plain

レポートメールにはzipファイルが添付されていて、解凍するとXMLファイルが入っています。ファイルは次のような内容です。

<?xml version="1.0" encoding="UTF-8" ?>
<feedback>
  <report_metadata>
    <org_name>google.com</org_name>
    <email>noreply-dmarc-support@google.com</email>
    <extra_contact_info>https://support.google.com/a/answer/2466580</extra_contact_info>
    <report_id>**************************</report_id>
    <date_range>
      <begin>1567296000</begin>
      <end>1567382399</end>
    </date_range>
  </report_metadata>
  <policy_published>
    <domain>kikutaro.tech</domain>
    <adkim>r</adkim>
    <aspf>r</aspf>
    <p>reject</p>
    <sp>reject</sp>
    <pct>100</pct>
  </policy_published>
  <record>
    <row>
      <source_ip>xx.x.xxx.xx</source_ip>
      <count>1</count>
      <policy_evaluated>
        <disposition>reject</disposition>
        <dkim>fail</dkim>
        <spf>fail</spf>
      </policy_evaluated>
    </row>
    <identifiers>
      <header_from>dmarctest.kikutaro.tech</header_from>
    </identifiers>
    <auth_results>
      <dkim>
        <domain>yahoo.com</domain>
        <result>pass</result>
        <selector>s2048</selector>
      </dkim>
      <spf>
        <domain>dmarctest.kikutaro.tech</domain>
        <result>none</result>
      </spf>
    </auth_results>
  </record>
</feedback>

この中身の読み方はまだちゃんと理解できていないです(^^;また別途書きます。日本語の記事だとIIJさんのものが詳しいです。

eng-blog.iij.ad.jp

ちなみにDMARCのTXTレコードチェックに使ったMXToolboxには、このXMLを整形して表示してくれる機能があります。

mxtoolbox.com

「Upload XML Report」を押して、ファイル選択ダイアログでXMLを指定します。
f:id:kikutaro777:20190903002814p:plain

すると、こんな感じで一覧にしてくれます。
f:id:kikutaro777:20190903002929p:plain

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村