ドメインのSPF(Sender Policy Framework)は、電子メールの送信元を検証するためのメール認証方法です。SPFは、ドメイン名に関連付けられた特定のIPアドレスからのみメールの送信を許可することで、スパムやフィッシング攻撃を防ぐ役割を果たします。

具体的には、ドメインの管理者がSPFレコードを設定し、そのレコードに登録されたIPアドレス以外からのメール送信を拒否する仕組みです。これにより、メールの送信元が合法的であることを確認することができます。

受信メールサーバーは、受け取ったメールがSPFレコードに準拠しているかどうかをチェックします。もしSPFレコードに登録されていないIPアドレスからのメールが送信された場合、受信メールサーバーはそのメールをスパムとして判定し、適切な処理を行います。SPFを使用することで、電子メールの信頼性とセキュリティを向上させることができます。

サイバーセキュリティ―cybersecurity
Pixabay画像:サイバーセキュリティ―cybersecurity

SPFレコードとは

SPFレコードとは、ドメイン名の所有者がメールを送信するために使用を許可したIPアドレスを指定しているDNSレコードのことです。このレコードは、メールサーバーがドメインからのメールを受け取る際に、そのメールが認証された送信元から送信されていることを確認できるようにする役割を果たします。

SPFレコードが正しく設定されていない場合、受け取り人のメールサーバーはそのメールをスパムとしてマークし、受信者の受信トレイに到達させない可能性があります。これは、不正な送信元からのメールを防ぐために重要な役割を果たしています。

SPFレコードを正しく設定することで、メールの信頼性と配信率を向上させることができます。ドメインの所有者は、自身のドメインからのメールを正当なものとして認識させるために、信頼できるIPアドレスのリストをSPFレコードに追加する必要があります。

SPFの認証プロセス

SPFレコードの設定を行うと、メール受信側のサーバーでメールを送信したメールサーバーのIPアドレスと、送信元ドメインに付随するSPFレコードの内容をチェックして、双方のIPアドレス一致により認証可否の判断をします。

  1. メールを送信
  2. 受信メールサーバーがDNSサーバーに問い合わせ
  3. DNSサーバーのSPFレコードを要求
  4. SPFレコードと受信メールの送信元ドメインIPアドレスを照合
  5. 一致すると認証成功

という流れです。ちなみにSPFレコードは、メールが送信される前の段階で問い合わせられます。

この認証により当該メールは「問題なし」とされ、送信元ドメインの信頼性を保証できるという仕組みになっています。SPFを機能させるために、事前にSPFレコードを送信ドメインのメールアドレスのDNSサーバーのtxtレコードへ登録しておく必要があります。

gmailへの新規メール送信は、2022年11月より必須となりました。
参照:Gmailヘルプページ https://support.google.com/mail/answer/81126?hl=ja

DKIMとは?設定方法と確認方法、SPFレコードとの違い

SPFレコードの設定方法

SPFレコードの設定方法は利用するメールサーバーによって異なるため、ドメイン管理者やサーバー担当者やレンタルサーバの管理画面から設定を行う必要があります。

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レコード設定

オンプレミス環境のメールサーバーや外部メール送信サービスなど、複数のメールサービスを使用する企業では、複数のSPFレコードを設定する必要があります。

ですが厳密には、1つのドメインに対して複数のSPFレコードを設定することは推奨されていません。複数のSPFレコードが設定されていると、メールの受信側で認証エラーが発生し正常に送受信できない可能性があります。

そのため、複数のメールサービスを使用する場合は、1つのSPFレコードにまとめて設定することが望ましいです。例えば、以下のように複数のメールサービスの情報を含む1つのSPFレコードを設定します。

spfのincludeとは

SPFレコードのincludeインクルードとは、含めるという意味の英単語で、ITの分野では、コンピュータプログラムなどが外部から別のプログラムやデータなどを取り込んで一つにまとめることです。
他のドメインのSPFレコードを現在のレコードに含むために使用されます。これは、特定のドメインが他のドメインを信頼してメールを送信することを許可するためのものです。

複数spfの例

“v=spf1 include:_spf.1.com include:_spf.2.com include:_spf.3.com include:_spf.4.com~all”

faxdmya.comのspfレコード

v=spf1 a:www133b.sakura.ne.jp mx include:_spf.google.com include:spf.am.arara.com ~all

sakura.ne.jpとgoogle.comとarara.comの3つを設定しています。includeで、sakuraとgoogleとararaのメールサーバーを、1つの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レコードについての詳細なレポートが提供されます。不適切な設定がある場合は修正案も示されるため、非常に便利です。

メール到達率に影響するIPレピュテーションの評価指標とリスク対策

SPFの結論

SPFレコードは、電子メールのセキュリティと信頼性を確保するために不可欠な要素です。これは、ドメイン所有者が制御するIPアドレスからのメール送信のみを許可し、不正な送信元からのメールを効果的にブロックします。

また、SPFレコードは複数の送信元を必要とする場合でも対応できます。1つのSPFレコードに複数のIPアドレスを含めることができます。さらに、`include`メカニズムを使用して他のドメインのSPFレコードを含めることも可能です。この機能は、サードパーティのベンダーを利用してメールを送信する場合などに特に有用です。

しかし、SPFレコードを正しく設定し、定期的に確認することが重要です。これにより、あなたのドメインからのメールが常に認証され、受信者に確実に届くようにすることができます。注意深く管理されたSPFレコードは、メール送信のセキュリティと信頼性を向上させ、不正な送信元からのメールを防ぐ効果的な手段となります。

(この記事は2022年に掲載した記事を2023年に加筆修正更新したものです)