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
DMARCの設定に問題がないかチェックする
DMARCのTXTレコードが正しく設定できているかチェックするツールはたくさんあります。今回はMXToolboxを使いました。
mxtoolbox.com
ドメイン「kikutaro.tech」を入力後、設定に問題がなければ次のような結果が表示されます。設定できていない場合はエラーが表示されます。
実際にレポートメールを受信する
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を使って次のように設定しました。
あとはYahoo.comからFrom「kikutaro.tech」でメールを送信するだけです。
レポートメールの確認
今回はp=rejectで設定したので、宛先にはメールが届きません。そして、時間が経ってからレポートメールが来ました。
レポートメールには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を指定します。
すると、こんな感じで一覧にしてくれます。