Postfixのサブミッションポートへの対応

スパムメール対策のために、Outbound Port 25 Blockingを施したメールサーバーに適合する。

前提

  • Postfixは既にセットアップ出来ており、相手サーバーが許せば、25番ポートでのメールの送受信は可能であるとする。
  • Postfixは、サテライトシステムとして、構成・運用されている。

リレーサーバーの設定を確認

サーバーの認証ID・パスワードは「ユーザーID\0ユーザーID\0パスワード」をbase64エンコードしたものを使用する。リレーサーバーの確認のみに使用する。

perl -MMIME::Base64 -e 'print encode_base64("USER\0USER\0PASSWORD")';

で表示されたものを使用する。

認証の確認を行う。

telnet メールサーバー名 587

認証方式によっては以下の手法は使用できない。

Postfixの設定を行う。

/etc/postfix/main.cf を編集する。

relayhost = [リレー担当メールサーバー名]:587
smtpd_sasl_auth_enable = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/isp_mailpasswd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

[]で囲むこと。

認証方式を定義する。/etc/postfix/sasl/smtpd.conf を編集する。

pwcheck_method: authdaemond
authdaemond_path: /var/run/courier/authdaemon/socket
mech_list: plain login

ユーザー認証技術「SMTP AUTH」(SMTP authentication)認証用のパスワードファイルを作成する。

/etc/postfix/isp_mailpasswd ファイルを作成する。

[リレー担当メールサーバー名]:587 ID:パスワード

パスワードファイルをhash 型式のバークレイ DB型にする。

postmap hash:/etc/postfix/isp_mailpasswd

※LDAPサーバーを参照する場合には、hashに変わってldapを指定する。

iptables等のファイアーウォールの設定を行っている場合には、587ポートを開ける。

GMailをリレーサーバーとする

上記設定に加えて

vi /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous

上記/etc/postfix/isp_mailpasswd ファイルを作成する。GMailを例とすると、

[smtp.gmail.com]:587 ID:パスワード

とする。