Debian

在 Debian Bullseye 上使用 openvpn 支持老客戶

  • March 22, 2022

我正在嘗試用執行 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

我用Google搜尋了一下,但很難找到解決方案,我找到了關於數據通道密碼的答案,但事情似乎還沒有達到建立數據通道的程度。

因此,要獲得成功的連接,需要解決兩個問題。

首先是舊客戶端只支持 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

最後一組額外的伺服器端設置是。

data-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC
tls-version-min 1.0

在我設置的客戶端上。

cipher AES-256-CBC

引用自:https://unix.stackexchange.com/questions/696435