FreeBSD/PostfixでDKIM対応

これまで20年以上利用していたドメイン業者さんが閉業するということで急遽ドメインを移管することになった。移管自体はわりとすんなり終わり、このサイトへのアクセスやメールの送受信なども普通にできている。しかし、自ドメインからGMailにメールを送信できなくなってしまったようだ。

これまでのメール環境は以下の図の通り。

/static/images/blog/mymailsystem_old.png

自分が管理しているメールサーバからメールを送ろうとするとOP25BでブロックされてしまうのでISPのメールサーバを使っている。GMailはSPFかDKIMの設定がされていないメールは拒否するので、これまではSPFレコードの設定を行っていた。でも新しいドメイン業者ではSPFレコードの設定はできない(Aレコードの内容で固定されてしまう)ようなので、DKIMを設定することにした。

改良後のメール環境は以下の通りとなる。これまではPCのメーラーが直接ISPのサーバにアクセスしていたが、これをLAN側のPostfix経由にし、ISPメールサーバへの認証はPostfixにやってもらうことになる。LAN側にしているのは、ISPサーバのログイン情報を保存する必要があるのでDMZ側のPostfixをこの為に使うのはちょっと怖い、と思ったためだ。

/static/images/blog/mymailsystem_new.png

Postfix-SASLのインストール

上記のようにするためにはPostfixが外部メールサーバに対して認証できるようにする必要があり、そのためにはSASL対応でビルドしたものを使う必要がある。pkgには postfix-sasl という名前で用意されているので、postfixの設定ファイルのバックアップ→postfixのアンインストール→postfix-saslのインストールという手順で作業する。今回やったときは設定ファイルはアンインストール後も保持されており、postfix-saslのインストール後もバックアップから設定ファイルを戻す必要はなかった。

OpenDKIMのインストールと設定

インストール、設定はQiita @Chun3氏のFreeBSD 12 で自宅サーバ作成 メールサーバ編その2を参考にした。ただ、この設定のままでは自分の環境ではメールを送信したときに署名をつけてくれないという問題が起きた。試行錯誤した結果、 opendkim.confInternalHosts refile:/usr/local/etc/mail/trustedhosts という行を追加し、 /usr/local/etc/mail/trustedhosts というファイルを以下のようにして、LAN内のPCからのメール送信にDKIM署名を追加してくれるようになった。

127.0.0.1
192.168.1.0/24 (←LAN内のネットワークアドレスとネットマスクを指定)

Postfixの設定

OpenDKIM関連については前述のQiitaの記事の通り。これに加えてメールリレーの設定を行う。参考にしたのは水銀室の「SMTP-AUTHを使って上位メールサーバへ転送する」という記事。基本的にはFreeBSDの流儀に合わせてパスワードファイルの保存先を /usr/local/etc/postfix にしただけ。

テスト結果

DKIMをチェックしていない宛先に送ってみたところ、DKIM署名がついていることを確認できた。GMailの送信は失敗。送信できたメールのヘッダには「no key for signature」という認証結果が付加されていたのでまだネームサーバの設定変更を検出できていないということだろうか。自宅のネームサーバにdigで確認してみてもまだ反映されていない。

コメント(0)

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


Note

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

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