DMARCとは何か?ということについては、以下の記事をご確認ください。今回のブログでは実際にDMARCに対応し、レポートメールを受信することにフォーカスします。
- 『なりすまし』を防ぐDMARCとは? | SendGridブログ
- DMARCがもっとよくわかる!概要とレコードの読み方 | SendGridブログ
- DMARC関連技術の紹介 | SendGridブログ
- 送信ドメイン認証技術「DMARC」によるなりすましメール対策とDMARCレポートの活用 |
- DMARC とその有効性 | なりすまし対策ポータル ナリタイ
DMARCのTXTレコードを設定する
私が個人で所有している「kikutaro.tech」ドメインを使います。DMARCの設定方法は上記の記事でも触れられていますが、個人的には次のGmailのページでまとめられている例がわかりやすかったです。
このうち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さんのものが詳しいです。
ちなみにDMARCのTXTレコードチェックに使ったMXToolboxには、このXMLを整形して表示してくれる機能があります。
「Upload XML Report」を押して、ファイル選択ダイアログでXMLを指定します。
すると、こんな感じで一覧にしてくれます。