はじめに
SPF認証(Sender Policy Framework)というのは、メール送信ドメインが偽装されていないかをチェックするための認証技術だそうです。
受信側SMTPサーバーは、受信したメールのヘッダ情報(Envelope-from)に基づいてメール送信元のSMTPサーバーが属するドメインのDNSサーバーからTXTレコード(SPFレコード)を取得します。そして TXTレコード(SPFレコード)に記載されているルールに則り、送信元SMTPサーバーの正当性(IPアドレス等)をチェックします。その結果問題がなければメールの受信または拒否などの処理を行います。
「OCNメールサーバーへのリレー設定」で書いた通り、私の環境では自ドメインからの送信メールをOCNメールサーバーにリレーしています。
その設定の過程でEnvelope-fromをOCNメールサーバードメインに書き換えていますので、Envelope-from情報に基づくSPF認証であれば問題なくpassしてしまいます。(OCNのSMTPサーバーが信頼できる送信元として認証にpassしてくれるためです。)
その意味では今から書くSPF設定は実は不要ですが、引き続く「送信メールが迷惑メール扱いされないための設定 ~DMARC認証編~」では、自分のドメインにおいてSPF認証にpassする環境が整っている必要があります。
そこで今回は “DMARC認証におけるFromヘッダに基づくSPF認証への対応” ということも念頭にして、この時点でSPF設定を済ませておこうと思います。
Postfixの設定の再確認
Envelop-from情報に基づくSPF認証にpassするためのPostfix側の設定は特にありません。
ですが、今後DMARC認証要求に応えていくことを想定して “From: ヘッダー” は正しく設定しておく必要があります。ただ、Postfixのパラメーターがどのように認証に影響してくるのかを色々と調べてみましたが、ネットに溢れる情報が何かと食い違っており、曖昧にしか理解できませんでした。こんな感じでしょうか??
- Postfixの「myhostname」は、SMTP EHLOコマンドで送るホスト名としての役割を持つ。このホスト名は正引き可能であるべきで、正引きできない場合は受信側サーバーの認証ポリシーによって受信拒否されてしまうことがある。ただし、正引きできるかどうかが問題であって、サーバーマシンのIPアドレスと必ずしも一致している必要はない。また、必ずしもMXレコードに設定したホスト名と同じである必要はない。
- Postfixで「myorigin」を正しく指定しておかないと、LAN内からメール送信した場合に送信元メールアドレスの@以降に正しいドメインが付されずDMARC認証にpassしなくなくなるため、正しいドメイン名を指定しておく必要がある。
本当かな? 念のためこれらに従って、Postfixの設定を再確認しておきます。
「お名前.com」のDNSレコード設定
SPFレコードをその記法に従いながらTXTレコード内に記述します。
人によって様々な書き方をしているようですが、要はそのSPFレコードからIPアドレスをちゃんと引き出すことができて、かつそのIPアドレスがドメインの正引きアドレスと一致していればオッケーのようです。
一番シンプルなのは、IPアドレスを直接指定するやり方です。
「v=spf1 ip4:xxx.xxx.xxx.xxx ~all」
でも私は固定IPアドレスを持っていません。「DDNSのIPアドレス自動更新」の投稿記事では変動するIPアドレスに対して都度Aレコードを自動更新する設定を行いましたが、それと同様の方法でTXTレコードを自動更新するには「お名前.com」のDNSサーバーとのソケット通信についてもう少し勉強する必要がありそうです。(いつか試したいところですが、現時点では試していません。)
したがって私の場合はIPアドレスを直接指定する方法は却下です。
次に、MXレコードを利用する方法です。
「v=spf1 mx ~all」
この場合は別途MXレコードを設定しておく必要があります。アドレス検索は2段階になりますが、特別なメンテナンスも不要ですし、私のようにサーバーマシン1台で運用している場合には適しています。
他にも以下のような指定でも良いかもしれません。
「v=spf1 a:hostname.example.com ~all」
これも当然Aレコードの設定が必要になります。
以上の中から、私はMXレコードによる方法を採用しました。
正しく設定できたかを確認する
こちらのチェックサイトにアクセスして確認しました。
自分のドメインを入力して問題点が表示されなければ SPFレコードの設定は成功です。
あとがき
繰り返しになりますが、DMARCに備えるつもりがなく Envelope-fromに基づくSPF認証にだけ対応させるなら、私の場合送信メールをOCNのSMTPサーバーにリレーしているので今回の設定は必要ありません。
Envelope-fromに記述されたOCNドメインがpermitted domainとしてSPF認証をpassしますので、include文でOCNドメインを指定する必要もありません。
コメント