✦【まとめ】DMARCレポートの結果:『SPFはfailだが、メール認証は全体として合格しています。』

 いざサーバーを借りて色々してるうちにスパムかなと思うものや、嫌がらせか弄りか、セキュリティ面に対しての試練なのか分かんない。と思うようなメッセージが来てちょっと気持ちが悪かったので、対策としてちょこちょこ設定触ってるうちに突如届いた『DMARCレポート』なのですが、色んなサイトさんの記事によるコードの見方、設定方法、体験記録など読んでるうちに、自分に届いたDMARCレポートもどう解釈して、どう設定すべきか。というところで悩んだ末、設定変更試みた後に届いたレポート内容のお話になります。

 設定迷われた方の参考になれば幸いです。

SPF が fail と出ていても、あなたのメール認証は全体として合格しており、問題なく機能しています。(byコパさん)

その理由は…

✦DMARC レポートの要点

レポートには以下の結果が記録されていました:

  • DKIM:pass(合格)
  • SPF:fail(不合格)
  • DMARC:none(rejectされず通過)
  • 送信元IP:XX.XXX.XXX.XXX(あなたのエックスサーバー)

一見すると SPF fail が気になりますが、実はこれは 設定ミスではありません。

・

・

・

✦SPF fail の理由は「alignment(整合性)」の問題

 レポートの詳細を見ると、SPF 自体は pass しているのに、 DMARC の評価では fail と扱われています。

これは SPF alignment(整合性)が一致していないためです。

・・・

alignment が一致しないとは?

  • SPF は「svXXXXX.xserver.jp(※X部分は自分のサーバーの数字)」で pass
  • でもメールの From は「maru-ism.com」
  • → ドメインが一致しない
  • → DMARC 的には SPF fail と扱われる

つまり、

SPF の仕組みは正常に動いているが、DMARC の判定基準では fail と記録される

・

・

・

✦あなたの SPF 設定は正しく、強化済み

 現在の SPF レコードは以下:

コード

v=spf1 +a +mx +ip4:XX.XXX.XXX.XXX(自分のサーバーのIPアドレス) include:spf.xserver.ne.jp ~all

これは Xserver の送信元をすべてカバーしており、非常に正しい・強い SPF 設定です。

  • Aレコード(あなたのサーバーIP)
  • MXレコード
  • 固定IP
  • Xserver公式の include

すべて含まれているため、SPF fail は設定ミスではありません。by AIさん

・

・

・

✦変更前と変更後の比較

変更前

v=spf1 +a +mx include:spf.sender.xserver.jp ~all
※サーバー側で自動設定だったか最早記憶が曖昧なのですが、とりあえずベーシックな設定です。

・・・

変更後

v=spf1 +a +mx +ip4:XX.XXX.XXX.XXX(自分のサーバーのIPアドレス) include:spf.xserver.ne.jp ~all
(SPF設定)
※自分で調べた結果、設定した強化版

v=DMARC1; p=reject; rua=mailto:自分が使用している独自ドメインのメールアドレス; adkim=s; aspf=s
(DMARC設定)
※自分で調べた結果、設定した強化版

+@の設定
エックスサーバー『サーバーパネル』→『メール』→『DMARC設定』→設定対象のドメインの『編集』リンクを押下→なりすましメールを『配送しない』に変更。

・・・

確認場所(変更前にきたレポートの内容)
  1. <feedback>:DMARCレポートを指す要素タグ。『これはDMARCの集計レポートです』という意味。
  2. <version>1.0</version>:DMARCレポートの仕様バージョンで、常に1.0
  3. <report_metadata>:レポート送ってきた側の情報
  4. <org_name>google.com</org_name>:レポートを送ってきた偽装メールの受信者で、この場合はGoogle
  5. <email>noreply-dmarc-support@google.com</email>:GoogleがDMARCレポートを送るための公式アドレス。
  6. <extra_contact_info>https://support.google.com/a/answer/2466580</extra_contact_info>:DMARCについてのGoogle公式ヘルプページで、問い合わせ先の変わり。
  7. <report_id>6642910303780598685</report_id>:Google側がつけたレポートの識別番号。
  8. <date_range>:このレポートが集計している期間。
  9. <begin>1789430400</begin>:メールが届いた期間の開始時間(今回は9/15 09:00)
  10. <end>1789516799</end>メールが届いた期間の終わり時間(今回は9/16 08:59)
  11. </date_range>:要素終了タグ
  12. </report_metadata>:要素終了タグ
  13. <policy_published>:自分のドメインのDMARC設定
  14. <domain>maru-ism.com</domain>
  15. <adkim>r</adkim>:DKIMの照合モード『r = relaxed(ゆるい)』『s = strict(厳しい)』※今は『r=ゆるい』
  16. <aspf>r</aspf>SPFの照合モード『r = relaxed(ゆるい)』『s = strict(厳しい)』※今は『r=ゆるい』
  17. <p>none</p>:DMARCポリシーの設定で『none = 偽装メールを許す』『quarantine = 隔離(迷惑メール扱い)』『reject = 完全拒否』※今は『none = 偽装メールを許す』
  18. <sp>none</sp>:サブドメインのポリシー。※今は『none=許す』
  19. <pct>100</pct>:DMARCポリシー適用の割合。※今は『100=100%』
  20. <np>none</np>:存在しないサブドメインのポリシー。※『none = 許す』
  21. </policy_published>:要素終了タグ
  22. <record>:実際に届いたメールの情報
  23. <row>
  24. <source_ip>85.1XX.XX1.1XX</source_ip>:このIPが本サイトのドメイン(maru-ism.com)を名乗ってGmailにメールを送った。(第三者のなりすましIP)
  25. <count>1</count>:上のIPから送られた偽装メールの数。※今回は1通。
  26. <policy_evaluated>:偽装メールの受取側がどうしたか。※今回の受取側はGoogle。
  27. <disposition>none</disposition>:DMARCが none なので、拒否できず「何もしない」
  28. <dkim>pass</dkim>:DKIMは合格。 これは あなたの正規メールが同じ期間に存在したため。
  29. <spf>fail</spf>:SPFは不合格。 → 偽装メール確定
  30. </policy_evaluated>:要素終了タグ
  31. </row>:要素終了タグ
  32. <identifiers>:送られたメールのヘッダー情報
  33. <header_from>maru-ism.com</header_from>:偽装メールが送信された際に使われたドメイン(今回は本サイトのドメイン『maru-ism.com』)
  34. </identifiers>:要素終了タグ
  35. <auth_results>:認証結果の詳細
  36. <dkim>:↓自分のドメインの正規メールのDKIM結果で、今回は正常。
  37. <domain>maru-ism.com</domain>:ドメイン
  38. <result>pass</result>:リザルト=結果
  39. <selector>default</selector>:デフォルト
  40. </dkim>:要素終了タグ
  41. <spf>:↓自分のドメインの正規メールのSPF結果で、今回は正常。
  42. <domain>svXXXXX.xserver.jp</domain>:自分が使ってるサーバー番号(当方はエックスサーバーのため、『xserver.jp』のドメインになってます。
  43. <result>pass</result>:リザルト=結果
  44. </spf>:要素終了タグ
  45. </auth_results>:要素終了タグ
  46. </record>:要素終了タグ
  47. </feedback>:要素終了タグ

・・・

確認場所(変更後にきたレポートの内容)
  1. <feedback>
  2. <version>1.0</version>
  3. <report_metadata>
  4. <org_name>google.com</org_name>:レポートを送ってきた偽装メールの受信者で、この場合はGoogle
  5. <email>noreply-dmarc-support@google.com</email>:GoogleがDMARCレポートを送るための公式アドレス。
  6. <extra_contact_info>https://support.google.com/a/answer/2466580</extra_contact_info>
  7. <report_id>9479795785856064412</report_id>
  8. <date_range>
  9. <begin>1790380800</begin>
  10. <end>1790467199</end>
  11. </date_range>
  12. </report_metadata>
  13. <policy_published>:自分のドメインのDMARC設定
  14. <domain>maru-ism.com</domain>
  15. <adkim>s</adkim>:DKIMの照合モード『r = relaxed(ゆるい)』『s = strict(厳しい)』※今は『s=厳しい』
  16. <aspf>s</aspf>:SPFの照合モード『r = relaxed(ゆるい)』『s = strict(厳しい)』※今は『s=厳しい』
  17. <p>reject</p>:DMARCポリシーの設定で『none = 偽装メールを許す』『quarantine = 隔離(迷惑メール扱い)』『reject = 完全拒否』※今は『reject = 完全拒否』
  18. <sp>reject</sp>:サブドメインのポリシー。※今は『reject = 完全拒否』
  19. <pct>100</pct>
  20. <np>reject</np>:存在しないサブドメインのポリシー。※今は『reject = 完全拒否』
  21. </policy_published>
  22. <record>
  23. <row>
  24. <source_ip>85.1XX.XX1.1XX</source_ip>:このIPが本サイトのドメイン(maru-ism.com)を名乗ってGmailにメールを送った。(第三者のなりすましIP)※今回は自分が借りてるサーバーのIP
  25. <count>1</count>:上のIPから送られた偽装メールの数。※今回は1通。
  26. <policy_evaluated>:偽装メールの受取側がどうしたか。※今回の受取側はGoogle。
  27. <disposition>none</disposition>:DMARCが none なので、拒否できず「何もしない」
  28. <dkim>pass</dkim>:PASSで合格。
  29. <spf>fail</spf>SPFは不合格。 ※SPF(DMARC評価)はalignmentの不一致によりfailと表示されています。ただし、このレポートではDKIMがpassしているため、DMARC認証全体としては通過しています。
  30. </policy_evaluated>
  31. </row>
  32. <identifiers>:送られたメールのヘッダー情報
  33. <header_from>maru-ism.com</header_from>:偽装メールが送信された際に使われたドメイン(今回は本サイトのドメイン『maru-ism.com』)
  34. </identifiers>
  35. <auth_results>:認証結果の詳細
  36. <dkim>:↓自分のドメインの正規メールのDKIM結果で、今回は正常。
  37. <domain>maru-ism.com</domain>
  38. <result>pass</result>:pass=合格。
  39. <selector>default</selector>
  40. </dkim>
  41. <spf>↓自分のドメインの正規メールのSPF結果で、今回は正常。
  42. <domain>svXXXXX.xserver.jp</domain>:自分が使ってるサーバー番号(当方はエックスサーバーのため、『xserver.jp』のドメインになってます。
  43. <result>pass</result>pass=合格。
  44. </spf>
  45. </auth_results>
  46. </record>
  47. </feedback>

・・・

レポートの中身見てると、あまり変わってない気もしますが…

 DMARCポリシーが none → reject に変わったことで、偽装メールが「正式に拒否対象」になった という点が最大の違い。

ただし、レポート上では disposition が none のままになっているため、「Google側が実際にどう扱ったか」はまだ反映されていない状態だそうです。

・・・

なぜ reject にしたのに none のまま?「Google側がこのメールをどう処理したか」の結果。

 理由はシンプルで、

DMARCの判定は「DKIM or SPF が fail」かつ「ポリシーが reject」のときに発動する。

今回の偽装メールは:

  • SPF → fail
  • DKIM → pass(あなたの正規メールが同期間に存在したため)

つまり DKIM が pass しているため DMARC の reject が発動しない。

偽装メールは SPF fail だが DKIM pass のため、DMARC的には「合格扱い」になる。

・・・

簡易チェックリスト

項目結果意味
DKIMpassあなたの署名で認証成功
SPF(auth_results)pass実際の SPF は成功
SPF(policy_evaluated)failalignment が strict なので fail
DMARCnoneDKIM pass(認証成功) のため reject されない
送信元IPXX.XXX.XXX.XXX偽装元IP

※仮に『送信元IPが自分のサーバーではない』場合、実害がなければ放置して良いかと思いますが、ご自身に実害出るようであれば、『DKIMとSPFの設定を、”S”にする』のをオススメします…。

自分の使用しているサーバーでもなく、アドレスや相手方の社名や名前にも全く身に覚えがなかったりする場合、多分本当になりすましの可能性があります。。。実害というのは、例えば、全く知らないところから、いきなり請求がきた。とかですね…。

・

・

・

✦DMARC は正しく機能している

 あなたの DMARC ポリシーは p=reject で強化されています。

今回のレポートは、

あなたのメール認証が正常に働いている証拠

であり、 設定を変更する必要はありません。

・

・

・

✦結論:安心してOK。SPF fail は「仕様上の表示」であり問題なし

  • SPF fail は「alignment のズレ」によるもの
  • SPF 自体は pass
  • DKIM は pass
  • DMARC は reject ポリシーで保護中
  • 設定はすべて正しく、変更不要

つまり、

あなたのメール認証はすべて合格しており、ドメインは安全に守られています。

 ということで認識して良いようです。

ちなみに試してみたのですが、自分のメール、本当に迷惑メールに入らなくなります。(迷惑で報告しても、通常の受信箱に戻ります。)

 他の企業さんのメールで迷惑メールに振り分けられているものとか見てたりすると、多分案外してないところ多いと思われるので元に戻すべきか迷ったのですが、それ以上にちょっと自分のドメイン使用しての架空アドレスがとてつもなく気持ち悪かったのと、これはこれで『Xserver の送信元をすべてカバーしており、非常に正しい・強い SPF 設定です。』とお墨付きを頂いたので、とりあえずこのままにしておきたいと思います。

・

・

・

タイトルとURLをコピーしました