在 Courier IMAP 中禁用 SSLv2

在 Courier IMAP 中禁用 SSLv2

我正在尝试禁用 Linux 上 Courier 中的 SSLv2 支持(以及其他功能)。在 /etc/courier/imapd-ssl 中,我有:

TLS_CIPHER_LIST="HIGH:!MEDIUM:!SSLv2:!LOW:!EXP:!aNULL:!ADH:@STRENGTH:!3DES"
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1

这在 imaps (993/tcp) 上运行良好:

# openssl s_client -connect localhost:995 -ssl2
CONNECTED(00000003)
write:errno=104

但对于 143/tcp 上的 STARTTLS,它似乎仍然允许 SSLv2:

openssl s_client -connect localhost:143 -starttls imap -ssl2
CONNECTED(00000003)

相比之下:

openssl s_client -connect localhost:143 -starttls imap -ssl3
CONNECTED(00000003)
140692334688072:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:339:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 549 bytes and written 7 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol  : SSLv3
Cipher    : 0000
Session-ID: 
Session-ID-ctx: 
Master-Key: 
Key-Arg   : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1492550234
Timeout   : 7200 (sec)
Verify return code: 0 (ok)
---

因此在我看来,在 143 上使用 STARTTLS 时 SSLv2 仍然处于启用状态

答案1

由于 SSLv2 和 SSLv3 已过时多年,而 TLS 是其继任者,现在您可能想要在 courier 中禁用 TLS 1.0 和 TLS 1.1。不要设置TLS_CIPHER_LIST!默认就可以了,它将从您的 openssl 设置中获取设置。

/etc/courier/imapd-ssl集合中

TLS_PROTOCOL="TLSv1.2"

这将允许 TLS 1.2 或更新版本(TLS 1.3 已推出)

TLSv1.2 是否有效取决于您的 openssl 库是否足够新以支持 TLS1.2

要检查它是否有效,请查看结果

openssl s_client -tls1_1 -connect mail.example.org:993

答案2

我刚刚遇到了同样的麻烦,事实证明,如果 courier imapd-ssl 是用 gnutls 构建的,就像在 debian 上一样,那么该TLS_PROTOCOL变量似乎被忽略了。

您可以使用配置禁用协议TLS_PRIORITY,请参阅https://gnutls.org/manual/html_node/Priority-Strings.html有关语法的参考文档。

将其从默认值设置NORMAL:-CTYPE-OPENPGPNORMAL:-CTYPE-OPENPGP:-VERS-TLS1.0:-VERS-TS1.1禁用 TLSv1.0 和 TLSv1.1 协议。

相关内容