MUAでFromアドレス毎にISPのメールサーバを指定するのが面倒なので、このように利用していたのですがDMARCも普及してきているようなので正しくISPのメールサーバを経由させるように設定変更することにしました。
まあ、なりすましメールと同じなので仕方ないですが、SPFの認証結果は気にはなっていたけど面倒なので長年放置していたと言う感じです。
ちなみに独自ドメインについては一応SPF設定はしてありますが、こちらのアドレスでメールを送信することはほとんどありません。
前置きが長くなりましたが、環境と条件は下記になります。
- CentOS 8.2
- postfix 3.3.1
- Envelope FromがISPのメールアドレスの場合は、ISPのメールサーバを経由する。
- 上記以外のメールアドレスの場合は、直接配送する。
- ISPのメールサーバは、SMTP over SSLで認証(SMTP Auth)ありとする。
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_dependent_transport smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/password_maps smtp_sasl_security_options = noanonymousクライアントサイドのSMTP Auth有効化と、送信者アドレスによるtranspot mapの定義を行っています。
次にsmtp_sasl_password_mapsに指定した/etc/postfix/password_mapsを下記の形式で記述します。
[ISPメールサーバ]:ポート アカウント名:パスワードファイルの作成後、postmapコマンドでハッシュファイルを作成します。
password_maps, password_maps.dbはプレーンなパスワード情報を含むため、rootのみ参照可能に設定します。
例えば、下記のようになります。
# cd /etc/postfix # cat password_maps [mail.example1.com]:465 foo@example1.com:password1 [mail.example2.com]:465 var@example2.com:password2 # # postmap hash:password_maps # chmod og-rxw password_maps*sender_dependent_default_transport_mapsに設定した/etc/postfix/sender_dependent_transportは下記の形式で記述します。
メールアドレス relay-smtps:[ISPメールサーバ]:ポートこちらもファイルの作成後、postmapコマンドでハッシュファイルを作成します。
例えば、下記のようになります。
# cat sender_dependent_transport foo@example1.com relay-smtps:[mail.example1.com]:465 var@example2.com relay-smtps:[mail.example2.com]:465 # # postmap hash:sender_dependent_transportrelay-smtpsサービスを指定しているのがポイントになります。
次に/etc/postfix/master.cfに下記のようにrelay-smtpsサービスを追加します。
relay-smtps unix - - n - - smtp -o smtp_tls_security_level=encrypt -o smtp_tls_wrappermode=yes設定後、postfixを再起動すれば完了です。
これで通常は適宜STARTTLSを使用し直接配送、設定したメールアドレスの場合はSMTPS(SMTP over SSL)を使用し各ISP経由で配送するようになります。
最後にsyslogに下記のメッセージを出し認証に失敗する場合は、SMTP Authの認証メカニズムが不足しているのでSASLのパッケージを追加します。
warning: SASL authentication failure: No worthy mechs found恐らくcyrus-sasl-md5, cyrus-sasl-plainパッケージをインストールすれば解決するはずです。
認証アルゴリズムは、CRAM-MD5, DIGEST-MD5, PLAINがあれば問題ないかと思います。
参考)
Postfix Configuration Parameters: sender_dependent_default_transport_maps
Postfix TLS Support: Sending only mail for a specific destination via SMTPS
0 件のコメント:
コメントを投稿