続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的には危険すぎちゃって、もうやってられないっすわ、って感じ。
解決方法
具体的にはこうすればいい。
$ 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すりゃいいんじゃねーのって話でした。