ひと目でわかる要点 レコード:_dmarc.yourdomain の TXT · 最初の設定:p=none と rua アドレス · 通過条件:SPF または DKIM がアライメントを保って通過 · 最終形:レポートに問題がなければ p=reject
要点
- ポリシーとは。 DMARC レコードは、ドメインの _dmarc に TXT レコードとして公開します。
- 3つのポリシー。 p=none では、受信側は DMARC を理由とする措置を取らず、レポートを送ってきます。
- アライメント:relaxed と strict。 DMARC は、SPF や DKIM が通過したかどうかだけを見るわけではありません。
- サブドメインポリシーと pct。 sp タグは、サブドメインに別のポリシーを設定します。
- レポート:rua と ruf。 rua タグは、集計レポートの送信先を指定します。
- 安全な導入手順。 実際に読むレポート用アドレスを指定して、p=none を公開します。
ポリシーとは
DMARC レコードは、ドメインの _dmarc に TXT レコードとして公開します。p タグがポリシーで、そのドメインからのメールを名乗りながら DMARC のチェックに失敗したメッセージを、受信側にどう扱ってほしいかを伝えます。
v=DMARC1; p=none; rua=mailto:dmarc@example.com
チェック自体はシンプルです。SPF または DKIM のどちらかが通過し、通過したドメインが From アドレスのドメインとアライメントしている必要があります。どちらも満たさなければ、そのメッセージは DMARC に失敗し、ポリシーが適用されます。
3つのポリシー
p=none では、受信側は DMARC を理由とする措置を取らず、レポートを送ってきます。p=quarantine では、認証に失敗したメールを疑わしいものとして扱うべきで、通常は迷惑メールフォルダーに振り分けられます。p=reject では、配信時にそのメッセージの受信を拒否すべきです。
最初は none にしてください。何もブロックしないので安全であり、生成されるレポートから、自社ドメインとして送信しているすべてのシステムがわかります。正規のメールが通過していることがレポートで確認できてから、段階を上げてください。
アライメント:relaxed と strict
DMARC は、SPF や DKIM が通過したかどうかだけを見るわけではありません。通過したドメインが、From ドメインと同じ組織のものかどうかを確認します。デフォルトの relaxed アライメントでは、mail.example.com のようなサブドメインは example.com とアライメントします。strict アライメントでは、ドメインが完全に一致している必要があります。
アライメントは、aspf タグと adkim タグで、方式ごとに個別に設定します。独自のドメインで署名するサードパーティのサービスは DKIM を通過しますが、アライメントは取れません。そのため、すべての送信サービスについて、自社のドメインを設定してください。
サブドメインポリシーと pct
sp タグは、サブドメインに別のポリシーを設定します。指定しない場合、サブドメインは p に従います。メインドメインは強制の準備ができているものの、一部のサブドメインがまだ準備できていない場合や、メールを送信しないサブドメインを保護したい場合に便利です。
pct タグは、認証に失敗したメールの一部にだけポリシーを適用します。p=quarantine で pct=10 の場合、失敗したメッセージの約10分の1が quarantine され、残りはポリシーが1段階低いものとして扱われます。レポートに問題がない間は、段階的に値を引き上げてください。
レポート:rua と ruf
rua タグは、集計レポートの送信先を指定します。受信側は、通常は毎日、圧縮された XML として送信し、そこには送信元 IP、メッセージ数、SPF と DKIM の結果が記載されています。ポリシーを厳格化する前に必要な根拠となるものです。ruf タグは失敗レポートを要求しますが、大手の受信側の多くは送信していません。
レポートの送信先アドレスが別のドメインにある場合、そのドメインが yourdomain._report._dmarc.otherdomain の DMARC レコードで承認する必要があります。通常は、レポートサービスが自動的に設定します。
安全な導入手順
実際に読むレポート用アドレスを指定して、p=none を公開します。その後の数週間で、レポートに現れるすべての送信元を一覧にし、正規のものについては SPF または DKIM を修正します。次に、小さな pct で p=quarantine に移行して徐々に引き上げ、最後に p=reject に進みます。
思わぬものが見つかることを想定してください。請求システム、忘れられたマーケティングツール、ニュースレターサービスなどです。none の段階で見つかったものは、reject の段階であれば失われていたメッセージです。DMARC ジェネレーターを使うと、導入の流れをコピーして使えるレコードのセットとして確認できます。
DMARC にできないこと
DMARC は、From アドレスに表示される正確なドメインが偽装されるのを防ぎます。類似ドメインによるなりすましや、送信者が実際に所有するドメインから送られるスパムは防げません。また、転送や一部のメーリングリストによってアライメントが崩れることもあるため、大手の受信側は DMARC を他のシグナルと併せて評価しています。
この標準は IETF でも改訂が進められているため、変更を計画する際は最新の仕様をお読みください。
参考資料と出典
MigoSMTP での設定方法:ヘルプセンターの記事
関連ガイドとツール
- DMARC レコードジェネレーター:レコードを作成し、導入の流れを確認します。
- SPF、DKIM、DMARC チェッカー:公開中のレコードを確認します。
- DMARC の設定方法:手順を追って設定します。
- SPF、DKIM、DMARC の失敗を修正する:エラーを読み取って修正します。
レコードが正しいか不安ですか。無料のチェッカーをお試しいただくか、ヘッダーをお送りいただければ読み解きをお手伝いします。
よくある質問
DMARC の3つのポリシーとは何ですか。
none は、DMARC に失敗したメールに対して受信側に何もしないよう求めます。quarantine は、通常は迷惑メールとして振り分けるなど、疑わしいものとして扱うよう求めます。reject は、配信時に受信を拒否するよう求めます。ポリシーは p タグで設定します。
DMARC のアライメントとは何ですか。
SPF または DKIM が通過し、かつ通過したドメインが表示される From アドレスのドメインと一致している場合に、メッセージは DMARC を通過します。relaxed(緩やかな)アライメントでは、サブドメインが親ドメインと一致するとみなされます。strict(厳格な)アライメントでは、完全な一致が必要です。
DMARC レコードの pct は何をするものですか。
ポリシーを適用する、認証に失敗したメールの割合を指定します。quarantine や reject を段階的に導入する際に使用し、たとえば10から始めて、レポートに問題がない間は値を引き上げていきます。
DMARC を設定すれば、なりすましメールは確実にブロックされますか。
いいえ。ポリシーは受信側が任意で従う要求であり、大手の受信側の多くは従っています。ただし、転送やメーリングリストによってアライメントが崩れることもあるため、強制に移る前にレポートを確認してください。