SPF, DKIM, DMARCとは何か?DNSで設定、確認、テストする方法

ITで知っておくべき知識
スポンサーリンク

SPF、DKIM、DMARCとは何でしょうか?

まとめてみました。

スポンサーリンク

SPF、DKIM、DMARCとは何か?

SPFとは、Sender Policy Framework(センダー・ポリシー・フレームワーク)の略です。

電子メールにおける送信ドメイン認証のひとつで、差出人のメールアドレスが他のドメインになりすましていないかどうかを検出することができます。

具体的には、送信者メールアドレスのドメインに対して、DNSへ問い合わせてメールサーバーが、そこに登録されているサーバーであるか?をチェックすることで偽装か否かを判断します。

SPFの設定は、DNSにドメインに対して正しいメールサーバーが何かを設定します。

 

 

DKIMとは、DomainKeys Identified Mail (ドメインキー・アイデンティファイド・メール、ドメインキー認証メール) の略です。

DomainKeys Identified Mailとは、電子メールの認証技術です。

DKIMは、署名するMail transfer agentから検証するMTAまで、エンド・ツー・エンドの完全性を提供します。

DKIMは、DNSにドメインに対して正しいメールの公開キーを設定します。

 

 

DMARCとは、 Domain-based Message Authentication, Reporting and Conformanceの略です。

DMARCはメール認証プロトコルです。

DMARCは「送信者なりすまし」や「メール内容の改ざん」といった不正を防ぐ事を目的とした、セキュリティ技術(送信ドメイン認証)の1つです。

SPFおよびDKIMの挙動を補強するために、DMARCが提案されました。

SPFレコードをDNSで設定する方法

SPFレコードは、DNSのTXTレコードで設定します。

 

お名前.com

①  「お名前.com」のサーバ管理画面にアクセスします。
②  ドメイン設定 ⇒ ネームサーバの設定 ⇒ DNS設定 / 転送設定
まで移動します。
③  設定するドメインをチェックし、「次へ」ボタンをクリックします。
④ DNS レコード設定を利用する「設定する」をクリックします。
⑤  【 入力 】の箇所に以下の情報を設定します。

※先に「TYPE」をプルダウンで TXT を選択してください。

TYPE :  TXT
TTL  : そのまま
VALUE : v=spf1 +ip4:送信メールサーバの IP アドレス include:spf.xxx.jp ~all

 

XSERVER (エックスサーバー)

①  エックスサーバーのサーバパネルにログインします。
② 「DNSレコード設定」をクリックします。
③ 「DNSレコードの追加」をクリックします。

ホスト名 : 未記入
種別   : TXT
内容   : v=spf1 ip4:送信メールサーバの IP アドレス include:spf.xxx.jp
優先度  : 未記入

④ 「DNSレコードの追加(確認)」をクリックします。

 

ミックスホスト

① cPanelにログインします。
② ドメイン⇒Zone Editorを開きます。
③ ドメインを選択して、管理を開きます。

SPFもDKIMも入っていました。

 

SPFレコードの確認、チェック、テストする方法

インターネットでSPFレコードの確認、チェック、テストする方法があります。

 

↓SPF Query Tool

https://www.kitterman.com/spf/validate.html

 

 

ここでドメイン名を入力して、「Get SPF Record」を押します。

 

 

以下のように表示されていたら、テストOKです。

evaluating...

SPF record passed validation test with pySPF (Python SPF library)!

 

Python SPF libraryでテストされているようです。

SPFの認証結果

SPFレコードの認証結果として以下のものがあります。

認証結果 意味
None SPFレコードが公開されていない
Neutral SPFレコードが“?”として公開されている条件にマッチした
Pass 認証処理に成功した
Fail SPFレコードが公開されているが、認証に失敗した
SoftFail SPFレコードが“~”として公開されている条件にマッチした
TempError 一時的な障害で認証処理が失敗した
PermError SPFレコードの記述に誤りがあるなどで認証処理に失敗した