SPFとは?その役割とSPFレコードの設定方法を知ろう

SPFとは?その役割とSPFレコードの設定方法を知ろう

  • このエントリーをはてなブックマークに追加

メール配信サービスやマーケティングオートメーションツールを利用して配信したメールが全然宛先に届かない!といった問題に直面した事はありませんでしょうか?これは、あなたの送信したメールが”送信者をなりすましたメールと誤った判定を受けているから”かもしれません。

近年、詐欺メール等の被害の多さから、メールの受信サーバーやセキュリティシステムの迷惑メールフィルタ等が強化されていて、今後もますますセキュリティの強度は強くなっていくと言われています。そういった背景もあり、送信メールが安全でかつ正当であることを立証することが広く求められています。

今回は、そんな「なりすましメールの誤判定」の対策として、まず最初に行うべき「SPF」について、その意味や役割、設定方法までをご紹介したいと思います。

関連記事:そのメール、もしかすると相手に届いていないかも?最低限知っておくべき“メール配信の仕組み”を教えます!

SPFとは?

まずは「SPF」について正しく理解していきましょう。

SPFとは、Sender Policy Frameworkの略で、電子メールの送信時に「送信者のなりすましメール」と誤って判定されることを防ぐための、セキュリティ技術(送信ドメイン認証)の1つです。

SPFは、メールの送信者側が利用する仕組みで、送信メールがどこから送られてきたメールなのかをDNSサーバー(*1)に記しておくことで、受信者へ伝える役割を担います。

このことにより、メール送信時にFromとして利用するアドレスが、「第三者によって不正に利用されていない」ことを証明します。

(*1) DNS(Domain Name System)サーバーとは、ドメイン名(アドレスの@マークの右側)とIPアドレスの対応付けを行うための機能を持ったサーバーのこと。

送信者のなりすましは何故起きる?

具体的な内容に触れる前に、そもそもSPFが対策する「送信者のなりすまし」は何故起きるのかについて、ここで整理をしておきましょう。

実は、電子メールにはFromアドレスが2つ存在しています。
1つずつ簡単にですがご説明していきます。

エンベロープFrom(Envelope-From)

1つはエンベロープFrom(Envelope-From)アドレスです。郵送物にたとえると、封筒に記載されている差出人名です。SMTPという送信プロトコルのコマンドを利用して送信されるFromアドレスで、そもそもこの情報が正しくないと送信ができない本当のFromアドレスです。バウンスメールと呼ばれるメールの配送エラーを受信するのもこちらのエンベロープFromアドレスです。

ヘッダFrom( Header-From)

もう1つは、ヘッダFrom( Header-From)アドレスです。こちらも郵送物にたとえると、封筒の中の便箋に書かれている差出人名にあたります。こちらが、仕様上、実際の差出人とは異なる情報を表示することができるアドレスとなります。いわゆる「なりすましメール」は、このヘッダFromアドレスを不正に変更することで送られています。

残念ながら、多くの人はエンベロープFromアドレスをわざわざ調べることはなく、直接見る事ができる文面の情報を信用してしまいます。そのため、このヘッダFromアドレスが「送信者のなりすまし」に利用されることになります。

関連記事:なりすましメールに注意!SPF認証とDKIM認証の違いとは

SPFの設定が必要なケースは?

繰り返しになりますが、SPFとはアドレスの不正利用「送信者のなりすまし」の疑いを晴らすための仕組みです。

企業で利用しているドメインから直接送信されているメールについては、上述でいうところの封筒の差出人名であるエンベロープFromアドレスと、封筒内の便箋に書かれている差出人名であるヘッダFromアドレスが一致をしている状態であるため、「送信者のなりすまし」は起こりえません。

問題となるのは、クラウドサービスなど外部環境に置かれたシステムを介してメールを送信する場合です。

クラウドで動くメール配信サービスやマーケティングオートメーションツールは、送信サーバーを含むメールを一斉送信するための仕組みを提供しています。大量のメールを一斉送信するためには、1通1通メールを送信する場合とは異なり、大量配信に耐えられるサーバースペックや迷惑メール誤判定を避けるための仕組みを組み込む必要があり、仕組みの構築を1から行おうとすると、膨大な初期コストがかかってしまいます。そのため、クラウドサービスの提供企業が運営する送信サーバーを利用することが一般的です。

しかしながら、第三者(クラウドサービス提供企業など)の送信サーバーを利用するという事は、エンベロープFromアドレスが外部企業のものになります。もちろん、送信メールの本文内には、どこの企業から送られてきたかを記載しますので、ヘッダFromアドレスが自社のものとなります。つまり、ここで両アドレスが異なる「送信者なりすまし」の状態が発生することになります。 ただ、この場合は、意図的に発生している「送信者なりすまし」の状態であるため、不正に行われた「送信者なりすまし」とは全く異なる状況です。そこで、この「意図的に発生してしまった送信者なりすまし」の状態を、公認するために必要となるのが「SPF」をはじめとする送信ドメイン認証の仕組みです。

SPFを有効にするには?

SPFの仕組みを有効にするにあたり、送信者は自身のドメインにあるDNSサーバ上にSPFレコードという情報を記述する必要があります。

SPFレコードには、本来のドメインとは異なる送信元としてもよいドメインのIPアドレス(メール送信を行うクラウドサービスのIP等)を記述します。

一方で、受信者は、SPFに対応した受信サーバであれば、SPFレコードに記述されたIPのドメインからのメールかどうかを判別できます。

もし、送信元のドメインがSPFレコード内で許可されていない場合には、送信ドメインの偽称が行われたと判断して、受信者側(*2)で受信を拒否するなどの処理を行うことができます。

(*2)SPFレコードの役割はあくまで、受信者に認証結果を伝える事までです。そのため、受信を拒否するか否かは基本的には受信側の判断に任せられています。 もし、送信者側で認証後のメールの扱いを制御したい場合には、DMARCの設定が必要となります。

【参考】メルラボ|DMARCとは?送信ドメイン認証の仕組みを理解して、なりすまし対策をしよう!
https://mailmarketinglab.jp/about-dmarc/

SPF の設定手順

以降では、より具体的なSPFの設定手順について解説をしていきます。

1: SPF設定が可能かどうかを確認

SPF レコードの設定は自社のメールアドレスを運用(設定)しているDNSサーバーで設定作業を行って頂く必要があります。

DNSサーバーを自社にて管理している場合には、システム担当者様にご確認を。DNSサーバーをサーバー管理会社にて委託管理している場合には、サーバー管理会社へ SPFの設定が可能かどうかを御確認ください。

例えば、Fromアドレスが ○○@haihaimail.jp であれば、haihaimail.jpを管理しているサーバー会社にて設定をします。

※Gmail(G-Suiteは除く)、Yahoo!メール、iCloud、nifty等のフリーメールや携帯キャリアのアドレスでは出来ません。
※独自ドメインでも一部のサーバー会社では先方の仕様等により、設定が出来ない場合があります。

2: DNSサーバへSPFレコードを登録

先に設定が可能かを確認が取れたら、DNSサーバーにメール配信サービスやマーケティングオートメーションツールが指定しているSPFレコードを登録します。

SPFレコードはさまざまな組み合わせで構成されていて、左に書かれている機構から順に評価されていきます。要素として「include、a、mx、ip4、ip6、ptr、all、redirect」といったものが使われており、それぞれ以下のような特徴があります。

include

引数に与えられたドメインのSPFレコードを使って認証処理を行い、認証処理が通るならば、認証されます。

a

送信元ホストのIPアドレスが、与えられたドメインのAレコードもしくはAAAAレコードで解決されれば、認証されます。

mx

送信元ホストのIPアドレスが、与えられたドメインのMXレコードで解決されるならば、認証されます。

ip4/ip6

送信元ホストのIPアドレスが、引数に指定されるIPネットワークに含まれているかIPアドレスにマッチする場合、認証されます。

ptr

負荷の多い処理となるため、利用は推奨されない方法です。送信元ホストのIPアドレスを逆方向に見に行き、得られたホスト名で正引きを実施し、IPアドレスを取得します。そのIPアドレスと送信元ホストのIPアドレスが含まれる場合、そのホスト名が引数に与えられたドメイン名と一致するかそのサブドメインである場合、認証成功されます。

all

すべての送信元ホストで認証されます。SPFレコードの末尾に置かれるのが一般的で、デフォルトの動作を定義するために利用されることが多いです。

redirect

上記の機構とは異なり、機構ではなく変更子(modifier)です。引数であるドメイン名に指定されたドメインのSPFレコードにより認証処理を実行します。

ここでは、弊社提供のメール配信サービス「配配メール」を利用している場合を例として記載していきます。

■例:配配メールのSPFレコードの場合
TXT “v=spf1 ip4:送信メールサーバの IP アドレス include:spf.haihaimail.jp ~all”

※「spf1」「IPアドレス」「.jp」の後ろにそれぞれ半角のスペースが入ります。
※「送信メールサーバーのIPアドレス」には貴社(貴団体)のドメインを管理するサーバーのIPアドレスを記述します。
※既に同ドメインに別サービス等の SPFレコードを記述している場合はinclude:spf.haihaimail.jp のみ記述します。

DNSサーバー内での具体的な設定方法は各サーバー管理会社によって異なり、サーバーの仕様によっては契約しているサーバーの管理画面上で自身で行う必要がある場合もあります。以下のサーバー管理会社は、自身で設定・編集を行う代表例となるので、参考にしてみてください。

サーバー会社での設定例

SPFとは?その役割とSPFレコードの設定方法を知ろう

A: お名前.com

① 「お名前.com」のサーバ管理画面にアクセスします。
② 「ドメイン設定 > ネームサーバの設定 > DNS設定 / 転送設定」をクリックします。
③  設定するドメインをチェックし、「次へ」ボタンをクリックします。
④ DNS レコード設定を利用する「設定する」をクリックします。
⑤ 【 ●入力 】の箇所に以下の情報を設定します。

※先に「TYPE」をプルダウンでTXTを選択してください。

TYPE :  TXT
TTL : そのまま
VALUE : v=spf1 +ip4:送信メールサーバの IP アドレス include:spf.haihaimail.jp ~all

※「spf1」、「IPアドレス」、「.jp」の後ろにそれぞれ半角のスペースが入ります。
※「送信メールサーバのIPアドレス」には貴社(貴団体)のドメインを管理するサーバのIPアドレスを記述します。
※ プラン等により、設定方法または設定場所が異なる場合があります。

B: さくらインターネット

① さくらインターネットの会員メニューにログインします。
②「契約情報」>「契約ドメインの確認」>「ドメインメニュー」をクリックします。
③「ゾーン編集」をクリックし、「変更」ボタンをクリックします。

エントリ    :  無記入
種別      :  TXT
DNSチェック : 「する」
値       :  v=spf1 ip4:送信メールサーバの IP アドレス include:spf.haihaimail.jp
TTL     :  チェック不要

「ドメインのSPFレコードの設定」

C: XSERVER(エックスサーバー

① エックスサーバーのサーバパネルにログインします。
②「DNSレコード設定」をクリックします。
③「DNSレコードの追加」をクリックします。

ホスト名 :  未記入
種別   :  TXT
内容   :  v=spf1 ip4:送信メールサーバの IP アドレス include:spf.haihaimail.jp
優先度  :  未記入

④「DNSレコードの追加(確認)」をクリックします。

「DNSレコードの編集」

D: ムームードメイン

① ムームードメインのコントロールパネルにログインします。
②「ドメイン管理」>「ドメイン操作」>「ムームーDNS」をクリックします。
③ 編集するドメインの「変更」ボタンをクリックします。
④「カスタム設定」をクリックします。

サブドメイン : 未記入
種別     : TXT
内容     : v=spf1 ip4:送信メールサーバの IP アドレス include:spf.haihaimail.jp
優先度    : 未記入

⑤「セットアップ情報変更」ボタンをクリックします。
⑥「ネームサーバ設定変更」をクリックします。
⑦「ムームードメインのネームサーバを使用する」を選択し、「ネームサーバ設定変更」をクリックします。

「ムームーDNSセットアップ方法」

E: G-Suite( Gmail )

以下のG-Suite管理者ヘルプサイトにて手順がまとまっています。
こちらをご参照ください。

「G-Suite 管理者ヘルプ」

※なお、 SPFレコードの設定は上記のような各サーバ会社が管理を行っている為、設定が上手くいかない等については、各サーバ会社のサポートサイトまたはFAQサイトを参照してください。

SPFが設定されているかの確認方法

続いて、SPFレコードが正しく設定されているかを確認する方法をご説明します。こちらも「配配メール」のドメインを正式なものであると登録する場合の例を記載します。他のサービスのドメインの場合には、ここを他サービスのものに置き換えてください。

A: MXTOOLBOX

MXTOOLBOX サイト

① ページ内の Lookup anything.. と記載された部分に、チェックするドメイン(@よりも後ろの部分)を入力。
② オレンジの▼タブをクリックし、表示されるプルダウンから「SPF Record Lookup」を選択・クリックします。
③ SPFレコードのチェック結果が表示されます。
 TXTレコード内に include:spf.haihaimail.jp の記述があり、文字列がグリーンの場合は有効に働いています。

※全体が赤く表示されている場合は何らかのエラーとなっており、 SPF は有効とはなっていません。 グリーンで表示されていても、TXT レコード内に include:spf.haihaimail.jp の記述が含まれていない場合は、「配配メール」から送られたメールにおける SPFは有効とはなっていないので、記述内容を修正してください。

【参考】一般財団法人インターネット協会|間違いから学ぶSPFレコードの正しい書き方
http://salt.iajapan.org/wpmu/anti_spam/admin/operation/information/spf_i01/

B:Gmail、Yahoo!メールアカウントを使用して確認する

・Gmailを使用してのテスト方法

① 配配メールからGmailアドレスへメールを送信
② WebメールページからGmailの受信ボックスを開きます
③ 受信した件名をクリック→右上の▽(その他)タブをクリックします
④ プルダウンから「メッセージのソースを表示」をクリックします
⑤ 受信したメッセージのヘッダ情報とSPFのチェック結果が表示されます SPF: PASS ( IP:**.****.***.**)。 詳細 
⑥ 「PASS」となっている場合はSPFレコードの認証が有効に働いています。

・Yahoo!メールを使用してのテスト方法

① 配配メールからYahoo!mailアドレスへメールを送信
② WebページからYahoo!mailの受信ボックスを開きます
③ 受信した件名をクリック→[詳細ヘッダー]をクリックします
④ ヘッダ情報が表示されます
⑤ 情報の中に「spf=pass」とあれば認証が有効に腹立いています

まとめ

クラウドサービスなどの外部環境からメールを送信する場合には、メールの到達率を高めるためにも、「送信者なりすまし」への対策は必須です。 その中でも「送信者なりすまし」への対策としては、SPFは基本となる重要な設定となります。自社環境を確認して、必要であれば正しく設定をおこなえるようにしましょう。

関連記事:迷惑メール判定されてしまう理由は?送信側ができる対策

関連記事:【重要】2024年2月Gmailの送信者ガイドラインが変更!必要な対応をわかりやすく解説

>>メールマーケティングに関するお役立ち情報をお届け!配配メール/メルラボのメルマガに登録する

The following two tabs change content below.

大塚陽生

広告代理店の営業&ウェブ広告の運用担当として6年間従事し、2019年4月ラクス入社。オンラインマーケティングチームに所属し広告運用や営業メールの運用を担当。メルラボでは、主に自身のメール配信実績をもとにした記事を作成。
  • このエントリーをはてなブックマークに追加

関連するおすすめ記事

  • 配配メールバナー