PostfixでOP25B(Outbound Port 25 Blocking)対策

イーモバイルでインターネット接続しているPCに、VMWare Server 2を導入しLinuxサーバを用意してみた。仮想マシンは、VMNatを使用しホストPCのイーモバイルの回線からインターネットに接続する構成。手元でシェルスクリプトデバッグなんかがすぐにできると便利だなぁとことで作った仮想マシンなのだが、ふと気付くとメール送信ができていない模様。原因を調べたところ、近年広がってきているOP25B(Outbound Port 25 Blocking)をイーモバイルが導入したことが原因と確認。
迷惑メール送信規制 (OP25B) | イーモバイル
※下図は上記サイトより引用

テスト用環境とは言え、メールが送れないのは不便なので今回の対応としては、自宅の契約プロバイダASAHIネットSMTPサーバ(mail.asahi-net.or.jp)を利用させてもらうことにする(※なお、ASAHIネットSMTPサーバはSubmissionポート(587)をサポートしている)。対処としては、上図にもある通り外部のSMTPサーバのSubmissionポートにメールリレーするようローカルのMTAをクライアントとして構成すればよいだけ。私の使っているMTAはpostfixなので、/etc/postfix/main.cf に以下の設定を追加する。


relayhost=[mail.asahi-net.or.jp]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/isp_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain,login,digest-md5,cram-md5
smtp_sasl_mechanism_filter」パラメータで指定したアルゴリズムは、リレーに使用するSMTPサーバにより異なるため、事前に確認しておく(※Submissionポートにtelnetログインし、「EHLO 」で確認できる)。SMTP-AUTHの認証情報を記述するファイルの名前は、今回は「/etc/postfix/isp_passwd 」とした。このファイルには、以下のようにリレーに使用するSMTPサーバへの接続情報を記述する。

[mail.asahi-net.or.jp]:587 USERACCOUNT:PASSWORD
気をつけたいのは、今回のように25 番ポート以外のポートを使用する場合は必ずポート番号まで指定すること。認証ファイルはそのままではPostfixでは使用できない。Postfixで使用するため、postmapコマンドを使用しDB化(hash 化)する。

# postmap /etc/postfix/isp_passwd
あとはpostfixを再起動すればOK。