DMARC とは
DMARC は SPF や DKIM と組み合わせてメールを保護する仕組みです。
DMARCとは「Domain-based Message Authentication,Reporting and Conformance」の略で、SPF、DKIMといった既存の認証技術を利用して、詐称されたメールを受信側がどう扱うべきかの方針をドメインの管理者側が宣言するための仕組みです。
SPF は Office 365 に標準で設定されています。DKIM も標準ですが、カスタムドメインを使っている場合は、操作が必要なこともありました。
同じように DMARC も受信については特に設定する必要はありません。送信についても設定してなくても送信に困ることはないです。
ただ、Office 365 から Outlook.com に送信したメールを確認すると、Authentication-Results ヘッダには "dmarc=bestguesspass action=none" と記載されていました。
Authentication-Results: spf=pass (sender IP is 104.47.93.64) smtp.mailfrom=*****.***; live.jp; dkim=pass (signature was verified) header.d=*****.***;live.jp; dmarc=bestguesspass action=none header.from=*****.***;
ヘルプによると、bestguesspass は「メインの DMARC TXT レコードが存在しないことを示します。ただし、レコードが存在していた場合、メッセージの DMARC チェックはパスしていたことになります。」という意味だそうです。
DMARC の設定方法
DMARC の動作は DNS で "_dmarc.ドメイン名" に対する TXT レコードを登録することで設定できます。
最低限で登録するとしたら、こんな感じのようです。
v=DMARC1; p=none
"v=DMARC1" が決まり文句で、"p"(ポリシー) は「なし (none)」「検疫 (quarantine)」「拒否 (reject)」を選ぶのですが、最初は「なし」で様子を見るのがいいそうです。
パラメーターはこれ以外にもあります。例えば、マイクロソフトの DMARC の指定はこんな感じになっていました。
PS C:\> Resolve-DnsName -Type txt _dmarc.microsoft.com Name Type TTL Section Strings ---- ---- --- ------- ------- _dmarc.microsoft.com TXT 3599 Answer {v=DMARC1; p=reject; pct=100; rua=mailto: d@rua.agari.com; ruf=mailto:d@ruf.agari.c om; fo=1}
Outlook.com や gmail だとこんな感じ
PS C:\> Resolve-DnsName -Type txt _dmarc.outlook.com Name Type TTL Section Strings ---- ---- --- ------- ------- _dmarc.outlook.com TXT 3599 Answer {v=DMARC1; p=none; pct=100; rua=mailto:d@ rua.agari.com; ruf=mailto:d@ruf.agari.com ; fo=1} PS C:\> Resolve-DnsName -Type txt _dmarc.gmail.com Name Type TTL Section Strings ---- ---- --- ------- ------- _dmarc.gmail.com TXT 354 Answer {v=DMARC1; p=none; rua=mailto:mailauth-re ports@google.com}
個々のパラメーターについては以下のページがわかりやすかったです。
とりあえず、他のドメインを参考にして、ポリシー適用の割合 (pct)、集計レポートの送信先 (rua)、認証失敗レポートの送信先 (ruf) あたりを指定してみることにします。
テンプレートはこんな感じになるでしょうか。
v=DMARC1; p=none; pct=100; rua=mailto:集計レポート送信先; ruf=mailto:認証失敗レポート送信先
Office 365 で DMARC を設定する
レポート受け取りアドレスの作成
まずは、レポートを受け取るアドレスを作ります。今回はお手軽に自分のアカウントに dmarc@~ というエイリアスを追加しました。
DNS の登録
続いて、DNS の管理でカスタムレコードを追加します。
DNS の種類 | TXT (テキスト) |
---|---|
TXT 名 | _dmarc |
TXT 値 | v=DMARC1; p=none; pct=100; rua=dmarc@*****.***; ruf=dmarc@*****.*** |
動作テスト
カスタムレコードを追加してから、冒頭と同じように Outlook.com にメールを送って Authentication-Results ヘッダを確認してみます。
Authentication-Results: spf=pass (sender IP is 104.47.92.42) smtp.mailfrom=*****.***; live.jp; dkim=pass (signature was verified) header.d=*****.***;live.jp; dmarc=pass action=none header.from=*****.***;
無事に "dmarc=pass" と表示されるようになりましたね。
あとは集計レポートを確認しながら、ポリシーを調整していこうと思います。