原标题:IMAP 与 Dovecot 的连接仅从 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
问题出在哪里?我尝试过的所有其他电子邮件客户端都运行正常,所以这个有点奇怪。
答案1
我要做的第一件事就是更新客户端。
这里发生的是尝试降级协议。也就是说,客户端正在尝试从 TLSv1 降级到 SSLv3,或从任何较高版本的 TLS 降级到较低版本。(具体从日志中看不清楚,需要启用更详细的 OpenSSL 调试,但这个特定细节并不重要。)
协议降级失败的原因是您的服务器启用了协议降级预防(TLS_FALLBACK_SCSV),作为对 POODLE 攻击的缓解。
因此,首先要检查的是确保客户端是最新的;这意味着至少要检查 Thunderbird 及其支持库。
之后我会检查协议列表。我担心你没有明确指定 TLSv1、TLSv1.1 和 TLSv1.2。虽然这不会有什么影响,因为这些应该默认启用,但它可能会有所帮助。
ssl_protocols = TLSv1.2 TLSv1.1 TLSv1 !SSLv3 !SSLv2
最后,极少数情况下,您会发现有人试图攻击您的连接,并且该攻击被阻止。