PostfixのOP25B対策
ここ数日自宅のSMTPサーバからメールが届かないなと思っていたら、最近ISPがOP25Bを始めていたのを忘れていました。
しょうがないので、Postfixのドキュメントを参考にホスティングサービスのメールサーバのサブミッションポート宛にSMTP-AUTHありで中継させることにしました。
だいたいこんな感じの設定を行いました。
/etc/postfix/sasl_passwd ------------------------------- [mail.example.com]:587 username:password
$ postmap hash:/etc/postfix/sasl_passwd
main.cf ------------------------------- relayhost = [mail.example.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_type = dovecot
設定してみたものの以下のようなログが出て動作しないのでドキュメントをよく見てみると、Dovecot-SASLはサーバ側の認証しか対応してないようです。
warning: unsupported SASL client implementation: dovecot
サポートしているSASLの実装 * Cyrus SASLバージョン1 (クライアントおよびサーバ)。 * Cyrus SASLバージョン2 (クライアントおよびサーバ)。 * Dovecotプロトコルバージョン1 (サーバのみ、Postfixバージョン2.3以降)
このためにCyrusをインストールするのもめんどくさいなーと思いつつ、とりあえず設定を元に戻しました。
元に戻したつもりだったのですが、このとき、relayhostの設定を残したままにしてしまいました。SMTP-AUTHを行っていないので当然リレーできないはずですが、なぜかリレーできてしまいました。
考えてみると、fetchmailを使って5分ごとにPOP3でメールを取得しているのを思い出しました。今さら使うことはないと思っていましたが、POP before SMTPが有効になっていたんですね。
あまりきれいな解決策ではないですがとりあえずこのままにしておこうかと思います。
そのほかの策としては、
くらいでしょうか。
SPAM対策は必要だと思いますが、なかなかやりにくい時代になってまいりました。