Sender Policy Framework(SPF)の TXT レコードの登録
カテゴリ:DNS
Sender Policy Framework とは
直接 VPS の設定とは関係ありませんが、VPS から特定の MTA に送信した場合、スパムメール対策のために、ホスト名の逆引きチェックや Sender Policy Framework (以下、SPF) のチェックを実施している MTA にメッセージを送れない場合があります。
一般的には一時的な否定応答を示す 400 番台のエラーが返されます。
例えば、Gmail に逆引きのホスト名が一致しない MTA からメールを送信した場合、以下のエラーが返される場合があります。
421, "4.7.0", Our system has detected an unusual rate of unsolicited mail originating from your IP address. To protect our users from spam, mail sent from your IP address has been temporarily blocked. Review our Bulk Email Senders Guidelines.
このメッセージは、Gmail が送信元のIPアドレスを信用できず、スパムなどの詐称メールの可能性があるため受け取りを一時的に拒否している事を示します。
※なお、実際に Gmail がどのようなチェックを実施しているかは正確には分かりません。
対策方法
対策としては、DNS の TXT レコードに SPF の設定を登録します。
使用しているドメインの管理画面から、TXT レコードに以下を登録します。
v=spf1 ip4:xx.xx.xx.xx/nn -all
※ xx.xx.xx.xx は VPS のIPアドレス、nn はサブネットの範囲を10進数(CIDR形式)で指定します。例)本サイトの TXT レコードの場合
v=spf1 ip4:157.7.129.80/24 -all
上記を登録する事で、本サイトのドメインである linux-svr.com が送信者ドメインであるメッセージの配送元は 157.7.129.80/24 のみが正当な送信サーバーであり、信頼できる事、それ以外のサーバーから送信された場合は送信者が詐称されている事を知らせる事になります。SPF は設定が比較的簡単であるため、送信者の詐称対策の方法として現在主流になりつつある技術です。
なお、逆に自分が詐称メールを受け取らないためには、MTA 側での SPF の設定が必要になります。
上記の DNS の設定はあくまで自サーバーから送信したメールが詐称メールとして疑われる場合の対策です。
「-all」と「~all」について
最後に記述している「-all」は、条件に一致しないホストは全て失敗(Fail)させることを意味します。なお、Gmail のガイドラインでは「-all」ではなく「~all」を指定する事を勧めています。
「~all」は(SoftFail)を意味し、もしかしたら登録したホスト以外からも送信する事があるかもしれないことを知らせます。
もし TXT レコードに登録したホスト以外からも送信する事がある場合は、こちらを指定します。
ただし Fail や SoftFail の場合にそのメールをどのように扱うかは、受信側の MTA の設定に依存します。
逆に言えば、「~all」にした場合、MTA の設定によっては、スパムメールなどの、本当に自分のドメインで送信者を詐称されたメールを不特定多数の人に配送する事を許可してしまうことになるかもしれません。
※例えば、SoftFail の場合はヘッダに印を付けて配送するように設定している場合など
そのため、自ドメインからのメールを自分の VPS 以外から送信する事がない場合は、セキュリティ上、「-all」の方を指定したほうが良いかもしれません。
もちろんこの設定はいつでも変更できるので、状況に合わせて設定するのが良いでしょう。
公開日時:2014年10月22日 22:36:53