Überprüfen Sie, ob der OpenVPN-Client mit Debian verbunden ist

7

Wie kann ich überprüfen, ob mein Debian OpenVPN-Client verbunden ist? Gibt es einen bestimmten Befehl, den ich ausführen muss? Oder kann ich es aus der Protokolldatei lesen?

Vielen Dank.

Bearbeiten: Die folgenden Antworten bieten einen hohen Wert beim Debuggen. Ich habe dieselben offenen VPN-Anmeldeinformationen auf zwei verschiedenen Systemen verwendet, was zu Problemen führte.

Hendrik
quelle
Sie möchten auf dem Client überprüfen, ob der Client mit dem VPN verbunden ist? Oder möchten Sie auf dem Server überprüfen, ob der Client mit dem VPN verbunden ist?
Heis Spiter

Antworten:

9

Mir ist nicht klar, ob Sie aus der Sicht eines Clients oder Servers fragen. In jedem Fall sollten Sie unbedingt die Verwaltungsoberfläche Ihres OpenVPN-Daemons mit dieser Konfigurationsoption aktivieren .

management 127.0.0.1 6001

Wenn die Verwaltungsschnittstelle aktiviert ist, können Sie mit Netcat / Telnet eine Verbindung zu einem beliebigen Port herstellen, den Sie für diesen Zweck eingerichtet haben. Dann können Sie den statusBefehl oder viele andere Befehle ausgeben , um genau zu bestimmen, was aus der Sicht der Dämonen vor sich geht.

Zoredache
quelle
3

Es gibt einige Methoden, je nachdem, was genau Sie erreichen möchten. Wenn Sie überprüfen möchten, ob der Client ausgeführt wird und Sie Debians Initscript verwenden, können Sie den folgenden serviceBefehl verwenden:

% sudo service openvpn status mammon; echo $?
 * VPN 'mammon' is running
0

Wenn Sie überprüfen möchten, ob der Client glaubt, mit dem Server verbunden zu sein, können Sie die Routing-Tabelle auf das Vorhandensein des VPN-Subnetzes oder der lokalen Schnittstelle überprüfen:

% ip route | grep -q 10.8.0.1; echo $?
0
% ip link show dev tun0 > /dev/null; echo $?
0

Wenn Sie überprüfen möchten, ob der Client verbunden und der Server erreichbar ist, pingen Sie den Server an:

% ping -c1 -w5 -q 10.8.0.1 > /dev/null; echo $?
0
mgorven
quelle
Woher bekommen Sie das VPN-Subnetz (10.8.0.1)?
Deanresin
3

Während ich denke, dass @mgorven eine gute Antwort bekommt, möchte ich eine andere vorschlagen, die das Problem in eine andere Perspektive bringt.

Wenn Sie /etc/network/interfacesdas Netzwerk konfigurieren, können Sie damit Client-OpenVPN-Tunnel steuern. Es geht so:

  1. Verwenden Sie beispielsweise den benutzerdefinierten Namen des Tunnelgeräts für die OpenVPN- devOption

    dev mytun
    

    in der OpenVPN-Konfigurationsdatei.

    Angenommen, die Konfigurationsdatei lautet

    /etc/openvpn/client.conf
    
  2. Richten Sie einen Eintrag für dieses Gerät in der /etc/network/interfacesDatei wie folgt ein:

    iface mytun inet manual
        pre-up   /etc/init.d/openvpn start client
        pre-down /etc/init.d/openvpn stop  client
    

Nachdem Sie die Einstellungen auf diese Weise vorgenommen haben, können Sie dies jetzt tun

# /sbin/ifup mytun
# /sbin/ifdown mytun

Zurück zur ursprünglichen Frage - ifaceAbschnitte in der Netzwerkkonfigurationsdatei unterstützen auch die post-upAnweisungen, die zum Erstellen von Skripten für die Ereignisse "Tunnel ist bereit" verwendet werden können.

Ein weiterer Ansatz für einen Desktop-Computer könnte darin bestehen, ein visuelles Tool wie TunTun zum Verwalten von OpenVPN-Tunneln zu verwenden.

kostix
quelle
1

In Ubuntu gibt es eine Datei mit dem aktuellen OpenVPN-Status unter /var/run/openvpn.openvpn.status

Es scheint dasselbe zu sein wie die Ausgabe des statusBefehls der Verwaltungsschnittstelle, aber Sie müssen es nicht in OpenVPN aktivieren.

Sie können es in Skripten verarbeiten, dh überprüfen, ob die Zähler im Laufe der Zeit zunehmen.

Timurb
quelle