メールのドメイン認証SPFレコードの書き方と確認方法とinclude
SPF(Sender Policy Framework)は、迷惑メールやなりすましを防止するためのメール送信元のドメイン認証技術の一つです。SPFはメールアドレスのドメイン名から送信されるメールが、実際にそのドメインの所有者によって許可されたサーバーから送信されていることを確認することで動作します。
具体的には、ドメイン所有者はDNS(Domain Name System)にSPFレコードを追加します。このレコードには、許可されたメールサーバーのリストが含まれており、メール受信側メールサーバーはこのDNSを参照して送信元の正当性を検証します。SPFにより、送信ドメインのなりすましを防ぎ、メールの送信元が合法的であることを確認することができます。
SPFレコード
SPFレコードとは、ドメイン名の所有者がDNS(Domain Name System)に設定するテキストレコードで、特定のドメインから送信されるメールを許可されている送信元IPアドレスやドメインメールサーバーのリストを記述したものです。
このレコードは、メールサーバーがドメインからのメールを受け取る際に、そのメールが認証された送信元から送信されていることを確認できるようにする役割を果たします。SPFレコードが正しく設定されていない場合、受け取り人のメールサーバーはそのメールをスパムとしてマークし、受信者の受信トレイに到達させない可能性があります。これは、不正な送信元からのメールを防ぐために重要な役割を果たしています。
spfレコードを認証
メールサーバーがSPFレコードを認証するまでの流れは次の通りです。
メールを受信
メールサーバーは受信したメールのヘッダー情報を解析します。「To」(宛先)、「From」(送信元)、「Subject」(表題)、特に送信元のIPアドレスを注目ポイントとします。
送信ドメインの抽出
メールのヘッダーの「From」フィールドに記載されたドメインを抽出し、そのドメインのDNS情報を取得します。ヘッダー情報はgmailでしたら返信アイコンの横にある縦三点リーダーをクリック「メッセージのソースを表示」で確認できます。
SPFレコードの取得
DNSをクエリして、送信ドメインに関連するSPFレコードを探します。SPFレコードは送信ドメインのDNSへTXTレコードとして保存されている場合が多いです。
送信元IPアドレスの検証
抽出されたSPFレコードの情報に基づいて、送信元のIPアドレスが許可されたものかどうかを確認します。具体的には、SPFレコード内にリストアップされたIPアドレスやサーバーと比較されます。
SPFポリシーの適用
送信元のIPアドレスがSPFレコードに一致する場合、メールは「SPF認証に成功」と見なされます。一致しない場合は、「SPF認証に失敗」と見なされ、メールは拒否されるか、スパムとしてマークされます。
という流れです。ちなみにSPFレコードは、メールが送信される前の段階で問い合わせられます。
gmail参考記事ページ
https://support.google.com/a/answer/10684623?hl=ja&sjid=3223902384434412117-AP
SPFレコードの書き方
SPFレコードの設定方法は、ドメインの管理者、サーバーの担当者、レンタルサーバの管理画面から設定を行う必要があります。
SPFレコードは`v=spf1`で始まり、続いて許可されたIPアドレスやサーバーの指定方法が記載されます。例えば、`v=spf1 ip4:192.0.2.0/24 -all`という形式です。
SPFレコードはメールアドレスのドメインの、DNSの設定画面にアクセスしTXTレコードに記述します。書式は v=spf1 [許可するIPアドレスやドメイン名] -all です。
v=spf1`はSPFのバージョンを表し、`-all`は許可されていない送信元からのメールを拒否することを意味します。
例えば、IPアドレスが `192.168.0.1` で、ドメイン名が `example.com` である場合は
v=spf1 ip4:192.168.0.1 include:example.com -all となります。
spfのinclude設定
オンプレミス環境のメールサーバーや外部メール送信サービスなど、複数のメールサービスを使用する企業では、複数のSPFレコードを設定する必要があります。
ですが厳密には、1つのドメインに対して複数のSPFレコードを設定することは推奨されていません。複数のSPFレコードが設定されていると、メールの受信側で認証エラーが発生し正常に送受信できない可能性があります。
そのため、複数のメールサービスを使用する場合は、1つのSPFレコードにまとめて設定することが望ましいです。例えば、以下のように複数のメールサービスの情報を含む1つのSPFレコードを設定します。
“v=spf1 include:_spf.1.com include:_spf.2.com include:_spf.3.com include:_spf.4.com~all”
参考までに、faxdmya.comのspfレコードです。sakuraとgoogleとararaを設定しています。
v=spf1 a:www133b.sakura.ne.jp mx include:_spf.google.com include:spf.am.arara.com ~all
includeの利点
- 簡易化: 他の組織やサービスのSPFレコードを参照することで、自身のSPFレコードの管理が楽になります。
- 柔軟性: ホスティングプロバイダや複数のメールサービスを利用している場合、`include`メカニズムで柔軟に対応できます。
- 信頼性: 信頼できる第三者のSPFレコードを利用することで、不正なメール送信のリスクを大幅に軽減できます。
`include`メカニズムは強力で柔軟なツールですが、適切に使用しないと意図しない結果を招くこともあります。したがって、設定を行う前に十分な検証とテストを行い、SPFレコードが正しく機能していることを確認することが重要です。
SPF設定後の確認方法
SPFレコードが設定済みかを確認する方法はいくつかあります。
「SPFレコードの設定確認方法」といったワードでネット検索すれば、ブラウザ上で確認できるWebサイトが複数上がってきますが、オフラインでも調べることができます。
パソコンで確認
windowsであればコマンドプロンプトを開き、「nslookup -type=txt 調べたいドメイン」を入力してエンターキーを押します。その入力に対しv=spf1~といった記述が返ってくれば、SPFレコードが設定されていることがわかります。
※「nslookupと-type」の間は半角スペースです。「txtとドメイン」の間は半角スペースです。
Macであれば、ターミナルを開き「dig txt 調べたいドメイン」と入力後、エンターキーを押下すれば同じようにチェックできますので、調べてみてください。
webサイトで確認
SPFレコードを正しく設定することは煩雑な作業であるため、専門のツールを使って確認とチェックを行うことが推奨されます。SPFレコードの確認とチェックができるサイトをいくつか紹介します。
MX Toolbox(https://mxtoolbox.com/spf.aspx)
MX Toolboxは、SPFレコードを含むDNSレコードの確認ができるオンラインツールです。簡単にドメインを入力するだけで、結果がすぐに表示されます。また、SPFに関する詳細な解説も提供されており、問題がある場合の対処法もわかりやすく説明されています。
Kitterman(http://www.kitterman.com/spf/validate.html)
Kittermanは、SPFレコードの正確な設定をチェックすることができるサイトです。ドメインを入力するだけで、SPFレコードについての詳細なレポートが提供されます。不適切な設定がある場合は修正案も示されるため、非常に便利です。
最後に
SPFレコードは、電子メールのセキュリティと信頼性を確保するために不可欠な要素です。これは、ドメイン所有者が制御するIPアドレスからのメール送信のみを許可し、不正な送信元からのメールを効果的にブロックします。
また、SPFレコードは複数の送信元を必要とする場合でも対応できます。1つのSPFレコードに複数のIPアドレスを含めることができます。さらに、`include`メカニズムを使用して他のドメインのSPFレコードを含めることも可能です。この機能は、サードパーティのベンダーを利用してメールを送信する場合などに特に有用です。
しかし、SPFレコードを正しく設定し、定期的に確認することが重要です。これにより、あなたのドメインからのメールが常に認証され、受信者に確実に届くようにすることができます。注意深く管理されたSPFレコードは、メール送信のセキュリティと信頼性を向上させ、不正な送信元からのメールを防ぐ効果的な手段となります。
(この記事は2022年に掲載した記事を2024年に加筆修正更新したものです)
Comment