web-dev-qa-db-ja.com

DovecotへのIMAP TLS接続が失敗する

元のタイトル:DovecotへのIMAP接続はThunderbirdからのみ失敗します

ポート993でDovecotにSSL(TLS)を設定しました。Outlook、PHP SMTPおよびAndroid Mailに接続できますが、Thunderbirdが接続しません。Configuration could not be verified - is the username or password wrong?。 Dovecotエラーログはこれを示します:

Jan 05 22:41:45 imap-login: Warning: SSL: where=0x10, ret=1: before/accept initialization [1.2.3.4]
Jan 05 22:41:45 imap-login: Warning: SSL: where=0x2001, ret=1: before/accept initialization [1.2.3.4]
Jan 05 22:41:45 imap-login: Warning: SSL alert: where=0x4008, ret=598: fatal unknown [1.2.3.4]
Jan 05 22:41:45 imap-login: Warning: SSL: where=0x2002, ret=-1: SSLv3 read client hello C [1.2.3.4]
Jan 05 22:41:45 imap-login: Warning: SSL: where=0x2002, ret=-1: SSLv3 read client hello C [1.2.3.4]
Jan 05 22:41:45 imap-login: Info: Disconnected (no auth attempts in 0 secs): user=<>, rip=1.2.3.4, lip=4.5.6.7, TLS handshaking: SSL_accept() failed: error:140A1175:SSL routines:SSL_BYTES_TO_CIPHER_LIST:inappropriate fallback, session=<yDs4Z48DudCBhYne>

10-ssl.confでSSLv2とSSLv3を無効にしました:

ssl_protocols = !SSLv2 !SSLv3
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL

問題は何でしょうか?私が試した他のすべての電子メールクライアントで正常に動作します。そのため、これは少し奇妙です。

3
Friend of Kim

私が最初にすることはクライアントを更新するになるでしょう。

ここで起こっているのは、試みられたプロトコルのダウングレードです。つまり、クライアントはTLSv1からSSLv3に、またはTLSの上位バージョンから下位バージョンにダウングレードしようとしています。 (ログからは明確ではなく、詳細なOpenSSLデバッグを有効にする必要がありますが、その特定の詳細は実際には関係ありません。)

プロトコルダウングレードが失敗する理由は、サーバーがPOODLE攻撃の緩和策としてプロトコルダウングレード防止(TLS_FALLBACK_SCSV)を有効にしているためです。

したがって、最初に確認することは、クライアントが最新であることを確認することです。これは、少なくともThunderbirdとそのサポートライブラリを意味します。

その後、プロトコルリストを確認します。 TLSv1、TLSv1.1、TLSv1.2を明示的に指定していなかったのではないかと心配です。これは違いをもたらさないはずですが、これらはデフォルトで有効になっているはずなので、役立つかもしれません。

ssl_protocols = TLSv1.2 TLSv1.1 TLSv1 !SSLv3 !SSLv2

最後に、接続を攻撃しようとする誰かを捕まえ、攻撃が阻止されたというまれな可能性があります。

6
Michael Hampton