在尝试设置 openvpn 时,我在网站上偶然发现了这个技巧。它说您可以限制密码列表,以防止降级攻击。我在有 2 台计算机的局域网中测试它,两台计算机都运行带有 OpenVPN 2.3.2 的 kubuntu 14.04。
在 openvpn 服务器上的 server.conf 中,我插入了这一行
tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
通过执行openvpn --show-tls和比较输出,我确信上面一行中的每个密码都是我的 openvpn 版本(在服务器和客户端上)知道的。
但是当我随后启动 openvpnserver 和客户端时,服务器给了我以下输出
Fri Sep 25 12:31:59 2015 "THECLIENTSIP":38749 TLS: Initial packet from [AF_INET]"THECLIENTSIP":38749, sid=d9c33d37 653b2f0e
Fri Sep 25 12:32:00 2015 "THECLIENTSIP":38749 TLS_ERROR: BIO read tls_read_plaintext error: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher
Fri Sep 25 12:32:00 2015 "THECLIENTSIP":38749 TLS Error: TLS object -> incoming plaintext read error
Fri Sep 25 12:32:00 2015 "THECLIENTSIP":38749 TLS …