SPFってなんですか?
お仕事でSPFについて確認したのでブログにもメモを置きます。
参考: http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/spf/ 他
SPFについて
- メールの送信元の詐称を防ぐための認証技術
- 他に似た目的で「DomainKeys Identified Mail(DKIM)」、「Sender ID」など
SPFでメールを認証するとは
SMTPでメールを送信するときはメールの送信元に関する下記の3つのドメイン(あるいはドメインのIP)はすべて違っても良いそうです。
- a1. SMTPでメールサーバに接続してメールを送るという意味で、メール(SMTPが動いてるサーバ?)を送り出すサーバのIP
cf. example.jp は 192.0.2.1
- a2. SMTPの
MAIL FROM
コマンドの引数となる送信者のメールアドレスのドメイン(エンベローブに入ってるらしい)cf. MAIL FROM:<sender@exmaple.org>
- a3. 電子メールのヘッダ
cf. FROM: user1@exmaple.com
そうなると、なんだか電子メールのヘッダをちょこちょこといじってメール送信元詐称が簡単にできそうですね。
SPFではメールを受信したサーバが a2 のメールアドレスのドメインのSPFレコードのIPアドレスを見て、a1のサーバから送り出されたメールかどうか確認(認証)します。
SPFでメールを認証する手順
- b1. a2のドメインで利用している権威DNSに、a2のドメインでメールを送り出すときに使うサーバのIPはこれです、とa1のメールサーバのIPアドレスを登録する(SPFレコードの登録)
- b2. a2のドメインのアドレスがエンベローブのFROMには入っているメールを受け取ったメールサーバは、ドメインを見て、DNSに
example.org
のSPFレコードを問い合わせる - b3. b2の問い合わせの結果に、メールの送信元のサーバのIPが含まれていたら認証成功
認証に失敗したらどうなるの?
- SPFレコードの登録がなくて失敗した ... 認証結果: None
- 受け取り拒否にならず、迷惑メールフィルタでフィルタリングされるのに任せる場合が多いが、途中で受け取り拒否になる可能性もある
- SPFレコードの登録があって失敗した ... 認証結果: Fail
RFCにおいてはこの結果に従って通信中のSMTPセッションにおいて該当メールの受信拒否を行う場合、550番エラーの利用を勧めている
とあるので受け取り拒否になる可能性高そう
他にもありますが、参考元をご確認ください。
SPFでメールを送れなくなる理由
メールを送信するメールサーバのIPアドレスが、SMTPのMAIL FROM
コマンドの引数となる送信者のメールアドレスのドメインのSPFレコードに入っていない?