メルマガの到達率を上げる、DNS SPFレコード設定による「なりすまし」判定回避方

スポンサーリンク



1 概要

本記事では、配信するメルマガの送信元メールアドレスが、
なりすましアドレスと扱われないようにする方法について説明します。

今までdocomoなどの携帯のキャリアメールで受信されなかったメルマガも、
本対策を施せば受信してもらえるようになり
メルマガの到達率が上がるようになります。

メールを送信する際、
受信するサーバーに対して送信元は送信元情報として次の2つの情報を送ります。

  • 送信元のドメイン名
  • 送信元メールアドレス

そのドメインと無関係なメールサーバを利用して
送信元を偽ったメールを送信しようとすると、
受信側でそのことを検出して自動的に受け取りを拒否することができます。

この仕組みをSPF(Sender Policy Framework)といいます。

01_spf
【図参照】

送信ドメインを認証するためのSPFレコードに詳しくなろう

図1-1送信ドメイン認証イメージ


メルマガを配信する場合では、
「メルマガ配信スタンド」と呼ばれる
メールマガジン配信専用のサーバーからメールが送られます。

ここで送信メールアドレスに
あなたのブログやサイトの独自ドメインのメールアドレスに設定をしている場合では、

メールを配信するサーバー : メルマガ配信スタンドのサーバー
送信元のメールアドレス : 独自ドメインのサーバー

とドメインが異なることから、なりすまし判定を受けてしまう、
つまりスパムとして扱われ、
読者にメールが届かないという可能性が高くなってしまっています。

このようなメールを受信するのか、受信拒否するのかは、
メールを受信する側の選択になります。

多くの携帯のキャリアメールは、
デフォルト受信拒否で、利用者が設定で受信できるようになっていますよね。

例えば、

メールを配信するサーバー : example.com
送信元のメールアドレス : freereport@dotiga.jp

といったような場合では、
送信元のメールアドレスからそのドメインは@マーク以降の「dotiga.jp」ですが、
実際メールを送っているサーバーは「example.com」ということから
ドメインが異なります。

ここで、
これら異なるサーバーの情報を紐付けるために活躍するのが
SPFレコード」というわけです。


2 SPFレコードの概要

2.1 SPFレコードとは

SPFレコードとは、
ドメインの管理者がTXTレコードとして作成する短いテキストデータです。

このTXTレコードは、
他のレコード(A、PTR、MXなど)と一緒に、DNSサーバーに登録します。

たとえば次のようなものです。



2.2 SPFレコードの問い合わせタイミング

SPFレコードは、
そのドメインからのメール送信を許可されているのは、
どういったサーバーなのかを受信サーバーに伝える役目を担います。

通常、SMTPの一連の通信手順のうち、
メール本文を送信する前の段階で問い合わせられます。

詳しい手順については、本記事の趣旨からはずれてしまいますので省略します。


2.3 SPFレコードを形作るもの

本節の内容は専門的になりますので、読み飛ばされてかまいません。

実際に設定すべき内容については、3 SPFレコードの設定で示します。

SPFレコードは様々な機構(mechanism)の組み合わせによって出来ています。
機構は、左側に書かれているものから順番に評価されます。

include

include機構は、ドメイン名を引数とします。
include先ドメインのSPFレコードで認証処理が通るならば、認証を通します。

include先でさらにinclude機構があった場合は、再帰的に評価します。



a

a機構は、ドメイン名を引数とします。

送信サーバのIPアドレスが、
与えられたドメインのAレコードもしくはAAAAレコードで解決されるならば、
認証を通します。



mx

mx機構は、ドメイン名を引数とします。

送信サーバのIPアドレスが、
与えられたドメインのMXレコードで解決されるならば、認証を通します。



ip4, ip6

ip4機構ip6機構は、IPアドレスを引数とします。

CIDR記法によるブロック指定(例 192.168.0.0/16)も可能です。
送信サーバのIPアドレスが、与えられたIPアドレスに含まれるならば、
認証を通します。



ptr

ptr機構は使わないようにしましょう。

いくつかの技術的な理由によりエラーとなってしまう場合があり、
名前解決のために受信サーバのメモリと帯域を多く消費します。

受信サーバによっては、
ptr機構が含まれているだけで、認証を弾いてしまう場合もあります。



all

all機構は、引数を取らず常に認証を通します。

SPFレコードの末尾で使うのが一般的です。
たとえば認証結果を失敗にする検証子(qualifier)と組みあわせた「~all」は、
「これまでの機構によって認証が通らなかったIPアドレスは、
全て認証失敗する」ことを意味します。



redirect

redirectは、正確には機構ではなく変更子(modifier)です。

redirect先ドメインのSPFレコードを使って認証処理を行います。
redirect変更子を利用するならば、他の機構は使わないようにしましょう。

redirect変更子を使ったシンプルな例は次のとおりです。




機構のうちinclude、a、mx、ptr、exists、redirectは、
DNSの問い合わせを要求するため、
一つのSPFレコード内での使用は10回以下に制限されています。

なおinclude機構は再帰的に評価されるため、
たとえばinclude先のSPFレコードが
さらに2つのinclude機構を含んでいたならば、3回として数えます。


3 SPFレコードの設定

3.1 設定に必要な情報

わたしの利用している「オレンジメール」、
そして比較的利用者の多いと思われる「エキスパートメールクラウド」と
アスメル」とで設定例を示します。

その他のメルマガ配信スタンドにつては、
それぞれのサポートページでご確認いただくか、
サポートに問い合わせすれば設定値を教えてもらえます。

実際に、「オレンジメール」の場合は
サポートページにSPFレコードの設定情報がありませんでしたので
サポートに問い合わせしました。

なお、メルマガ配信スタンドによっては無料の代行設定サービスがありますので、
ご自分で設定が困難な方はそちらを利用されると良いでしょう。

メルマガ配信におけるSPFレコード作成に必要な情報は、次の2つになります。

① メルマガ配信スタンドメール送信サーバーのIPアドレス(ホスト名置き換え可)

② 配信元メールアドレスのドメインIPアドレス
(独自ドメインから直接メルマガを配信しない場合は不要)



3.2 SPFレコードのフォーマット

「オレンジメール」、「エキスパートメールクラウド」、「アスメル」3社とも
下に示すフォーマットで設定します(たった、これだけです)。

ただし、複数のメルマガ配信スタンドに対して設定する場合は、
この限りではありません(1行に複数のinclude機構を記述します)。

20_spf


(1)メルマガ配信スタンドメール送信サーバーのIPアドレス

表3.2-1に各メルマガ配信スタンドメール送信サーバーのIPアドレスを示します。

表3.2-1 メルマガ配信スタンドメール送信サーバーのIPアドレス
21_spf


(2)独自ドメインのIPアドレス

独自ドメインから直接メルマガを配信しない場合は、
独自ドメインIPアドレス設定は不要です。

独自ドメインのIPアドレス確認方法をX2サーバーの場合で示します。
他のレンタルサーバーの場合は、それぞれのサポートページでご確認ください。

まず、「サーバー管理ツール」にログインします。
そして「サーバー情報」を選択します。

40_dns
図3.2-1 X2サーバー管理ツール



表示される「サーバー基本情報」中に、
独自ドメインのIPアドレスが表示されています。

41_spf
図3.2-2 サーバー基本情報


(3)SPFレコードの設定例

独自ドメインからもメルマガを配信する場合

「br num=”2″]
独自ドメインからメルマガを配信しない場合



3.3 SPFレコードをDNSサーバーに設定する

SPFレコードは、DNSサーバーに設定します。

以下にX2サーバーの場合での設定を示します。

ⅰ) まず、「サーバー管理ツール」にログインし、「DNS設定」を選択します。

42_spf
図3.3-1 X2サーバー管理ツール



ⅱ) 複数のドメインがある場合には、SPFレコードを設定するドメインを選択します。

05_spf

図3.3-2 対象ドメイン選択



ⅲ) 現在設定されているDNSレコードが表示されます。
DNSレコード一覧」で、既にSPFレコードがあるかないかを事前に確認します。

既にSPFレコードがある場合には、それに対して編集する必要があります。

43_spf
図3.3-3 DNSレコード一覧



ⅳ)DNSレコード追加」タブを選択すると、表示が図3.3-4に示すようになります。

44_spf
図3.3-4 DNSレコード追加

以下のように入力します。

の「ホスト名」はそのまま(空欄)
のタイプは、「TXT」を選択。
の内容に、
3.13.2節で見てきた設定内容を記述します。
の優先度はそのまま


ⅴ) 図3.3-4において「DNSレコードの追加(確認)」をクリックすると、
図3.3-5に示すように追加レコードの確認画面が表示されます。

問題がなければ、「DNSレコードの追加(確認)」をクリックします。


45_spf
図3.3-5 DNSレコード追加確認



ⅵ) DNSレコードが追加されれば、図3.3-6のように表示されます。


46_spf図3.3-6 DNSレコード一覧(新規レコード追加後)



3.4 SPFレコードの複数設定はNG

メルマガ配信スタンドを複数使われている方もいらっしゃるでしょう。
そういう方は、
全てのメルマガ配信スタンドに対してSPFレコードを設定したいと思われるでしょう。

その場合は、下に示すよう1行内に複数のinclude機構を記述します。

SPFレコードの設定は、1つしかできません。

SPFレコードが複数設定されている場合はエラーとなり、
折角設定したSPFが機能しないことになります。

SPFレコードの詳細については、下に示すページをご参照ください。

SPF(Sender Policy Framework)
http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/spf/

間違いから学ぶSPFレコードの正しい書き方
http://salt.iajapan.org/wpmu/anti_spam/admin/operation/information/spf_i01/

3.5 SPFレコードのチェック

SPFレコードを間違って設定した場合でも
直ちに受信拒否などの影響が出るわけではありませんので、
間違いに気付かない場合が多いようです。

そこで、公開したSPFレコードが正しいかどうかをまずチェックすることをお勧めします。

SPFレコードによる認証結果を返す無料サービスが
いろいろ存在しますので、以下にご紹介します。

MX Lookup
http://mxtoolbox.com/SuperTool.aspx

SPF Record Testing Tools
http://www.kitterman.com/spf/validate.html

Beveridge Hosting – SPF Test
http://tools.bevhost.com/spf/

Sender Policy Framework : Tools
http://www.openspf.org/Tools




【SPF Record Testing Toolsでの確認例】
「SPF Record Testing Tools」でのSPFレコードチェックの例を示します。

30_spf
図3.5-1 SPFレコードテスト

表3.5-1 「SPF Record Testing Tools」でのテスト入力値
31_spf


SPFレコードが正しく編集されていれば、図3.5-2示すように、

PASS sender SPF authorized

の文言が表示されます。

32_spf
図3.5-2 SPFレコードに問題が無い時の結果表示


ちなみに、SPFレコードが正しく編集されていない場合、図3.5-3に示すように

softfail domain owner discourages use of this host

などと表示されます。

33_spf
図3.5-3 SPFレコードに問題が有った時の結果表示



【参考図書】

改訂新版 BIND9によるDNSサーバ構築 (エッセンシャルソフトウェアガイドブック)
川原 龍人 伊藤 宏通 野津 新
技術評論社
売り上げランキング: 482,776


CentOS 7で作る ネットワークサーバ構築ガイド
秀和システム (2016-01-25)
売り上げランキング: 8,571

以上





スポンサーリンク



スポンサーリンク

コメントを残す

このページの先頭へ

Top