とーますメモ

Ruby on Rails / Goなどの学習メモ

【Postfix】ムームードメインで、送信のみのSPF認証設定をやってみた

Ubuntu16.04にPostfixをインストールし
メール送信テストは、mailutilsパッケージをインストールして行った。

送信のみのSPF認証は、Postfix側は何も触らず
ドメインのDNSレコードを追加するだけで良い。


全体の流れは以下。

1)ドメイン取得

まずは「ムームードメイン」でドメインを取得する。
取得の手順については、他のサイトさんで説明されつくされているので省略。

2)カスタムDNSの設定

手順1

f:id:Thoames1212:20180819062212p:plain

手順2

f:id:Thoames1212:20180819062224p:plain

手順3

f:id:Thoames1212:20180819062236p:plain

以下の設定を行う。
xxx.xxx.xxx.xxxはサーバIP。

サブドメイン:''(空)
種別:TXT
内容:v=spf1 +ip4:xxx.xxx.xxx.xxx -all

SPFレコード(TXT)の書式は以下のとおり

バージョン情報 空白 定義 空白 定義 ……

詳細は以下のサイトの説明がわかりやすい。
Sender ID:送信者側の設定作業 (3/4):送信ドメイン認証技術解説 - @IT
Sender Policy Framework - Wikipedia


定義の書式については、認証について記述する修飾句(クオリファイヤ)と
ホスト情報について記述する修飾句(メカニズム)で主に構成される。

上記の「v=spf1 +ip4:xxx.xxx.xxx.xxx -all」の内容を説明すると、
バージョンにバージョン1である「spf1」を設定し、
「ip4:xxx.xxx.xxx.xxx」のメカニズムに、マッチ後に「認証成功」の結果を返す「+」を設定し
「all」のメカニズムに、マッチ後に「認証失敗」の結果を返す「-」を設定している。
「all」はプログラムで言うelse的な使われ方で、定義の最後で使用される。

ちなみにクオリファイヤを設定しない場合は、デフォルトで[+]が設定される。

MXレコードを既にゾーンに設定していれば、「v=spf1 +mx -all」とするのも可能っぽい。


DNSレコードの変更が、ちゃんと認識されているかは以下のサイトを使用した。
DNS Checker - DNS Check Propagation Tool

あとはテスト送信して見て、受信先のメールのメッセージ情報を見れば
正しく設定されているかが確認できる。


[質問]
TXTレコードの「~all」と「-all」は何が違うの?
SPFの送受信設定