SPFレコードを Amazon Route 53 に登録する

2014年10月24日  カテゴリー:Linux WEB クラウド  タグ: , , ,
Pocket
LINEで送る

SPF(センダー・ポリシー・フレームワーク)は、送信元のメールアドレスが詐称されていないかの正当性を検証する仕組みです。メールサーバを構築するにあたって、 Amazon Route 53 に SPFレコードを登録しました。

SPFの仕組み

SPFの仕組みとしては、DNSサーバに正規のメールサーバのIPアドレスを登録しておき(これをSPFレコードといいます)メールを受け取ったメールサーバはこのSPFレコードを参照し、送信元のメールアドレスが詐称されていないことを確認します。

下の図では、SPFレコードに登録されている正規のメールサーバから送信されたメール(MAIL FROM:sample@apar.jp)は認証OKになりますが、SPFレコードに登録がない迷惑メール送信者のメールサーバから送信されたメールは認証NGとなります。
SPFの仕組みの図

かなりはしょった説明ですので(^^;) 正確には下記サイトを参照してください。
なりすましメール撲滅に向けたSPF(Sender Policy Framework)導入の手引き | IPA

SPFの仕組みは、メールアドレスをなりすましたフィッシングメール対策には効果がありますが、送信元のメールアドレスを詐称していない迷惑メール対策には効果がありません。

SPFレコードを登録する目的は、ドメインの所有者がそのドメインのメールアドレスを第三者にを詐称されることを防ぐためです。

SPFレコードの書式

今回登録するドメイン名は「apar.jp」メールサーバのIPアドレスは「133.242.156.136」での設定になりますので、ご自分の環境に読替えてください。

DNSサーバへの登録方法は、SPFリソースレコードを使う方法と、TXTリソースレコードを使う方法がありますが、SPFリソースレコードには対応していないDNSサーバも存在するようですので、TXTリソースレコードを使います。

・「apar.jp」ドメインのSPFレコード

「v=spf1」はお決まりの設定で必ず指定します。続いてメールサーバのIPアドレスを「ip4:」に続けて指定します。複数のメールサーバを指定する場合は、スペースで区切ります。また「ip4:192.0.2.0/24」のようにネットワーク範囲での指定も可能です。

・複数のメールサーバ指定の例

最後の「-all」は指定したメールサーバ以外からのメールを「 絶対に 受信しないでください」という意味です。これを「~all」(チルダall)とすると指定したメールサーバ以外からのメールを「 なるべく 受信しないでください」という意味になります。ただ、受信するか否かを決めるのはメールを受け取ったメールサーバです。

メールサーバのIPアドレスを全て把握できているのであれば「-all」でよさそうですが、大企業になるとそうもいかないので「~all」にしているところが多いようです。

SPFレコードを Amazon Route 53 に登録

下記のSPFレコードを登録します。私が管理しているサーバは1台しかないので「-all」としました。

 

AWSのマネジメントコンソールから「Route53」を選択します。
aws-route53-01-min
 

「Hosted Zones」をクリックします。
aws-route53-02-min
 

レコードを登録するドメイン名(apar.jp)にチェックを入れ、「Go to Record Set」をクリックします。
aws-route53-03-min
 

「Create Record Set」をクリックします。
aws-route53-04-min
 

SPFレコードの登録です。Nameは空欄、TYPEは「SPF」を選択したくなりますが、必ず「TXT」を選択してください。ValueにSPFレコードを入力し「Create」をクリックします。
SPF02

 

最後に確認です。登録したSPFレコードが正しく引けるかを確認します。

SPFレコードが正しく引けていることが分かります。

SPFレコードを登録したドメインのメールサーバから、Gmailなどにメールを送信してメールヘッダを見てみると、SPF認証OKを示す「Pass」が確認することができます。
SPF04

スポンサーリンク
Pocket
LINEで送る

SPFレコードを Amazon Route 53 に登録する」への1件のフィードバック

  1. ピンバック: Developer's blog | WordPressから送信されたメールが迷惑メールになってしまう!?の対応方法の一例

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です