SPFレコードはドメインの情報が記載されているDNSレコード内にドメイン管理者が作成するテキストデータを指します。
SPF(Sender Policy Framework)とは、メールを送信する際のドメイン認証技術の一つです。
このSPFレコードによって、メールが正規のサーバーから送信されているかの信頼性を判断できるようになります。

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

SPFの仕組み

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

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

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

といった流れがSPFの認証プロセスです。

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

SPFレコードの設定方法

SPFレコードの設定方法は利用するメールサーバーによって異なるため、その方法を管理者に確認し、管理画面から設定を行う必要があります。
共通する手順としては以下の通りです。

  1. IPアドレスを確認する
  2. DNSサーバーのTXTレコードにSPFレコードを設定する
  3. TXTレコードに送信元のIPアドレスを記載する

なりすましなどでドメインが悪用されないためには、自社で管理しているドメインのほか、メインで利用しているメールサーバー、メールを送る可能性があるすべてのサーバーをチェックする必要があります。
たとえばオンプレミス環境のメールサーバー、Webサーバー・アプリケーションサーバーだけでなく、外部のメールサービスやメール送信サービスもその対象となるでしょう。
ちなみにドメインに設定するSPFレコードは1つだけとなります。

SPFレコードの設定を確認するには

SPFレコードが設定済みかを確認する方法はいくつかあります。
「SPFレコードの設定確認方法」といったワードでネット検索すれば、ブラウザ上で確認できるWebサイトが複数上がってきますが、オフラインでも調べることができます。

windowsパソコンであればコマンドプロンプトを開き、「nslookup -type=txt 調べたいドメイン」を入力してエンターキーを押します。その入力に対しv=spf1~といった記述が返ってくれば、SPFレコードが設定されていることがわかります。
※「nslookupと-type」の間と「txtとドメイン」の間は半角スペースです。

Macであれば、ターミナルを開き「dig txt 調べたいドメイン」と入力後、エンターキーを押下すれば同じようにチェックできますので、調べてみてください。

SPFレコードの書き方

SPFレコードの書き方ですが、以下の基本書式があります。
ドメイン. IN TXT ” <SPF version> <qualifier> <mechanism>:<値> ”

たとえばドメインだけで書く場合、以下のような形になります。
v=spf1 ip4:xxx.xxx.xxx.xxx -all
広告やメルマガなどでメール送信業者を利用している場合は以下の通りです。
v=spf1 ip4:xxx.xxx.xxx.xxx include:(サーバのドメイン名) -all

SPF versionはSPFのバージョンを指しますが、バージョンアップなどがなければv=spf1と記述します。
qualifierはmechanismに適合した場合の認証結果の処理に関する内容設定です。
+ であれば正常のメールとして処理
- は不正メールとして処理、配信拒否の可能性あり
~ は不正メールとして処理し、配信
? はSPF指定なしとして処理

たとえば、
ドメイン「XXX.ne.jp」のIPアドレス「50.190.200.36」から送信されたメールのみを認証させたいときは、次のようなSPFレコードを追記します。
XXX.ne.jp. IN TXT ” v=spf1 +ip4:50.190.200.36 –all”
mechanismと値は判定ルールの記述です。
mechanismと値の合致により、qualifierの内容に沿って処理が行われます。

  • すべて合致させる場合、末尾にallと記述します。
  • リダイレクト先のXXX.ne.jpのSPFレコードを用いて認証させたいときは、redirect=XXX.ne.jp と記述。
  • 社外のメール送信業者を利用しており、普段のメールサーバーとは異なる他ドメインのSPFレコードを参照して認証させる場合には、include:UUU.co.jp といった形で記述します。

webサイトやメールアドレスで利用する独自ドメイン名

まとめ

SPFレコードのメリットとしては、フィッシングやスパム、なりすましとった攻撃を受けるリスクを低減できることと、メールの未達やスパム認定などによるメール到達率低下の防止、電子メール認証プロトコルであるDMARCへの準拠によるドメイン管理上のメリットなど複数あります。

メールの送受信におけるビジネス環境のセキュア化に、SPFレコードの導入は不可欠と言えるでしょう。