たまごかける日報

ここにAA貼りたい

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 IDSPFレコードを使いたいなら

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