我正在尝试用运行 Debian Bullseye 和 openvpn 2.5.7 的 openvpn 服务器替换运行 Debian stretch 和 openvpn 2.4.0 的 openvpn 服务器,不幸的是,在旧操作系统上运行 openvpn 2.3 的旧客户端无法连接到新服务器。我现在无法轻松升级这些客户端。客户说(审查)。
Socket Buffers: R=[163840->131072] S=[163840->131072]
UDPv4 link local: [undef]
UDPv4 link remote: [AF_INET]xx.xx.xx.xx:1194
TLS: Initial packet from [AF_INET]xx.xx.xx.xx:1194, sid=xxxxxx xxxxxx
然后它会挂起一段时间,然后报告。
TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS handshake failed
我用谷歌搜索了一下,但很难找到解决方案,我找到了关于数据通道密码的答案,但事情似乎还没有达到建立数据通道的程度。
因此,要获得成功的连接,需要解决两个问题。
首先是旧客户端只支持 tls 1.0,但是 Bullseye 的 openvpn 默认拒绝这个(我相信这个的默认设置与 openssl 库的配置有关)。
tls-version-min 1.0
可以通过放入服务器配置重新启用 tls 1.0 支持。第二个,如https://blog.zs64.net/2021/01/enabling-backwards-compatibility-in-openvpn/所述,是数据通道密码,默认情况下,openvpn 不再支持 2.4 之前的 openvpn 客户端的备用密码. 我发现需要比那里指定的更大的修复。除了设置
data-cipher-fallback
我还必须设置data-ciphers
最后一组额外的服务器端设置是。
在我设置的客户端上。