FreeBSD/PostfixでSPF/DKIM認証

前回の投稿は送信側の設定だったが、今回は受信側の設定。

SPF

SPFについてはSPF Engineというのが良さそう。ということで # pkg py39-spf-engine でインストール。SPFは送信元のメールサーバとDNSのSPFレコードとを比較するので、インストール先はDMZのサーバとなる。インストール後に設定用のメッセージが表示されるのでそれに基づいて設定していく。まず、 master.cf に以下の二行を追加する。

policyd-spf  unix  -       n       n       -       0       spawn
  user=nobody argv=/usr/local/bin/policyd-spf

続いて、 main.cf を編集し、以下の行を追加した。

smtpd_recipient_restrictions =
  reject_unauth_destination
  check_policy_service unix:private/policyd-spf
policyd-spf_time_limit = 3600

dmnote.paix.jpの記事を参考に、 /usr/local/etc/python-policyd-spf/policyd-spf.conf/etc/rc.conf を編集し、 pyspf_milter の起動とpostfixの再起動を行う。gmailなどからテストしてみたところ、 Received-SPF ヘッダが追加されたことを確認できた。

DKIM

一方、DKIMのチェックにはopendkimを使うので、送信用としてインストールした自宅サーバ側でやるのが良さそうだ。実のところ、前回のDKIM送信の設定は受信用の設定も兼ねていたようなのだが、受信用としては一箇所設定漏れがあった。具体的にはopendkimはシステムのDNS設定を参照しないため、設定ファイル内でネームサーバを指定する必要があった。したがって、 /usr/local/etc/mail/opendkim.confNameservers ネームサーバのIPアドレス,2番めのネームサーバのIPアドレス という行を追加し[1]、milter-opendkimを再起動した。gmailからメールを送ってみたところ、 Authentication-Results ヘッダが追加されたことを確認できた。なお、 DKIM-Signature ヘッダの無いメールに対しては Authentication-Results ヘッダは追加されないようだ。

メールの振り分け

ヘッダをもとにメールの振り分けを行う。振り分けポリシーとしては以下の通り

  • プロバイダのアカウントから転送されたメールについては、プロバイダのサーバがつけた Authentication-Results ヘッダに基づいて振り分ける。具体的には、SPFとDKIMの双方でアウトだったものを INBOX.プロバイダ.suspect フォルダに保存する。どちらか一方を通過したものは INBOX.プロバイダ フォルダに

  • 自ドメイン宛のメールについては、自サーバがつけた Received-SPF ヘッダと Authentication-Results ヘッダから判断し、双方でアウトだったものを INBOX.suspect フォルダに保存する。

もともとprocmailで振り分けをしているので ~/.procmailrc に以下の行を追加してみた。

:0
* ^Authentication-Results: プロバイダ;.*(spf=pass|dkim=pass)
.プロバイダ/

:0
* ^Authentication-Results: プロバイダ;
.プロバイダ.suspect

:0
* ^Received-SPF: Softfail
* !^Authentication-Results: 自宅サーバ;.*dkim=pass
.suspect/

とりあえずこれで様子を見てみることにする

コメント(0)

コメントを投稿する際はここをクリック


Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。