SPF(センダー・ポリシー・フレームワーク)は、送信元のメールアドレスが詐称されていないかの正当性を検証する仕組みです。メールサーバを構築するにあたって、 Amazon Route 53 に SPFレコードを登録しました。
SPFの仕組み
SPFの仕組みとしては、DNSサーバに正規のメールサーバのIPアドレスを登録しておき(これをSPFレコードといいます)メールを受け取ったメールサーバはこのSPFレコードを参照し、送信元のメールアドレスが詐称されていないことを確認します。
下の図では、SPFレコードに登録されている正規のメールサーバから送信されたメール(MAIL FROM:sample@apar.jp)は認証OKになりますが、SPFレコードに登録がない迷惑メール送信者のメールサーバから送信されたメールは認証NGとなります。
参考資料:SPF(Sender Policy Framework) : 迷惑メール対策委員会
SPFの仕組みは、メールアドレスをなりすましたフィッシングメール対策には効果がありますが、送信元のメールアドレスを詐称していない迷惑メール対策には効果がありません。
SPFレコードを登録する目的は、ドメインの所有者がそのドメインのメールアドレスを第三者にを詐称されることを防ぐためです。
SPFレコードの書式
今回登録するドメイン名は「apar.jp」メールサーバのIPアドレスは「133.242.156.136」での設定になりますので、ご自分の環境に読替えてください。
DNSサーバへの登録方法は、SPFリソースレコードを使う方法と、TXTリソースレコードを使う方法がありますが、SPFリソースレコードには対応していないDNSサーバも存在するようですので、TXTリソースレコードを使います。
・「apar.jp」ドメインのSPFレコード
apar.jp. IN TXT "v=spf1 ip4:133.242.156.136 -all"
「v=spf1」はお決まりの設定で必ず指定します。続いてメールサーバのIPアドレスを「ip4:」に続けて指定します。複数のメールサーバを指定する場合は、スペースで区切ります。また「ip4:192.0.2.0/24」のようにネットワーク範囲での指定も可能です。
・複数のメールサーバ指定の例
apar.jp. IN TXT "v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.1 ip4:198.51.100.2 -all"
最後の「-all」は指定したメールサーバ以外からのメールを「 絶対に 受信しないでください」という意味です。これを「~all」(チルダall)とすると指定したメールサーバ以外からのメールを「 なるべく 受信しないでください」という意味になります。ただ、受信するか否かを決めるのはメールを受け取ったメールサーバです。
メールサーバのIPアドレスを全て把握できているのであれば「-all」でよさそうですが、大企業になるとそうもいかないので「~all」にしているところが多いようです。
SPFレコードを Amazon Route 53 に登録
下記のSPFレコードを登録します。私が管理しているサーバは1台しかないので「-all」としました。
apar.jp. IN TXT "v=spf1 ip4:133.242.156.136 -all"
AWSのマネジメントコンソールから「Route53」を選択します。
レコードを登録するドメイン名(apar.jp)にチェックを入れ、「Go to Record Set」をクリックします。
SPFレコードの登録です。Nameは空欄、TYPEは「SPF」を選択したくなりますが、必ず「TXT」を選択してください。ValueにSPFレコードを入力し「Create」をクリックします。
最後に確認です。登録したSPFレコードが正しく引けるかを確認します。
$ dig apar.jp txt (省略) ;; ANSWER SECTION: apar.jp. 300 IN TXT "v=spf1 ip4:133.242.156.136 -all"
SPFレコードが正しく引けていることが分かります。
SPFレコードを登録したドメインのメールサーバから、Gmailなどにメールを送信してメールヘッダを見てみると、SPF認証OKを示す「Pass」が確認することができます。
コメント
[…] ります。 SPFについてはこちらを参考にさせていただきました。 ↓ SPFレコードを Amazon Route 53 に登録する | あぱーブログ では、早速DNSの設定をしてみたいと思います。 Amazon Web Service Manag […]