web-dev-qa-db-ja.com

サーバー上の複数のドメインにSPFを構成するにはどうすればよいですか? (Gmailを送信者としても許可)

SPF(Sender Policy Framework)は、スパマー/スプーフィングと戦うための良い方法のようです。

ただし、説明を何度か読んでも、正しく構成する方法がよくわかりません。


_a.x.comwww.x.comb.x.comなどをホストするサーバーがc.x.comにあるとします。

また、a.co.ukb.netc.infoなどもあり、それぞれにサブドメインの組み合わせがあり、すべてx.comでホストされています

これらすべてのドメインとサブドメインについて、a.x.comからのメール送信を許可したい

また、Gmailからこれらのすべてのドメインに送信されるメールを許可するようにしてください。

SPFでこれを設定するにはどうすればよいですか?

1つのSPFレコードをx.com(またはa.x.com)に設定してから、他のすべてに対してx.comのレコードへの単純なインクルード/ポインターを設定できますか、それとも別の方法で行う必要がありますか?

誰もが上記の例のいくつかのSPFレコードを提供できますか?


注意: 私の質問の2番目の部分は回答済みです(「v=spf1 include:x.com -all」を使用してx.comのレコードを含める/ポイントします)が、[x.com]に設定する重要な部分は未回答のままです...

9
Peter Boughton

X.com以外のドメインのゾーンファイルを変更する必要を回避することはできませんが、1つのドメインでホストされている一般的なポリシーを定義し、redirect SPFキーワードを他のドメイン。例:

  • x.comドメインのゾーンファイルで:
 _ policy1 IN TXT "v = spf1 a:axcom -all" 
 _ policy2 IN TXT "v = spf1 include :_spf.google.com a:axcom -all "

_spf.google.comは、Gmail SPFレコードを保持するレコードです。文書化されているかどうかはわかりません。理論的にはinclude:gmail.comにする必要がありますが、これは_spf.google.comへのリダイレクトであり、qmailに広く使用されているSPFパッチが少なくとも1つありました。 )もちろん2つのポリシーは例です。エラーが発生しやすいコピー貼り付けの代わりにターゲットドメインのショートネームを変更するだけでよいので、さまざまなレベルの厳格度を持つ複数のポリシーがあるとデバッグ時に非常に役立ちます。

  • 他のドメインのゾーンファイル:
 @ IN TXT "v = spf1 redirect = _policy1.x.com" 

または

 @ IN TXT "v = spf1 redirect = _policy2.x.com" 

などredirectではなくincludeを使用して、SPFチェックで現在評価されているレコードをリダイレクト先のレコードに完全に置き換えます。 includeはそれを行いません-たとえば、includeの最後の-allは評価を停止させません(includeは大きな誤称です)。別のドメインのSPFレコードを「エイリアス化」する場合は、includeを使用しないでください。これは、非常に壊れやすいためです。誤って末尾を忘れると、そのドメインのSPF全体が無効になる可能性があります。

編集:ただし、Gmailのサーバーを送信者として許可する場合は注意が必要です。 Gmailのチャプチャが解読されました。つまり、アカウントのサインアップを自動化することが可能です。つまり、Gmailを(間接的に)オープンリレーとして使用できます(会社のディスカッションフォーラムで、毎週何十ものスパムボットのサインアップリクエストを受け取っています。 gmail.comのメールアドレス-これらのアドレスは公開されており、確認のためにいくつかのアドレスを通過することを許可しています。)さらに、Gmailアカウントを持つユーザーは、ドメインのメールアドレスのuwsernameの部分に精通している場合、SPFチェックをバイパスできます。 。

7

はい。他のすべてのドメインのSPFレコードに、ドメインの1つからの構成を含めることができます。他のドメインのSPFレコードを次のように設定すると、うまくいくはずです。

v=spf1 include:x.com -all
4
womble

http://www.openspf.org/ でWebツールを使用してみましたか?これを扱うのが少し簡単になるかもしれません...

右上のボックスにドメインを入力して、移動ボタンをクリックするだけです。そこから、あなたは物事を急いでセットアップすることができるはずです。

2
Avery Payne

標準 RFC 4408 は、希望するものに非常に近いいくつかの例を提供します。以下は、x.comのゾーンファイルの抜粋です。

 @ IN TXT "v = spf1 a:axcom -all" 
 IN SPF "v = spf1 a:axcom -all" 
 
 www IN TXT "v = spf1 a:axcom -all" 
 IN SPF "v = spf1 a:axcom -all" 

ノート:

  • Gmailのメールサーバーがわからないので追加しませんでした。Gmailの人に聞いてください
  • 「a」は「アドレス」用です(それはではありませんDNS Aレコード、IPv6が含まれます)
  • RFCに従ってSPFレコードを追加しましたが、ほとんどすべての実装でTXTレコードのみを使用しています
2
bortzmeyer

はい、特定のSPFレコードを各ドメインに個別に追加する必要があります。

この理由は、DNSの唯一の(有用な)エイリアスタイプのレコードがCNAMEレコードであるためです。ただし、CNAMEレコードにより、RRset内のRRtypeの[〜#〜] all [〜#〜]に対してエイリアシングが発生します-「CNAME SPFレコードですが、MXレコードではありません "

1
Alnitak