続Thunderbird 38.1.0でSMTP + STARTTLSで接続エラー発生の件(解決)

はじめに

↓これだめ!
http://nextstageone.g.hatena.ne.jp/satakesatake/20150723

Thunderbird 38.1.0で、SMTP + STARTTLSでメール送信しようとすると接続エラーが発生するというやつ。結論からいうと、Thunderbirdは偉かった。

maillogには"sslv3 alert illegal parameter"が残されており、一見、どマイナーなThunderbirdしょべえwwwwwww m9(^Д^)プギャーwwwwww
なーんて誤解をするような記録が残されるが、実のところ、サーバのセキュリティレベルがお粗末なクソ運用している奴らに喝を入れてくれていたのだ!

sendmail.mcにはconfDH_PARAMETERSがあり、SSLの鍵交換時のディフィー・ヘルマン鍵共有とかいうやつのパラメータを設定できるらしい。

で、デフォルトのsendmail.mcにはconfDH_PARAMETERSなんていう設定は微塵も見当たらなくて、きっと設定されていないからセキュリティ甘々なものが使用されていたのであろう。とにかく、DHパラメータのサイズが768という数字の場合は、ちゃんちゃらおかしくて、Thunderbird的には危険すぎちゃって、もうやってられないっすわ、って感じ。

参考資料: http://blog.trendmicro.co.jp/archives/11482

解決方法

具体的にはこうすればいい。

$ sudo openssl dhparam -out /etc/pki/tls/certs/dh.param 2048

ここでは2048bitとしているが、4096とかいう例もあった。無事にDHパラメータが作成できたら、次はsendmail.mcの編集だ。

define(`confDH_PARAMETERS', `/etc/pki/tls/certs/dh.param')dnl

sendmail.mcのどっかに上記をぶっこんで、m4して、sendmail再起動すれば終わりです。まあ、うちのsendmailは起動スクリプトsendmail.mcをコンパイルしてくれるのが入ってるからservice sendmail restartだけでいいんだけどね。

$ openssl s_client -connect localhost:587 -starttls smtp

もろもろ終わったら、上記の一文でテストできる。どばーと長いテキストの中身はよくわからんが、ダメな場合は、dh なんたらってエラーがでてすぐ止まる。

要するに間違ってもThunderbirdのオプションの設定エディタから、普段いじらねーようなパラメータを変更するようなことはするなってこった。セキュリティ甘々のクソサーバつかってて、サーバ管理者が何にもしやがらねークソ野郎であれば話は別なので、泣きながらabout:configすりゃいいんじゃねーのって話でした。

結論

というわけで、今回の件はThunderbird 38.1.0の仕様です!!!!

エラーが出ていてつながらねーぞコノヤローって場合はThunderbirdを恨むより、サーバ管理者を恨め。

以上