spfレコード覚え書き
社内のサービスでメール配信したいからspfレコード書きたいんだけどという相談が来た。
そういう話は2回目だったのにあんまり覚えてなかったので、もう忘れないようにメモ
spfって?
このドメインのメールはこのMTAから送られてますよっていうのを明示的に示して、ここからのメールは大丈夫ですよという保証をしてあげる。送信元偽装対策とかかな。
このSPFをどう扱うかは、メールを受け取る側次第。
実例から見ていく
gmailとかどうしてんの?
hogehoge@gmail.comとかのメールアドレスだから、
gmail.comについてspfを調べていく。
$ dig gmail.com txt ;; ANSWER SECTION: gmail.com. 300 IN TXT "v=spf1 redirect=_spf.google.com"
gmailでは_spf.google.comのspfを使いますよってのを、redirectで指定してるみたい。
じゃ、_spf.google.comはどうなってんのか。
$ dig _spf.google.com txt ;; ANSWER SECTION: _spf.google.com. 300 IN TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com -all"
いろんなドメインのspfの設定をincludeしてるね。
includeしてる一つを見てみよう。
$ dig _netblocks.google.com txt ;; ANSWER SECTION: _netblocks.google.com. 3600 IN TXT "v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ip4:173.194.0.0/16 -all"
ようやくそれっぽい記述が出てきた。
説明していく。
v=spf1の部分
v=spf1ってのはSPFで定義されているSPFレコードを使いますよって宣言。
Sender IDのSPFレコードを使いたいなら
hogehoge.com. IN TXT "spf2.0/pra hogehoge -all"
みたいに書いていく。
ip4:216.239.32.0/19 -allの部分
見たらなんとなくわかるけど、ここのレンジから送られてますよっていう記述。
allってのは、ここからが全てという意味。
IP以外にも
hogehoge.com. IN TXT "v=spf1 a:mx.hogehgoe.com -all" <-Aレコード指定 hogehoge.com. IN TXT "v=spf1 mx -all" <-hogehoge.comのMXレコード指定
みたいな指定が出来るんすなー
ちななみに、なんかgmail.comのspfはいっぱいincludeしてんなーってのは、そもそもTXTレコードが255文字までしか記入できないから。
まとめ
なんか分かりにくい気がする。
ブログ力的な問題
ちなみに
http://www.sendmail.co.jp/sa/spfcheck.html
ここからspfのチェックが出来るよ。
送信アドレスと、MTAを入れてみてspfの記述と一致してるか調べてみてね。
今回の記事で言うと、
gmail.comのメールアドレスに対して
216.239.32.100のメール送信サーバーで通るよ。
実際にブログを書くために色々と調べていこうとしたのだが、
wikiのページがまとまり過ぎててブログとか今更書く必要ね~じゃん、となった。
http://ja.wikipedia.org/wiki/Sender_Policy_Framework