プロが教える店舗&オフィスのセキュリティ対策術

SPFレコードについて、私のような馬鹿にでも分かるような説明をしてください。

私の認識では成りすましを解消する為に、

送信者→受信者の関係で、
送信者は自分が正しいドメインから送っているということを証明するために、
自分のDNSにドメイン等設定して、受信者は送信者のDNSに問い合わせをして、
そこで正しいドメインと分かったら初めて送信者は受信者にメールを送ることができる。
みたいな感じだと思いました。

設定する側は送信者のみで良いのでしょうか?

また、設定に関してなのですが、調べた結果SPFレコードの設定を行うことだと思いました。
つまりDNSの中にSPFレコード、MXレコードなど設定する場所があるということですか?

SPFレコードの編集の仕方がいまいちサンプルなど掲載されていないので分かりません。
viから編集してるようにも見えません。

ちなみに環境ですが、
apache2
でドメインはDynamic DO!.jp(http://ddo.jp/)
でドメイン登録を行っております。

@ITだと難し過ぎて理解できなかったです。是非、分かり説明期待しております。
よろしくお願いします。

A 回答 (4件)

SPFの場合、


送信側: 送信メールアドレスのホスト名について、DNSサーバに適切なSPFレコードの設定を行う
受信側: SPFレコードの設定確認を行うようにする
と言う形で、受信側・送信側双方に設定が必要です。

(つまり、送信側でSPFレコードを設定しても、受信側で「SPFをチェックする」ようにしていない場合は、
誰かがドメインを騙って送信したメールも、なりすましとは判定できずに、正規のメールと同じような扱いとして受信されてしまうことになります。)

この「SPFレコード」ですが、
送信側のDNSの設定についてですが、実際には、DNSというシステム自体が生まれた時点では「SPF」というものはありませんでしたので、DNSの設定に、「MXレコード」や「Aレコード」と同レベルで「SPFレコード」というものがあるわけではありません。
DNSでは、「TXTレコード」に、SPF情報を記述する、という形になります。
Dynamic DO!.jpでは、TXTレコードの登録はできるようですので、
メール送信にSPFレコードを設定することはできるでしょう。

SPFレコードの具体的記述については、
http://old.openspf.org/wizard.html
このページなんかを使えば簡単に生成できます。

英語ですが、入力すべき内容は以下の通りです。
「Let's set up SPF records for」: 設定したいメールアドレスのドメイン名を入れる(例えば、foobar@abc.example.jp」なら「abc.example.jp」を入力

「a」: 「DNSでAレコードで上述のドメイン名に該当するホスト」を引いたIPアドレスから送られたメールを、正しい送信者として認めるかどうか
「mx」: 「DNSでMXレコードで上述のドメイン名に該当するホスト」を引いたIPアドレスから送られたメールを、正しい送信者として認めるかどうか
「ptr」: IPアドレスを逆引きしたら「DNSでptrレコードで上述のドメイン名に該当するホスト」になるIPアドレスから送られたメールを、正しい送信者として認めるかどうか

「a:」「mx:」「ptr:」: それぞれ「Aレコード」「MXレコード」「PTRレコード」で、入力したホスト名以外のホストを許可する場合は、追加で入力

「include:」: 他のSPFレコードの設定を読み込む場合に指定。(複数のドメインに対して設定を行いたい場合は、includeを使うことで、設定をまとめることができます。)

「~all」: SPFが設定されていないホストからメールが送られてきた場合、正しい送信者ではないとするかどうか(yesの場合、不正な送信者となります。SPFの意義からして、noに設定するのはあまり意味がありません。)


これで生成された文字列を、DNSサーバのTXTレコードに設定すれば、SPFレコードの設定となります。

この回答への補足

分かりやすい回答ありがとうございました。実際に定義する方法まで教えていただいて感謝します。
>Dynamic DO!.jpでは、TXTレコードの登録はできるようですので、

TXTレコードの登録はできるみたいなので、
v=spf1 ip:IPアドレス のような感じでIPアドレスを明示する書き方をしてみようと思います。

登録の仕方ってLinux上でどうにかするのは自分でDNSを使っていて、BINDを使用して登録できる。というプロセスで間違えないでしょうか?

今回ddo.jpなので、
http://old.openspf.org/wizard.html
とかのサイトで登録をしなければいけないのですよね?

上記のサイトでは、Txtレコードを追加できるフィールドがないので、
他の似たようなサイトでTxtレコードを追加できるサイトを探してみればよいのですよね?

補足日時:2010/05/27 19:11
    • good
    • 0

DNSにSPFレコードというものはありません。


SPFでは任意のテキストを記述出来るTXTレコードを
SPFのために勝手に使っています。

> 設定する側は送信者のみで良いのでしょうか?

SPFを正しく使うための設定は送受信両方に必要です。
送信側は自分が正当であることを示す設定をし、
受信側は送信側が正当であることを確認する設定をします。

送信側に必要な設定はDNSのTXTレコードに送信していいサーバーの
IPアドレスなどを記述します。
SPFでは受信側はメールアドレスの@以下のところのTXTレコードを
DNSサーバーに問い合わせ、そこに送信サーバーのIPアドレスが
あれば正しい送信サーバーと判断します。
このTXTレコードの書き方には、
v=spf1 ip:IPアドレス のような感じでIPアドレスを明示する書き方や
v=spf1 a mx のような感じでDNSでAレコードやMXレコードとして
設定されているサーバーが正しいサーバーと示す書き方があります。
なお、aやmxと書かれた場合は、AレコードやMXレコードから対応する
AレコードをDNSに問い合わせ、そのIPアドレスが送信サーバーの
IPアドレスと一致したら正当な送信者から送られたと判断します。
このようにDNSの設定をかなり自由に変更出来る必要があるため、
DDOなど誰かが運用しているDNSサービスを借りている人は
基本的にSPFを設定できません。

BINDを使っていると、named.confから参照している設定ファイルに
こんな感じの設定をします。
| @ IN SOA dns.example.org. root@example.org (
| ..略..
| )
| IN NS dns.example.org.
| IN NS dns2.example.org.
| IN MX 0 mail.example.org.
| IN A 10.0.0.1
| IN TXT "v=spf1 a mx -all"
| mail IN A 10.0.0.1
ばりばりviで編集して設定してますよ。

この回答への補足

受信者側の設定、確かに要りますね!!
自分で普通に携帯から設定したの思い出しました笑
SPFは提唱した方式で、
実際には、送信側のDNS、TXTレコードもしくは、AレコードやMXレコードに任意の方法で記載することでSPF方式を使用しているということでよろしいでしょうか?
あと、BINDっていうのは自分でDNSを設定している人が使用できる機能ということでよろしいでしょうか?

補足日時:2010/05/27 19:05
    • good
    • 0

> TXTレコードの登録はできるみたいなので、


> v=spf1 ip:IPアドレス のような感じでIPアドレスを明示する書き方をしてみようと思います。

DynamicDOというダイナミック DNS サービスを使っているということは、IPアドレスは固定じゃないのでしょうから、IPアドレスを明示してはダメだと思います。
(「"v=spf1 ip:IPアドレス ~all"」みたいなSPFレコードの場合、IPアドレスが変わるたびにSPFレコードのDNSへの登録をやりなおす必要があります)


一番簡単なのは「"v=spf1 a mx ~all"」でしょう。「a」と「mx」をyesにした設定です。
これで、ダイナミックDNSで適宜更新するIPアドレス(DNSのAレコード)が、そのまま送信者として有効なIPアドレスであるという扱いになります。


> 登録の仕方ってLinux上でどうにかするのは自分でDNSを使っていて、BINDを使用して登録できる。というプロセスで間違えないでしょうか?
> http://old.openspf.org/wizard.html

違います。上記サイトは、DNSのTXTレコードに設定する「SPFレコードの記述内容」を生成するサイトです。そこで生成した結果(例えば「"v=spf1 a mx ~all"」といった文字列)を、DynamicDOのDNS管理画面でTXTレコードに設定してください。

この回答への補足

私の場合DynamicDNSを使用しているので、、DynamicDOのDNS管理画面でTXTレコードに設定するんですね。

個人でDNSを立てた場合は、BINDを使ってTXTレコードを直接編集することができるんですよね?

http://old.openspf.org/wizard.html
上記は、SPFレコードの記述内容を生成するサイトと、書いてありましたが、上記サイトを使わず、「"v=spf1 a mx ~all"」とTXTレコードに設定しても取りあえずはOKということでしょうか?

補足日時:2010/05/27 21:27
    • good
    • 0

> 実際には、送信側のDNS、TXTレコードもしくは、AレコードやMXレコードに任意の方法で記載することでSPF方式を使用しているということでよろしいでしょうか?



SPFのために特に記述を追加するのはTXTレコードだけです。
AレコードやMXレコードは通常はSPFを使う前から設定してあると思いますので、これらのレコードを使うようにTXTレコードを設定します。ちなみに、Aレコードはそのドメイン名に対応するIPアドレス、MXレコードはそのドメイン名に対応するメールサーバーのドメイン名を設定します。

> あと、BINDっていうのは自分でDNSを設定している人が使用できる機能ということでよろしいでしょうか?

はい。
BINDというのはDNSサーバーを運営するためのソフトウェアの名前です。
DNSサーバーを運営するためのソフトウェアにはこの他にdjbdns、NSDなどがあります。

> 個人でDNSを立てた場合は、BINDを使ってTXTレコードを直接編集することができるんですよね?

BINDの設定ファイルにTXTレコードを追加して、記述します。
設定ファイルを編集するときはemacsやviなど好きなエディタを使うとよいでしょう。

> http://old.openspf.org/wizard.html
> 上記は、SPFレコードの記述内容を生成するサイトと、書いてありましたが、上記サイトを使わず、「"v=spf1 a mx ~all"」とTXTレコードに設定しても取りあえずはOKということでしょうか?

はい、問題ありません。
というか、上記サイトでTXTレコードを生成してもAレコードとMXレコードにあるものを許し、その他はsoft failとすると同じものが出てきます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!