2017年6月17日(世界標準時)、Debianの2年ぶりのメジャーアップデートが発表された。これに伴い、メールサーバをJessie(Debian 8)からStretch(Debian 9)にアップグレードしたのだが、クライアントからのpop3sアクセスができなくなった。この原因と対処を記述する。
クライアントからのpop3sアクセスが失敗した時、dovecotのログには
pop3-login: Fatal: Invalid ssl_protocols setting: Unknown protocol 'SSLv2'
と記録されていた。
これは、/etc/dovecot/conf.d/10-ssl.confに
ssl_protocols = !SSLv2 !SSLv3
の記述があることが原因である。これを以下のように変更すれば、問題は解決する。
ssl_protocols = !SSLv3
SSL3.0は脆弱性の問題で禁止する必要があるのだが、SSL2.0はOpenSSL1.1で既に廃止されているため、敢えて禁止する必要がない。逆に「!SSLv2」の記述があると、何故か、SSL2.0様式の「ClientHello」を受け入れなくなる。この様式の「ClientHello」は多くのメールクライアントで使用されているので(SSL2.0自体を使用しているわけではない)、「!SSLv2」が残っていると接続ができなくなったわけだ。
しかし、本来必要でないはずの「!SSLv2」が、いまだに残っているのはどういうわけなのだろうか?