ステップごとに解説!SPF/DKIM/DMARC設定をチェックする方法
- 2024年7月18日
- by SendGrid
- Category: 技術ネタ
メールのセキュリティを強化する上で、SPF(Sender Policy Framework)、DKIM(DomainKeys Identified Mail)、DMARC(Domain-based Message Authentication, Reporting and Conformance)を適切に設定することは非常に重要です。しかし、これらを正しく設定し、確認するのは複雑な作業になりがちです。
DNSレコードの設定、レコードの正しさ、そしてメールに適切に反映されているかを確認するプロセスは、初めての方にとっては特に難しく感じるかもしれません。この記事では、具体的な手順とツールを紹介しながら、SPF/DKIM/DMARCの設定を確認する方法を詳しく解説します。
なお、この記事ではSPF/DKIM/DMARCのDNSレコードそのものの解説はしません。メール認証技術の仕組みや具体的なレコードの形式を知りたい場合は、過去のブログ記事をご覧ください。
また、DNSホスティングプロバイダ(お名前.com、さくらインターネット等)での具体的なレコード登録手順を知りたい場合は、利用しているサービスのドキュメントをご確認ください。この記事では、レコードを登録した後に、外部サービスを用いて設定をチェックする方法を紹介します。
1. ドメインのDNSレコードが設定できているか確かめる
まずは、意図した通りにDNSレコードが設定できているかどうかを確認しましょう。簡易的な確認ツールとして、「Google Admin Toolbox」のDigツールを紹介します。
このツールでは、MX、TXT、CNAME等のタイプごとに、ドメインの設定を確認できます。例えば「example.com」ドメインを持っていて、そのTXTレコードをDNSホスティングプロバイダで設定したとします。その場合は以下の図のように、①名前欄に「example.com」を入力し、②レコードタイプとして「TXT」を選択すると、③結果の「VALUE」に設定した値が表示されます。
もしDNSレコードが存在しないと、結果が表示される代わりに「Record not found!」の文字が表示されます。DNSホスティングプロバイダでレコードを編集した直後に調べると、プロバイダ側の設定が完了していなかったり、キャッシュが残っていたりして正しく表示されないこともあります。その場合は少し時間を空けて試し、それでも結果が変わらなければプロバイダ側の設定内容を見直しましょう。
2. SPF/DKIM/DMARCレコードの文法が正しいかどうかを確かめる
DNSレコードが存在することを確認したら、そのレコードが文法に則って正しく設定されているかを確認しましょう。今回はDMARCレポート解析サービスを提供するdmarcianの無料オンラインツールを紹介します。
SPF/DKIM/DMARCの設定状況の概要を一度に表示するツールもあるのですが、正確な状況把握のためには3つそれぞれの検査ツールを利用することをお勧めします。
SPF
「SPF Surveyor」にドメインを入力すると、そのドメインに設定されているSPFレコードを検査して結果を表示してくれます。下の図は「sendgrid.com」の結果です。
問題がない場合は結果が緑色で表示されます。また、DNSルックアップ回数や指定されているIPアドレスの数も表示されます。DNSルックアップ回数とは、SPFレコードの検証過程で必要となるDNSクエリの回数のことで、10回が上限と定められています。
もし赤色や黄色の表示が出たら、レコードが設定されていないか誤りがある可能性があるので、記載事項を確認しましょう。
注意すべき点として、SPFレコードが設定されているドメインと、受信者が通常受信トレイで送信元と判断するドメイン(ヘッダFrom)は必ずしも同じではありません。例えば、Twilio SendGridを使って送信している場合、実際にSPF認証の対象となるドメインはDomain Authenticationを設定したドメインであり、「em1234.example.com」のようにサブドメイン(em1234の部分)がつきます。SendGridを使っている場合は、ヘッダFromのドメインではなくDomain Authentication画面で設定されたドメインでチェックしましょう。
DKIM
「DKIM Inspector」では、入力されたドメインに設定されているDKIMレコードを検査し、結果を表示します。DKIMの仕様上、「セレクタ」と呼ばれる文字列を指定し、それをサブドメインに含めたドメインにレコードを設定します。そのため、ツールで確認する際もセレクタの文字列を指定する必要があります。SendGridのDomain Authenticationを設定する場合はデフォルトではs1とs2というセレクタが使用されます。以下はドメインに「sendgrid.com」、セレクタに「s1」を指定した結果です。問題がなければ緑色で表示されます。
DMARC
DMARCレコードも同様に調べることができます。「DMARC Inspector」は、ドメインを入力すると結果を表示するツールです。以下は「sendgrid.com」のDMARCレコードを検査した結果です。
3. 実際にメールを受け取って確かめる
最後に、実際にメールを送受信してSPF/DKIM/DMARCの認証が正しく機能しているかを確認します。認証の成功・失敗は受信環境によりケースバイケースですが、テスト用のアカウントで実際にメールをやり取りして確認するのは非常に有効な方法です。今回はGmailのアカウントに送信して確認してみましょう。
テストメールを受け取ったらメールを開き、送信元の名前や送信日時の記載の右側にある三点リーダーにカーソルを合わせ、表示されるメニューの「メッセージのソースを表示」を選択します。
上部に表示される表の中に、SPF/DKIM/DMARCの項目があります。これらが全て「PASS」になっていることを確認しましょう。「PASS」にならないケースでよくあるのが、メールを転送しているケースです。例えばメーリングリストは、メーリングリスト用に用意されたメールアドレスに一度送信された後、そのメールがリストに登録されている各個人に転送される仕組みなので、SPFやDKIMがPASSにならないことがあります。そのため、確認には個人のメールアドレスを使うと良いでしょう。
まとめ
SPF、DKIM、DMARCは、メールを届ける上で非常に重要な基本の設定です。しかし、正しく設定するためには、DNSの設定を正しく行い、レコードの内容にも間違いがなく、さらに実際にメールに正しく反映される必要があります。今回紹介したツールを使い、それらの要素を一つ一つ分解して確認することで、トラブルシューティングに役立ててください。