連載
» 2005年10月27日 10時00分 公開

送信ドメイン認証技術解説:Sender ID:送信者側の設定作業 (3/4)

[末政延浩,@IT]

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レコードを簡単に作成できるので参考にしてほしい。

Index

Sender ID:送信者側の設定作業

Page1

IPアドレスベースの送信ドメイン認証

Sender ID、使っても大丈夫?

送信側のベネフィット、受信側のベネフィット


Page2

送信側での準備

チェック対象とされる送信ドメイン

SPFレコードの記述法


Page3

SPFレコードの定義

SPFレコードのサンプル


Page4

SPFレコードを公開する場合の注意点


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。