SPFレコードの定義
SPFレコードの定義には「+mx」や「+ip4:xxx.xxx.xxx.xxx」のように、メールを送信する可能性のあるサーバの条件を記述するディレクティブか、「redirect」や「explanation」などのモディファイヤを指定できる。
ディレクティブはメカニズムとクオリファイヤで構成される。メカニズムには対象となるホストのパターンを、クオリファイヤにはパターンにマッチするホストの扱いについて指定する。
例えば、
+ip4:xxx.xxx.xxx.xxx
とした場合、「+」がクオリファイヤで「ip4:xxx.xxx.xxx.xxx」がメカニズムになる。
受信側の認証処理では、メールを送信してくるホストのIPアドレスがメカニズムの定義にマッチするかどうかをチェックし、マッチした場合はクオリファイヤに示される値を認証結果とする。受信側での認証結果の判断について詳しくは次回に説明する。
クオリファイヤは省略可能であり省略時は「+」になる。クオリファイヤには次のものがある。
+ | Pass | 認証成功 | |
- | Fail | 認証失敗。この定義にマッチするホストからはメールが送信されることはない | |
~ | SoftFail | 認証情報を公開しているが、場合によっては認証できないメールも存在する | |
? | Neutral | 認証情報を公開しない |
メカニズムについては表1に、モディファイヤについては表2にその詳細を示す。
メカニズム | 文法 | 説明 | |
---|---|---|---|
All | All | すべてのホストにマッチする。All以降に記述されたほかのメカニズムやredirectモディファイヤは無視される。SPFレコードの末尾に置かれ、else的な役割を持つ | |
Include | include:ドメインスペック | ドメインスペックに指定されたドメインのSPFレコードを読み出しチェックを実施する | |
A | a:ドメインスペック | ドメインスペックに指定されたホスト名のAレコードにマッチする | |
MX | mx:ドメインスペック | 指定されたドメインスペックのMXレコードにリストされているホストのAレコードと比較する | |
PTR | PTR:ドメインスペック | 該当接続の接続元IPアドレスをリバースルックアップして得たホスト名がドメインスペックに指定されたドメインに属しているかチェックする リバースルックアップして得たホスト名をさらにAレコードルックアップして、該当接続のIPアドレスが含まれているかもチェックする 注意:このメカニズムの利用はあまり勧められない |
|
IP4 | ip4:ネットワークアドレスまたはIPアドレス | 接続元のIPアドレスが指定されたネットワークに含まれているか、またはIPアドレスにマッチするかチェックする。ネットワークの指定にはCIDR表記が可能 | |
IP6 | ip6:ネットワークアドレスまたはIPアドレス | 接続元のIPアドレスが指定されたネットワークに含まれているか、またはIPアドレスにマッチするかチェック。ただしIPv6のアドレス | |
exists | exists:ドメインスペック | ドメイン名またはホスト名に指定された表記でAレコードルックアップを実施し、該当のAレコードが存在すればマッチする | |
表1 メカニズム一覧 |
モディファイヤ | 文法 | 説明 | |
---|---|---|---|
redirect | redirect=ドメインスペック | ドメインスペックに指定されたドメインでのチェックへ転送する。include:と比較すると、同じ管理化にあるドメインへ定義を集約する場合に使う | |
exp | exp=ドメインスペック | ドメインスペックに指定されたドメインのTXTレコードに、認証できなかった場合の理由の説明として扱われる文字列が含まれている | |
表2 モデファイヤ一覧 |
SPFレコードのサンプル
例えば、自分の扱っているドメインからまったくメールを送信しない場合は、
example.co.jp. IN TXT "v=spf1 -all"
を該当ドメインのTXTレコードに登録する。
MXサーバとして登録されているメールサーバからしかメールを送信する可能性がない場合は、
example.co.jp. IN TXT "v=spf1 mx ~all"
となる。また、IPアドレスで直接指定する場合は、
example.co.jp. IN TXT "v=spf1 +ip4:xxx.xxx.xxx.xxx +ip4:yyy.yyy.yyy.yyy ~all"
となる。
簡単な構成のサイトであれば、あえてSPFのマクロや「include/redirect」などの機能を利用する必要もないだろう。3番目の例のように直接IPアドレスを列記しておく方法が最も簡潔で、システムに対する負担も少ないのではないだろうか。
SPFレコードを作成するときには、すでに公開されているSPFレコードが参考になる。例えば、UNIXのdigコマンドを使って「dig TXT ドメイン名」とすれば、そのドメインのSPFレコードを見ることができる。
また、SPFレコードの自動作成ツールも存在している。自分のドメインに合ったSPFレコードを簡単に作成できるので参考にしてほしい。
【SPF Wizard】
http://spf.pobox.com/wizard.html
【Sender ID Wizard】
http://www.anti-spamtools.org/SenderIDEmailPolicyTool/Default.aspx
Copyright © ITmedia, Inc. All Rights Reserved.