Sender Policy Framework(SPF)レコードは、DMARCの重要な一部です。 DMARCプロトコルの重要な部分であり、送信者アドレスの偽造を防ぐ方法を規定しています。
SPFレコードの設定は複雑で、適切に設定されないと実装上の問題が発生することがあります。また、SPFレコード構文では特殊な用語が使用されており、初めて遭遇すると混乱する可能性があります。そこで、このブログ記事では、SPFレコードの構文と、設定する際に考慮すべき点について見ていきます。
主なポイント
- SPFは、お客様に代わってメールを送信する特定のメールサーバーを承認することで、なりすましメールを防止します。
- SPFレコードは、ディレクティブ、修飾子、およびメカニズムを使用して、認可された送信者と、チェックに失敗した場合のアクションを定義する。
- 受信者のサーバーは、DNSルックアップによってSPFレコードをチェックし、送信者の認可を確認する。
- SPFの結果はPass、Neutral、Failのいずれかで、メールが正当なものかどうかを判断します。
- exp "や "redirect "のようなSPF修飾子は、メールの検証と処理にさらなるカスタマイズを提供します。
SPFレコードの構文
SPFレコードの構文は、ディレクティブ、修飾子、メカニズムといういくつかの要素で構成されています。
ディレクティブは、SPFレコードの構文の最初の部分です。これらは、レコードの残りの部分をどのように解釈するかを示します。SPFレコードには、v=spf1、a、mxの3つのディレクティブを記述することができます。vディレクティブはこのレコードがSPFv1レコードであることを示し、aディレクティブはこのレコードがSPFv2スタイルの認証失敗レポートであることを示し、mxディレクティブはドメインのメール交換サーバーのリストを指定します。
修飾子は、DNSゾーンのどこにSPFレコードを配置するかを指定します。これらの修飾子は、メール受信者がDNSレコードと照合するときに、SPFレコードを探す場所を指定します。
Mechanismsは、SPFチェックに失敗したメールアドレスの処理方法を指定するために使用します。all、none、softfail、neutralize、rejectから選択できます。
- すべては、SPFチェックを通過した送信者からのメールをすべて受け入れます。
- なしは、SPFチェックを通過した送信者からの全てを拒否します。
- ソフトフェイルは、SPFチェックに失敗した送信者からのメールを受け付けますが、不審者としてマークします。
- ニュートラルは、あなたのドメインから送信されたメッセージを拒否も受容もしないことを意味します。これは、メッセージを受容すべきか拒否すべきかについて、基本的に「意見を述べない」スタンスです。
- 拒否は、SPFチェックに失敗したメールを拒否します。
SPFレコードの構文修飾子
SPFレコードの構文に含まれる「修飾子」は、SPFレコードの範囲を示すのに役立ちます。これらは主に、特定のIPアドレスがお客様のドメインの代理としてメールを送信することを許可されているかどうかを示すために使用されます。
予選 | リザルトコード | 説明 |
+ | パス | 否定的な意味合いのない唯一の修飾語です。これは、ドメイン名のセキュリティレコードにエラーや警告がなく、安全であると考えられることを示します。 |
- | 失敗 | は、ドメイン名のセキュリティレコードにエラーまたは警告が含まれているため、安全であると見なされないことを示します。
|
~ | ソフトフェイル | は、ドメイン名のセキュリティレコードにエラーまたは警告が含まれていることを示します。これは、安全であると見なされることを妨げませんが、DNS解決またはDNSトラストアンカーに関連する他の問題を示している可能性があります。 |
? | ニュートラル | ドメインにSPFレコードがないか、レコードは構文的には正しいが、そのドメインの信頼できるIPアドレスのリストにある1つ(または複数)の送信サーバーと照合したときに、どの送信サーバーにも一致しなかったことを示します。 |
PowerDMARCでSPFを簡素化!
SPFレコードの構文メカニズム
メカニズムは、SPFレコードの構文で、受信サーバーにどのような種類の認証メカニズムを使用すべきかを伝えるために使用されます。メカニズムには2種類あります。
- は、送信者が特定のメカニズムセットを指定することができます。
- あるいは、すべての機構を許可するように指定することもできる。
メカニズム | 目的 | ディレクティブが適用される場合 | インプリメンテーション |
a | は、認可されたドメインの DNS A レコードを定義します。このディレクティブが指定されていない場合は、 現在のドメインが使用されます。
| は、送信者のIPアドレスを含むドメインのAレコードまたはAAAAレコードを照会したときに適用できます。 | a a/<prefix-length> a:<domain> a:<domain>/<prefix-length> |
何れも | allディレクティブは常にマッチし、他のすべてのソースに対するポリシーを定義します。 | このメカニズムは常に適用されるべきであり、このメカニズムは常に一致する。 | 何れも |
ある | Aレコードが指定されたドメインに対して有効であるかどうかを確認します。そのドメイン上のすべてのAレコードを調べ、その中にSPFレコードで設定された条件に一致するものがあるかどうかを確認することで動作します。 | 当該ドメインにAレコードがある場合、またはRFC7208に従った他の基準が許可された場合に適用されます。 | exists:<domain> |
インクルード | この仕組みの目的は、ドメインを指定して一致するものを検索することと、ドメインに有効なSPFレコードがない場合にパーマネントエラーを返すことである。 | SPFレコードの「include」メカニズムを使用すると、あるドメインのレコード内に他のSPFレコードを含めることができる。あるドメインがSPFレコードを持たず、他のドメインが持ち、その他のドメインが送信者のIPアドレスと一致するIPアドレスを持つ場合、「include」メカニズムにより、一致するIPアドレスを持つドメインが認証目的で使用されることになります。
| include:<domain> |
アイピーフォー | IPv4 の範囲は、"ip4" ディレクティブと、範囲の長さを示すプレフィックスで指定できます。プレフィックスを指定しない場合、/32 と見なされます。 | これらの条件のいずれかが真である場合、「ip4」メカニズムが適用されます。
- 指定されたIPv4アドレスは、SPFレコードに登録されているIPアドレスと一致します。
- 指定されたIPv4サブネットには、送信者のIPアドレスが含まれています。 | ip4:<ip4-address> ip4:<ip4-network>/<prefix-length> |
アイピーシックス | IPv6 の範囲は、"ip4" ディレクティブで、範囲の長さを示すプレフィックスとともに指定することができます。プレフィックスを指定しない場合、/128 と見なされます。 | これらの条件のいずれかが真である場合、「ip6」メカニズムが適用されます。
- 指定されたIPv6アドレスは、SPFレコードのIPアドレスと一致します。
- 指定されたIPv6サブネットには、送信者のIPアドレスが含まれています。 | ip6:<ip6-address> ip6:<ip6-network>/<prefix-length> |
エムオーエス | SPFレコードで定義されている「mx」メカニズムは、ドメインのドメインネームシステム(DNS)Mail Exchanger(MX)レコードが認可されたものとして定義されます。 | DNSのMXレコードは、ドメインの代わりに電子メールメッセージを受け入れるために責任があるサーバーを決定します。DNS MXレコードには、メッセージの受け入れに使用できる各サーバーのIPアドレスと優先度の値が含まれています。
あるドメインのMXレコードに、送信者のIPアドレスと一致するIPアドレスが含まれている場合、この送信者がこのドメインの代理としてメールを送信することを許可されていることを示します。 | エムオーエス mx/<prefix-length> mx:<domain> mx:<domain>/<prefix-length> |
伝令者 | ptr機構は、送信IPアドレスの逆ホスト名またはサブドメインを使用して、ターゲットドメイン名を定義します。 | 照会または指定されたドメインに少なくとも1つのMXレコードがあり、そのMXレコードに送信者のIPアドレスのFQDNを持つPTRレコードが含まれている場合にのみ適用されます。 | 伝令者 ptr:<domain> |
SPFレコードの構文修飾子
SPFレコードの構文では、修飾子を使用してSPFレコードのデフォルトの動作を変更することができます。修飾子は規則の例外を指定するために使われたり、受信者に追加情報を提供するために使われたりすることがあります。
モディファイア | 目的 | インプリメンテーション |
経験値 | exp" モディファイアは、メッセージが拒否された理由についての説明を指定する値です。これは送信者がある種の問題を回避するのを助けることを意図しており、受信サーバにメッセージが受け入れられなかった特定の理由を知らせるために使用することができます。 | exp=<domain> |
リダイレクト | redirect modifierは、SPFレコードのドメイン名全体を置き換える文字列です。この修飾子の目的は、そのドメインに送信されるすべてのメールを別のサーバーにリダイレクトすることです。これは、複数のMXレコードを持つドメインや、別の会社に再割り当てされたが同じメールアドレスをまだ使用しているドメインに便利な場合があります。 | redirect=<domain> |
SPFレコードとは何ですか?
SPFレコードは、DNSレコードの一種で、お客様のドメインの代わりに電子メールを送信することが許可されているサーバーを識別するためのものです。SPFレコードは、お客様のドメインのメール送信を許可されたサーバーをリストアップすることによって行います。他のサーバーがお客様のドメインの代わりにメールを送信しようとすると、未承認の送信者として拒否されます。
SPFレコードの目的は、悪意のあるユーザーが、お客様のドメインをFromフィールドに含む偽造メールを送信することを防ぐことです。これは、攻撃者がお客様のサーバーから、お客様のドメインを偽装または偽造して大量のスパムメールを送信した場合に発生する可能性があります。
SPFの仕組みは?
1.SPFレコードの作成 構文
DNSサーバーでSPFレコード構文を作成し、どのIPアドレスがあなたのドメインからのメール送信を許可されているかを指定します。これは、誰かがあなたのドメインから偽装メールを送信しようとした場合、そのメールサーバーのIPアドレスが承認されたサーバーの1つとしてリストされていないため、メッセージが失敗することを意味します。
例えば、Gmailアカウントのみドメイン名からメールを送信できるようにし、Outlookアカウントは送信できないようにしたい場合、SPFレコードに以下の行を追加することになります。
v=spf1 a mx include:_spf.google.com ~all
これは、IPアドレスが _spf.google.com で終わるホストから送られたメッセージは有効 (m) と見なされ、それ以外のメッセージはすべて破棄 (a) されるということをサーバーに伝えます。
当社の SPFレコード作成ツールツールを使って、今すぐ無料のレコードを作成することができます。
2.DNSルックアップ
メール送信者がメッセージを送信しようとすると、受信者サーバーは送信ドメインのDNS検索を行い、SPFレコードがあるかどうかを確認します(これを「認証」と呼びます)。 SPFパーマー.
SPFレコードがない場合、認証に失敗し、メッセージは配信されません。SPFレコードがある場合、SPFサーバはSPFレコードで指定されたホスト名のTXTレコードに含まれるIPアドレスをチェックします。
指定されたIPアドレスがない場合は、認証に失敗する。そうでない場合は、TXTレコードの出現順に指定された各IPアドレスに対してAクエリを実行します。
NXDOMAINまたはNOERRORの結果コードを返すIPアドレスは、SPFサーバによって認可されたとみなされ、そのホスト名はそのドメインの認可された送信ホストのリストに追加されます。
3.認証の成果
メールサーバーは、SPFレコードで指定されたルールに基づいて、受信者にメッセージを配信するか、拒否のフラグを立てます。
認証の結果は、3つの形式を取ることができます。合格、中立、不合格です。
Passは、メールサーバーがそのメッセージを正当なものとして受け入れ、配信を許可することを意味します。Neutralは、DNSにそのドメインのレコードが全くないか、無効であることを意味し、そのドメインからの正当なメッセージかどうかを知る方法がありません。Failは、このメッセージの何かが、配信するのに十分なほど本物でなかったことを意味します。
例えば、IPアドレスが「234.2.1.2」のメールサーバーが「[email protected]」からメールを送信するとします。受信サーバーはドメインネームサービス(DNS)を調べ、このIPアドレスが「apple.com」ドメインの代理としてメールを送信することを許可されているかどうかを判断します。そうでない場合は、SPFレコードで指定されたメカニズムに従って、廃棄されるか、スパムとしてマークされます。
まとめ
SPFレコードは、あなたのドメインのDNSレコードの重要な部分です。SPFレコードは、他のメールサーバーに、あなたからのメッセージであると主張するメッセージをどのように認証するかを伝えます。つまり、SPFレコードを適切に設定することが重要です。ただし、メールの漏洩やなりすましに対する保護を強化するために、SPFとDMARCを必ず組み合わせてください。
その SPFレコード検索ツールは、まさにそのお手伝いをします。ルックアップツールでは、現在のSPFレコードがどのようなものか、必須項目が欠けていないかどうかなど、簡単な概要を確認できます。ジェネレータを使用すると、すべての必須項目を含むSPFレコード構文をゼロから作成でき、DNSレコードにすぐに追加できます。
- 自動ペンテストツールが電子メールとサイバーセキュリティにどのような革命をもたらすか- 2025年2月3日
- MSPケーススタディ:Hubelia、PowerDMARCでクライアント・ドメインのセキュリティ管理を簡素化- 2025年1月31日
- 2025年のMSP向けDMARCソリューション・トップ6- 2025年1月30日