OP25B 対策で Postfix を SMTP クライアントとして SASL 認証する(Biglobe)
概要
そもそも OP25B(Outbound Port25 Blocking) ってのはなんなのか??をざっくり説明すると
25番ポートから出て行くメールは必ず ISP の SMTP サーバを通過しないと駄目だという決まり。
これは ISP によって対応してたりしてなかったりする。
詳細はここを見て下さい。
各 ISP 対応一覧で自分が使ってる ISP の状況を確認しとけば大丈夫。
不運にも該当した方は自宅メールサーバーから外へむけて(会社, gmail, hotmail等)にむけてメールを送信することができません。
ただし同一 ISP 間の場合はメール送信ができました。
以下に設定のやり方を書いてきます。
家の ISP が Biglobe のため Biglobe 以外はわかりません。あしからず。
設定
まず、Postfix の設定はすんでいることが前提です。
することは大きくわけて3つあります。
1. Biglobe 中継用の SMTP サーバの取得
2.postfix の設定
3.SASL 認証用の passwd ファイル作成
を順番にしていきます。
Biglobe 中継用の SMTP サーバの取得
ここにいき利用申込をします。
これはすぐに発行してもらえるため時間はくいません。
ここで発行してもらった SMTP サーバとポートは重要なのでメモなり、印刷することをオススメします。
postfix の設定
発行してもらった SMTP サーバを Postfx の relayhost に設定します。
あと、SASL(Simple Authentication and Security Layer) 認証の設定です。
説明のため、
SMTP サーバー((1)で入手したやつ)を hoge.biglobe.ne.jp メールアドレス(Biglobe から発行されたやつ)を fuga@xxx.biglobe.ne.jp パスワード(Biglobe から発行されたやつ)を foo
とします。
#メール送信時に Biglobe の SMTP サーバーにむけて送信 relayhost = [hoge.biglobe.ne.jp]:25 #SASL 認証の設定 smtp_sasl_type = cyrus smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options =
SASL 認証用の passwd ファイル作成
#/etc/postfix/sasl_passwd [hoge.biglobe.ne.jp]:25 fuga@xxx.biglobe.ne.jp:foo
上記のように認証用のファイルを作成し、それを Postfix に指定させればよい。
パーミッションは root で 600 にしておく。
postmap /etc/postfix/sasl_passwd
これで /etc/postfix/sasl_passwd.db ってのができればおk。
あとは再起動をすればメール送信ができるようになってます。
送信時のError Code
530 Need AUTH before MAIL (in reply to MAIL FROM command)
メール送信時に中継サーバに対してSASL認証をしてい。/etc/postfix/main.cf の設定に問題がありそう。
500 authentication failed
中継サーバの認証に失敗してる。/etc/postfix/sasl_passwd あたりが問題ありそう。
参考文献
SASL(シンプル認証とセキュリティ層)(Simple Authentication and Security Layer (SASL))
Postfix+SMTP-AUTHでメールをプロバイダに中継
OP25B(Outbound Port 25 Blocking)対策