診断 · 出典付きの回答
DMARCで「quarantineまたはrejectポリシーが有効になっていない」と表示される理由
DNSレコードにp=noneが含まれている場合、DMARCポリシーは有効になっていません。p=noneは、認証に失敗したメールに対して何も措置を取らないよう受信サーバーに伝えるものです。制限的なポリシーを有効にするには、TXTレコードのpタグをp=quarantineまたはp=rejectに変更する必要があります。これにより、ドメインは監視モードから、SPFとDKIMのアライメントを実際に適用する状態へ移行します。
p=noneポリシーについて
p=noneタグは監視のために使われます。正当なメールがブロックされるリスクを負わずに、RUAとRUFのレポートを収集して、誰が自分のドメインでメールを送信しているかを把握できます。監査のための最初のステップとして必要ですが、認証に失敗しても受信側のメールサーバーはメッセージを配信するよう指示されるため、なりすましに対するセキュリティ上の効果はありません。
quarantineポリシーとrejectポリシーの違い
p=quarantineポリシーは、認証されていないメールを疑わしいものとして扱うよう受信者に指示します。通常は迷惑メールフォルダに移されます。p=rejectポリシーは最も厳格な設定で、メールを完全にバウンスさせるよう受信者に指示します。どちらの設定も、失敗したメッセージに対してペナルティを適用することでドメインのなりすましのリスクを積極的に軽減するため、有効なポリシーとみなされます。
ポリシーを更新する方法
ポリシーを適用するには、DNSプロバイダーにアクセスし、_dmarc.yourdomain.comのTXTレコードを探します。値をv=DMARC1; p=none;からv=DMARC1; p=quarantine;またはv=DMARC1; p=reject;に変更します。自分の正当なトラフィックをブロックしてしまわないよう、この変更を行う前にSPFとDKIMのレコードが正しく設定されていることを確認してください。SendHQの無料ツール(https://sendhq.cc/tools)を使って、反映前に構文を確認できます。
アライメントの役割
DMARCの適用はアライメントに依存します。メッセージがDMARCに合格するには、SPFまたはDKIMに合格し、かつFromヘッダーのドメインがSPFまたはDKIMのチェックで使われたドメインと一致している必要があります。適切なアライメントがないままp=rejectを有効にすると、自分のドメインでメールを送信している外部のサービスは、SPFレコードで許可されていて有効なDKIMキーで署名していない限り、すべてブロックされます。
よく寄せられる質問
p=noneは有効なDMARCレコードですか?
はい、構文上は有効で監視に使われますが、なりすましに対する能動的な保護にはなりません。
p=rejectにするとメールが配信されなくなりますか?
メールがSPFまたはDKIMのアライメントに失敗した場合に限ります。認証が正しく設定されていれば、p=rejectが正当なメールに影響することはありません。
p=quarantineとp=rejectを併用できますか?
いいえ、pタグに指定できる値は1つだけです。ただし、sp=を使えばサブドメインに別のポリシーを設定できます。
一次情報源
- RFC 7489:ドメインベースのメッセージ認証・レポート・適合(DMARC) — RFC Editor
- RFC 7208:送信者ポリシーフレームワーク(SPF) — RFC Editor
- RFC 6376:DomainKeys Identified Mail(DKIM)の仕様 — RFC Editor