DMARCとは
DMARC(Domain-based Message Authentication, Reporting and Conformance)とは、SPFとDKIMの認証結果をもとに、認証に失敗したメールをどう扱うかをドメイン所有者が指定できる仕組みです。
SPFやDKIMだけでは、認証に失敗したメールの扱いは受信側サーバーの判断に委ねられます。DMARCを設定すると、「認証に失敗したメールは迷惑メールに入れて」「受信を拒否して」といった指示をドメイン所有者が出せるようになります。
さらに、認証結果のレポートを受け取ることができ、自分のドメインが不正利用されていないかを監視できます。
SPF・DKIMとの関係
メール認証には3つの仕組みが連携して機能します:
- SPF:送信元のIPアドレスが正規のものかチェック(「どのサーバーから送っていいか」)
- DKIM:メールに電子署名を付け、内容が改ざんされていないかチェック(「メールの中身が途中で変えられていないか」)
- DMARC:SPFとDKIMの結果を受けて、失敗時のポリシーを決定し、レポートを受け取る(「失敗したらどうするか」)
DMARCは「アライメント」という概念を使い、メールのFrom:ヘッダーに表示されるドメインと、SPF/DKIMで認証されたドメインが一致するかも確認します。これにより、より厳密な認証が可能になります。
DMARCポリシーの種類
DMARCのポリシーは3段階あります:
p=none:認証に失敗してもメールの扱いを変えない。まずはレポートを収集する段階で使用p=quarantine:認証に失敗したメールを迷惑メールフォルダに隔離するp=reject:認証に失敗したメールの受信を拒否する。最も厳格なポリシー
いきなりrejectにすると、正規のメールが届かなくなるリスクがあります。none → quarantine → rejectと段階的に移行するのがベストプラクティスです。
DMARCレコードの設定手順
DMARCレコードはDNSのTXTレコードとして_dmarc.example.comに設定します:
v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com; ruf=mailto:dmarc-forensic@example.com; pct=100
各部分の意味:
v=DMARC1:DMARCのバージョン宣言(必須)p=none:ポリシー(none / quarantine / reject)rua=:集約レポートの送信先メールアドレスruf=:フォレンジックレポート(詳細レポート)の送信先pct=100:ポリシーを適用するメールの割合(%)
推奨される導入ステップ
- ステップ1:SPFとDKIMを正しく設定する
- ステップ2:
p=noneでDMARCを設定し、レポートを受け取る - ステップ3:レポートを分析し、正規のメール送信元がすべてSPF/DKIMに対応しているか確認
- ステップ4:
p=quarantineに移行し、pct=10から段階的に割合を上げる - ステップ5:問題がなければ
p=rejectに移行する
DMARCレポートの読み方
DMARCの集約レポートはXML形式で定期的にメールで届きます。主に確認するポイント:
- 送信元IPアドレス:どのサーバーからメールが送られているか
- 認証結果:SPFとDKIMがそれぞれpass/failのどちらか
- 送信数:各送信元からのメール数
- ポリシー適用結果:メールがどう処理されたか
XMLを直接読むのは大変なので、DMARC AnalyzerやPostmark DMARCなどの無料ツールを使うと、レポートをグラフィカルに表示してくれます。
定期的にレポートを確認することで、自分のドメインが不正に使われていないかを監視し、メール配信の問題を早期に発見できます。