SPFレコードとは?正しい書き方を徹底解説

企業のドメインを偽装した「なりすましメール」による犯罪が、世界中で発生しています。たとえば取引先のドメインを装った偽の送金指示メールに従ってお金を振り込んでしまった例など、「ビジネスメール」詐欺の被害報告も少なくありません。

そんななか、なりすましメールを予防するために使われている代表的な技術の1つが、DNSを使ったSPFという技術です。昨今ではSPFレコードを登録していないことで、自社から送信したメールが迷惑メールと判定されてしまうこともあります。メールを安全に利用するためにも、SPFは覚えておきたい技術です。

この記事ではSPFやSPFレコードは何かといった基本から、SPFレコードの正しい書き方まで詳しく解説しています。

「なりすましメール」を防ぐSPFレコードとは?


SPF(= Sender Policy Framework)とは、メールの送信元(Sender)ドメインが詐称されていないことを証明するための技術です。SPFレコードを正しく記載することによって、自社から送信したメールが、ドメインを詐称した迷惑メールではないことを相手に分かってもらえます。さらにSPFレコードに記載された内容と、送信メールの情報に差異がある場合は、そのメールがなりすましメールの可能性があると判定することもできます。

そもそも、なぜメールのなりすましが発生するのか?

それでは、そもそもなぜ送信元のドメインをなりすました迷惑メールを送ることができてしまうのでしょうか。その理由は、メールに記載される送信元メールアドレスが1種類ではないことにあります。
まず、メールソフトのFrom欄に記載される送信元メールアドレスのことを「ヘッダFrom」と呼び、これは郵便にたとえると便せんに書かれた差出人名に該当します。たいして、もう1つの送信元メールアドレスが「エンベロープFrom」です。

SPFレコードによって「なりすましメール」を防げる理由

SPFレコードとは、そのドメインを送信元としたメールを配送する、正当なメールサーバーの情報(IPアドレス等)をまとめたDNSレコードのことです。

送信先のメールサーバーは、メールが配送されてきたときにSPFレコードを照合します。そうしてメールの送信元(通常、エンベロープFrom)に指定されたドメインとSPFレコードの情報と整合性がとれなければ、なりすましメールである(または、可能性がある)と判断するわけです。

SPFレコードがないと「なりすましメール」と判定されてしまう理由

メールサーバーによっては、SPFレコードが存在しないドメインのメールを「なりすましメールの可能性がある」と判断することがあります。そうして、そのメールが迷惑メールと判定されてしまうために相手に届かないことがあるわけです。

さらに同様の判定が続くと、その送信元のメールサーバーについても「迷惑メールを頻繁に送るメールサーバー」と登録されてしまうこともあります。結果、なりすましメールではないのに迷惑メールと判定されやすくなることもあるのです。

そうした誤解を防ぎ、なりすましメールと判定されないようにするためにも、SPFレコードを登録しておいた方が安心です。

SPFレコードの正しい書き方・設定方法

それではSPFレコードはどのように記述し、設定すればよいのでしょうか。ここではSPFレコードの正しい書き方と設定方法について、簡単に解説します。

▽SPFレコードはDNSサーバーに登録すると使えるようになる

まずSPFレコードについては、お使いのドメインを管理するDNSサーバーに登録することで利用できるようになります。DNSサーバーにおいて、DNS情報のうち「TXTレコード」にSPFレコードを登録することによって、SPFレコードが有効となります。

DNSサーバーの登録方法はサーバーによって異なりますが、ここでは参考までにカゴヤのDNSサーバーに登録する場合の例を紹介します。

【カゴヤのDNSサーバーによるSPFレコードの登録方法】

1) コントロールパネルにアクセスし、アカウント名とパスワードを入力後、「ログイン」をクリックします。

SPFレコードの登録方法

2) コントロールパネルが表示されます。「ドメイン」→「DNSレコード設定」をクリックします。

コントロールパネルが表示されます。

3) 「DNSレコード設定」画面が表示されます。「ドメイン名」欄で設定対象のドメインを選択します。次に「TXTレコード」欄にSPFレコードを入力し「追加」をクリックします。

「DNSレコード設定」画面が表示されます。

※SPFレコードの書き方は後述します。

4) 画面が遷移し「DNSレコードが追加されました」と表示されれば登録完了です。

画面が遷移し「DNSレコードが追加されました」と表示されれば登録完了です。

基本的な書き方・記述方法

SPFレコードの記述方法にはいくつかのルールがありますが、まずは基本的な例をみていきましょう。最もスタンダードな書き方だけ把握しておけば十分である場合も多いですし、必要に応じて応用も簡単です。

以下の記述例をご覧ください。

1)・2)いずれも、@example.jpを送信元としてメールを送る際の、正当なメールサーバーの情報を示しています。それぞれ、以下が「正当なメールサーバー」と指定されています。

1) の場合
IPアドレスが「192.168.100.0/24」に該当するメールサーバー

2) の場合
kagoya.netのSPFレコードに記載されたメールサーバー

※こちらの場合は、改めてkagoya.netのSPFレコードを参照する必要があります。

この2つの記述例だけでも覚えておけば、正しくSPFレコードを記載できるケースが多いです。次の項では、その他の主な記述例を紹介します。

いろいろな記述例

前述の基本的なSPFレコードの書き方を把握していることを前提として、ここではその他の記述例をいくつか紹介します。

1) 単独のIPアドレスで指定する方法

これは「正当なメールサーバー」のIPアドレスが1つ(例では「192.168.100.3」)しかない場合の記述例です。「ip4」とIPv4アドレスによる指定であることを示しています。

2) AレコードやMXレコードで指定する方法

DNSに登録されたAレコードやMXレコードで指定した例です。

上は「mail.example.jp」のAレコードで、下は「example.jp」のMXレコードで指定されたメールサーバーが「正当なメールサーバー」であるという意味になります。

3)「~all」ではなく「-all」で指定する方法

違いが分かり辛いかもしれませんが、前項で「~all(チルダオール)」と記述していた部分を、「-all(ハイフンオール)」に変えています。

それぞれの意味は以下の通りです。

・「~all」:送信元メールアドレスは詐称されている可能性がある
・「-all」:送信元メールアドレスは詐称されている

「~all」と比較すると「-all」は、より断定した指定方法というと分かりやすいでしょうか。

メールは様々なメールサーバーから配送される可能性があります。(メールマガジンのみ、外部のメールサーバーを利用するなど)そういった例外なく、必ずSPFレコードで指定されたメールサーバーからしか該当ドメインを送信元とするメールが送られないのであれば、「-all」を指定します。

一方、その他のメールサーバーからも送信される可能性があるなら、「~all」で指定しましょう。一般的には、「~all」が選ばれる例の方が多いです。

1つのドメインに複数のSPFレコードを登録する方法

外部のサービスを利用してメールマガジンを配信する場合のように、メールサーバーのホスト名やIPアドレス範囲等が複数にわたる場合があります。その場合は、SPFレコードに複数の指定をする必要があります。
しかし、以下のように行を分けて登録してはいけません。正しく判定されなくなってしまいます。

【誤った記述例】

複数の指定をする場合は、以下のように、1行にまとめて記載する必要があります。

【正しい記述例】

SPFレコードが正しく記述されているか確認する方法

SPFレコードを登録しても、書式などに誤りがないか不安になる方も多いことでしょう。この場合、インターネットで無料公開されている、SPFレコードのチェックツールを使って確認することをおすすめします。

たとえば、以下は「Domain name」欄にドメインを入力して「Get SPF Record」をクリックするだけで、正しく診断できているか無料でチェックできるウェブツールです。

SPF Record Testing Tools
https://www.kitterman.com/spf/validate.html

SPFレコードが正しく登録されている場合、以下のように結果表示されます。

SPF record passed validation test with pySPF (Python SPF library)!

逆に書き方に誤りがある場合は以下の表示となりますので、SPFレコードを見直してみてください。

Results – PermError SPF Permanent Error: Too many DNS lookups

まとめ

SPFを利用することで、相手から送られたメールが「正当なメールサーバー」から配信されているか確かめることができます。そのため自社が送信したメールが「なりすましメールではない」ことを証明するためにも、SPFレコードをDNSレコードに登録しておくことが強く推奨されます。

なおSPFレコードを登録する際は、記述例を参考にするとよいです。送信メールサーバーの情報を記述例にあてはめるだめで、自社用のSPFレコードを作成できます。無料のオンラインチェックツールを使い、記述が間違っていないか確認することも可能です。

安心で選ぶならカゴヤサーバー

人気記事ランキングトップ10

メールだけでもお任せください。メールサーバー

カテゴリ一覧

新着記事Pick Up!