2007年06月18日

ごく最近のWindows Updateで、Postfix TLSでのSMTP Auth送信がOutlook Expressからできなくなる件

[update] 要はOutlook ExpressがSTARTTLSをちゃんとサポートしてくれたよ、という結論か。

最近のWindows UpdateでOutlook Express周辺のセキュリティ修正が行われたのに関連して、同ユーザーがTLS/SSLなPostfixのSMTP Auth送信を行ったときにタイムアウトしてしまうという問題が発生する。ログ側では「SSL accept error from ...: -1」エラーが出ていた。

これまではmaster.cfで

submission     inet    n       -       n       -       -       smtpd \
           -o smtpd_etrn_restrictions=reject -o smtpd_enforce_tls=no \
           -o smtpd_tls_wrappermode=yes -osmtpd_sasl_auth_enable=yes

main.cfで

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes

という設定にして問題が出ていなかったのだが、SSLかTLS周辺で何か変わったようだ。 ログレベルを上げたりして監視していると、雰囲気的にネゴシエーションがそもそもできず、タイムアウトする感じなので、開始の時点に問題があると推測した。

結論から言えば、smtpd_tls_wrappermode=yes(昔のOutlook Expressではこれじゃないとうまくいかなかった)を外してSTARTTLSを見るようにしたことで再び動作するようになった。broken_sasl_auth_clientsは関係ないようだ。今度は昔のOutlook Expressだとうまくいかない可能性があるのだが、普通はWindows Updateをかけているので問題ないだろう。Becky!ユーザーには送信設定を「over TLS 1.0」から「STARTTLS」に変更してもらうことで対処した。

[update] そもそもwrappermodeをsubmissionでやってるのがおかしいということはそのとおりで、submissionといってもどっちかというとTLSでうまくいかない問題に場当たりで対処するためにsubmissionポートを借りていたというほうが適切か(OE以外のユーザーはいなかったし)。いずれにしてもSTARTTLSをOEがちゃんとサポートされるようになったのはありがたい。