Gmail などのフリーメールへの送信対策として「必須のSPFレコード」とは

最近フリーメールでは迷惑メールの対策としてSPFレコードが設定されていない送信元からのメールが受信拒否されるようになってしまいました。

しかし重要なメールや企業からのメールなど必要なメールを送信したいときに困りますよね。

SPFとは一体どのようなものなのでしょうか。

 

SPFレコード(Sender Policy Framework)は、電子メールの送信元を認証するために使用されるDNS(Domain Name System)レコードの一種です。SPFレコードは、スパムやなりすましメール(フィッシング)の防止に役立ちます。

SPFレコードの目的

SPFは、特定のドメインがどのサーバーからメールを送信することを許可しているかを示すための仕組みです。これにより、受信側のメールサーバーは、送信されたメールが正当な送信元から来たものであるかどうかを確認できます。

SPFを使用することで、第三者があなたのドメインを不正に使用してメールを送信するのを防ぎ、ドメインの信頼性を向上させることができます。

SPFレコードの仕組み

  1. SPFレコードの設定: ドメインのDNSにSPFレコードを設定し、許可されたメール送信サーバーのIPアドレスまたはドメイン名をリストに登録します。
  2. メール送信時: メールが送信されると、受信側のサーバーは送信者のドメインのDNSからSPFレコードを取得し、メールが許可されたサーバーから送信されたものであるかを確認します。
  3. SPFチェックの結果: SPFの確認結果に基づき、受信側のサーバーは次のいずれかの対応を取ります。
    • PASS: 送信元がSPFレコードで許可されている場合、メールを受け入れます。
    • FAIL: 送信元が許可されていない場合、メールを拒否したり、スパムとして扱ったりします。
    • SOFTFAIL: 許可されていないが、確実に拒否するほどではない場合、メールは受け取るがスパムマークを付けるなどの処理を行うことがあります。
    • NEUTRAL: SPFレコードの判断ができない場合、特に処理をしません。

SPFレコードの構文

SPFレコードは、DNSに「TXTレコード」として追加され、次のような形式で指定します。

SPFレコードの例:

v=spf1 ip4:192.168.1.1 include:example.com -all

この例の各要素の意味は次の通りです。

  • v=spf1: SPFレコードのバージョン。必須で、SPFレコードの始まりを示します。
  • ip4:192.168.1.1: このIPアドレス(192.168.1.1)がメールを送信することを許可します。IPv4アドレスを指定しています。
  • include:example.com: example.comのSPFレコードも含めて、そのルールに従います。つまり、このドメインの送信許可リストも適用されます。
  • -all: -allは「許可されていないサーバーからのメールは拒否する」という指示です。他に~all(softfail)や?all(neutral)などがあります。

SPFレコードのディレクティブ

SPFレコードには、さまざまなディレクティブ(命令)があり、それぞれの意味を持っています。

  • v=spf1: SPFレコードのバージョン指定(必須)。
  • ip4:<IPアドレス>: 指定されたIPv4アドレスからのメール送信を許可。
  • ip6:<IPアドレス>: 指定されたIPv6アドレスからのメール送信を許可。
  • a: ドメインのAレコード(DNSが返すIPアドレス)に対応するサーバーからの送信を許可。
  • mx: ドメインのMXレコードに対応するサーバーからの送信を許可。
  • include:<ドメイン>: 指定されたドメインのSPFレコードに従う。
  • all: すべてのメール送信に対するルールを適用する。これに続くプレフィックスによって、処理が異なります。

SPFレコードのプレフィックス

SPFレコードでは、以下のプレフィックスで送信元に対するアクションを指定します。

  • +(PASS): 許可する(デフォルト、指定は不要)。
  • -(FAIL): 拒否する。
  • ~(SOFTFAIL): 許可されていないが、警告として処理。
  • ?(NEUTRAL): 中立的な結果として扱い、特に何もしない。

SPFレコードの設定例

  1. 自分のサーバーのみがメールを送信する場合:
    v=spf1 ip4:192.168.1.1 -all

    この設定では、192.168.1.1からのメール送信を許可し、それ以外のサーバーからの送信は拒否します。

  2. 他のサービス(例: Google Workspace、SendGrid)を使用する場合:
    v=spf1 include:_spf.google.com include:sendgrid.net -all

    この設定では、Google WorkspaceとSendGridのサーバーもメール送信を許可します。

SPFと他の認証技術

SPFは単独ではメールのなりすましを完全に防ぐことはできません。そのため、次のような他の認証技術と併用されることが一般的です。

  • DKIM(DomainKeys Identified Mail): メールの内容に電子署名を付け、改ざんされていないことを証明します。
  • DMARC(Domain-based Message Authentication, Reporting & Conformance): SPFとDKIMを組み合わせ、メールの認証失敗時にどのように処理すべきかを指示するポリシーを設定します。

SPFの利点と制限

  • 利点:
    • 不正なドメインのなりすましを防ぐ。
    • メールサーバーの信頼性が向上し、スパムフィルタを通過しやすくなる。
  • 制限:
    • メール転送(フォワーディング)ではSPFが失敗する場合がある。
    • SPFだけでは、メールの内容そのものの改ざんを防ぐことはできない。

まとめ

SPFレコードは、メールの送信元を認証し、なりすましやスパムを防ぐための重要なDNSレコードです。適切に設定することで、ドメインの信頼性を高め、メール配信の成功率を向上させることができます。また、DKIMやDMARCと組み合わせることで、より強力なセキュリティを実現できます。