開発マシンでのOP25B対策

突然、メールの送信が出来なくなっている事に気が付いた。インターネットとの接続は、メールの送信以外正常だ。

きっと25番ポートのみブロックされている。テストで不正なメール(バグでFromが空白だとか)をたくさん送信したからだろうか?

とにかく、夜中なのでプロバイダに連絡が取れない。

翌朝、プロバイダに問い合わせたところ、OP25Bが実施されたとの事。ホームページ上に記述があるとの事だが、小さく書いてあるだけだった。予定もアバウトに「6月1日から随時実施します。」と書いてあるだけだった。散々苦情を言わせてもらった。

翌日にはホームページがわかりやすく修正してあった。ご苦労さん。

肝心の対応だが、以下にまとめておく。

メーラーの設定

あきらはYahoo!のフリーメールと、レンタルサーバのメールしか使っていない。プロバイダとはメールアドレスを契約していない。

無駄だからだ。

このために対応が必要になったが、いたって簡単。送信サーバーのポートを 587 に変更すればいい。

これについては、ネットですぐ検索できる。

開発環境(PHPからのメール送信)の設定

ネットで OP25B 対策を検索しても、自宅サーバの例はあっても、開発環境の例が見つからない。

これはなかなか解らなかった。かなり試行錯誤した。

とにかく、メーラーと同じ動作をMTAにさせればいいはず。
とはいうものの、MTAの設定は専門外なので、取り合えず PEAR の Mail + Net_SMTP で代用していた。
しかし、本番環境のレンタルサーバに PEAR をインストールするのが面倒だ。
さらに、開発用と本番用のソースを別管理するのも好ましくない。

となると、やはりMTAでの対応が良さそうだ。

sendmailの設定は懲りているので、Postfixを使う事にした。
Postfixの場合、柔軟に対応できそうだ。

Fedora Core の場合、alternatives で メールソフトや Java 環境を切り替えるようになっているので注意が必要だ。

その他、パッケージ cyrus-sasl-plain が必要らしい。これはすでにインストールされていた。

# yum -y install postfix
# alternatives --config mta
--- Postfix を選択 ---
# service sendmail stop
# chkconfig sendmail off
# service postfix start
# chkconfig postfix on

メールアカウントをテーブルにしておく。
/etc/postfix/account を作成。

# vi /etc/postfix/account
メールサーバ アカウント:パスワード
# postmap /etc/postfix/account

ここからが苦労した所!
ローカル開発環境なので、ドメイン設定などはしていない。
PHP->Apacheでメールを送信すると apache@localhost.localdomain が送信したことになる。
これをメールアカウントに置き換える。
/etc/postfix/canonical に一行追加。

# vi /etc/postfix/canonical
apache@localhost.localdomain アカウント@メールサーバ
# postmap /etc/postfix/canonical

Postfixでポート 587 を有効にする。
/etc/postfix/master.cf の以下の行のコメントを取る。

# vi /etc/postfix/master.cf
submission inet n      -       n       -       -       smtpd
-o smtpd_etrn_restrictions=reject
-o smtpd_client_restrictions=permit_sasl_authenticated,reject

あとはPostfixの設定を追加・変更して再起動する。
/etc/postfix/main.cf 該当個所。

# vi /etc/postfix/main.cf
relayhost = [メールサーバ]:587
smtpd_sasl_auth_enabled = yes
broken_sasl_auth_clients = yes
smtpd_sasl_password_maps = hash:/etc/postfix/account
smtpd_sasl_security_options = noanonymous
smtpd_sasl_mechanism_filter = cram-md5,plain,login
sender_canonical_maps = hash:/etc/postfix/canonical
# service postfix restart

今のところ、順調に動いている。

くれぐれも SPAMメールに悪用しないでください!

2件のコメント

  1. この記事とても助かりました。

    私もMTAの設定は苦手で。。。

    簡単ですが、お礼まで。

  2. OP25Bの存在を知らなかったので、Postfixの設定で試行錯誤してました。

    参考になりました。

    どうもありがとうございます!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください