Ich verwende ein OpenVPN-Setup, bei dem ich mithilfe eines auth-user-pass-verify
Skripts eine benutzerdefinierte Authentifizierung auf dem Server implementiere. Dieses Skript greift auf einen Remote-Server zu, sodass der Vorgang normalerweise 10 bis 40 Sekunden dauert. Zusätzlich habe ich reneg-sec
eine Neuverhandlung alle 30 Minuten konfiguriert.
Das Problem besteht darin, dass die Clientverbindung jedes Mal, wenn die Neuverhandlung beginnt, nicht funktioniert, bis die Neuverhandlung beendet ist. Es ist sehr sinnvoll, die Verbindung bis zu einem konfigurierbaren Timeout bei der Neuverhandlung aufrechtzuerhalten. Ich habe versucht, mir unsere Konfigurationen anzusehen hand-window
, tran-window
die damit in Zusammenhang zu stehen schienen, aber nichts hat geholfen.
Gibt es eine Möglichkeit, die Verbindung während des OpenVPN-Neuverhandlungsprozesses aufrechtzuerhalten?
Antwort1
Versuchen Sie, die auth-gen-token 0
Option zu verwenden. Laut dem Dokument
Mit dieser Option generiert der OpenVPN-Server ein temporäres Authentifizierungstoken und sendet es an den Client. Bei den folgenden Neuverhandlungen übergibt der OpenVPN-Client dieses Token anstelle des Benutzerkennworts. Auf der Serverseite führt der Server die Token-Authentifizierung intern durch und führt KEINE zusätzlichen Authentifizierungen anhand konfigurierter externer Benutzer-/Kennwort-Authentifizierungsmechanismen durch.
Auf diese Weise findet die Neuverhandlung statt, der lange Authentifizierungsprozess wird jedoch nicht aufgerufen, sodass die Verbindung nicht unterbrochen wird.