DMARCの仕組みと設定方法
DMARC(Domain-based Message Authentication, Reporting, and Conformance)は、なりすましメールを対策するため、メールの送信ドメイン認証技術の一つです。
「SPF や DKIM にて、なりすましメールと判定された際にどうするか」のポリシーを定義するもので、none(何もしない) / quarantine(隔離する) / reject(拒否する)の3種類から指定します 。
例えば、DMARCポリシーに「拒否する」と指定されていた場合、受信メールを棄却します。「隔離する」の場合は隔離(迷惑メールフォルダに送信される、など)し、「何もしない」の場合はそのまま受信して受信者側で判断する動きになります。こうすることで SPF や DKIM の認証結果だけでは判断できなかった、なりすましメールを排除することができます。
送信者のメールアドレスを詐称して送られたメールのことです。
送信元メールアドレスには、封筒に記載するメールアドレス(エンベロープFrom)と、便箋に記載するメールアドレス(ヘッダーFrom)の二つがあり、それぞれ別のアドレスを設定することができるため、送信者のメールアドレスを詐称することができてしまいます。
DMARCの設定をする前に・・・
DMARCを設定する前に、あらかじめ、SPF と DKIM の設定が必要です。その後、DMARC 用の TXTレコード(DMARCレコード)を追加し、ポリシーの設定を行います。
認証技術 | 対応に必要な実施項目 |
SPF | 差出人メールアドレスのDNSに、Synergy!LEADから提供する TXTレコード(SPFレコード)を登録 |
DKIM | Synergy!LEADにて DKIM作成者署名の契約を行い、DNS の電子署名に用いる公開鍵情報を登録(DKIMレコード) |
DMARC | SPF、DKIM を設定したあと、DNS に TXTレコード(DMARCレコード)を登録し、なりすましメールに対する対応判定を行う仕組みを導入 |
DMARC の設定が、他のメール配信システムに影響しないかをご確認ください。Synergy!LEADと同様に SPF と DKIM の設定がない場合、「なりすましメール」と判定され、DMARCの設定により受信拒否されるなどの恐れがあります。
※ 運用開始時は後述する p(ポリシー)は none(緩和モード)に設定し、様子を見てください。
DMARCの設定までの流れ
- SPFの設定
- DKIM作成者署名のご契約(ご契約内容の追加・変更フォーム からお申し込みください)
→ お申し込みフォーム > その他オプション1 > DKIM作成者署名 にチェック - DKIM作成者署名の設定
→ DKIM作成者署名の設定内容については、ご契約後にご案内いたします。 - DMARC設定
DMARCの設定
DNS に対して以下のように TXTレコード(DMARCレコード)を追加します。
運用の開始時については、以下の設定で開始することをお勧めいたします。
_dmarc.お客様の差出人メールアドレスのドメイン
v=DMARC1; p=none
DMARCレコードには、p(ポリシー)のほかに、fo(レポートの条件)、rua(レポート先メールアドレス)などのオプションを指定することもできます。これらの設定についてはお客様のご判断でご指定ください。
p(ポリシー) | SPF と DKIM の認証失敗時の動作 |
none | 特に何もしない(緩和モード) |
quarantine | 認証に失敗した場合、不審なメールとして扱う(迷惑メールフォルダに隔離されるなど) |
reject | 認証に失敗した場合、メールサーバ(SMTP)上でメールを拒否する |
DMARCレポートについて
受信サーバから受け取れる情報のことで、DMARCレコード(ruf または ruaオプション)にメールアドレスを記載しておくことで受信できるレポートです。
レポートには失敗レポート(ruf)と集約レポート(rua)の2種類があります。
配信されているメールで、意図せずに SPF や DKIM に失敗しているものがないかなどを知ることができるため、DMARCポリシーを変更する際の参考にできます。実際のレポートは XML ファイルで送られます。そのままでは見づらいため、可視化をして解析する必要があります。
失敗レポート(rufオプション)
個々のメールがSPF・DKIMの認証に失敗した際に都度送信されるものです。DMARCレコードのオプション「ruf」にメールアドレスを記載しておくことで受信できます。状況に合わせて、レポート生成の条件のオプション「fo」を指定してください。
fo(レポートの条件) | レポートの条件のオプション内容 |
0 | 全ての認証が pass で無かった場合に失敗レポートを生成する(デフォルト) |
1 | いずれかの認証が pass で無かった場合に失敗レポートを生成する |
d | DKIM の署名検証が失敗した場合に失敗レポートを生成する |
s | SPF の検証が失敗した場合に失敗レポートを生成する |
v=DMARC1; p=none; fo=0; ruf=mailto:レポート送信先メールアドレス
集約レポート(ruaオプション)
DMARCを含むSPF・DKIMの認証結果を統計したものです。
集約レポートで受け取れる情報には以下のようなものがあります。
- SPF や DKIM の認証結果
- 送信元IPアドレスとそこから送られた件数
- 受信サーバがそのメールに対して行った処理結果
ruaオプションも、レポート送信先メールアドレスを指定します。集約レポートの送信間隔を指定したい場合は「ri」オプションを秒数で指定します。指定しない場合デフォルトでは 86,400秒(24時間)となります。
v=DMARC1; p=none; rua=mailto:レポート送信先メールアドレス
DMARCの設定確認方法
確認方法はツールを利用して確認する方法と、メールヘッダから確認する2パターンあります。
外部ツールを利用する
dmarcian:DMARC Inspector というツールを利用して、DMARCレコードが設定されているかをご確認いただくことができます。
「Enter Domain」に、差出人メールアドレスのドメインを入力し [ INSPECT THE DOMAIN ] をクリックすると、設定情報を確認できます。
「Hooray! Your DMARC record is valid.」と表示されれば設定が完了しています。
メールヘッダから確認する
テストアドレス宛にメールを送信していただき、受信したメールのソースを確認して「Authentication-Results」ヘッダの値を調べます。
以下のような表示となっていれば設定ができていると判断できます。
Authentication-Results: mx.google.com; dkim=pass ・・・ spf=pass ・・・ dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=メール送信元ドメイン
DMARC設定時の注意点
設定後に「dmarc=fail」と受信メールのヘッダに付与されてしまう場合は、親ドメインにも DMARC の設定がされていないかを確認してください。
(例)差出人のドメインが「mail.example.com」の場合
「_dmarc.mail.example.com」にDMARCの設定が無くても、親ドメイン「example.com」のDMARC設定ドメイン「_dmarc.example.com」に設定されている場合があります。
この場合、チェック結果は以下のようになっています。
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=example.com
対応としては以下が考えられます。
- 「_dmarc.mail.example.com」にも適切なDMARCを設定する
- 「_dmarc.example.com」DMARC設定を修正してサブドメインには適用しないようにする
(sp オプション「サブドメインに対するポリシー」を「none」に設定)
v=DMARC1; p=none; sp=none