OpenVPN Dienst bequem aus der Konsole steuern

24 Okt

An meiner Hochschule wird OpenVPN eingesetzt um die W-Lan Verbindungen effektiv zu verschlüsseln. Da ich relativ viel in Linux unterwegs bin, und OpenVPN in diversen Window-Managern (i3, XFCE, KDE) und auf der Konsole nutze, suchte ich eine Möglichkeit, um OpenVPN bequem und sicher starten und stoppen zu können.

Es kommt – zumindest bei mir – häufiger vor, dass ich mit mehr als einem VPN verbunden bin. Ein simples „killall“ zum Terminieren einer einzelnen Verbindung ist in diesem Fall nicht angebracht. Ich erweiterte die OpenVPN Konfigurationen daher zunächst um folgende Zeilen (hier exemplarisch für die Konfiguration der FH):

writepid /var/run/openvpn-fh.pid

Dies erleichtert es zu überprüfen, ob ein Tunnel aufgebaut ist, und welcher Prozess für diesen Zuständig ist. Anschließend kann mit folgendem Script der Tunnel gestartet und gestoppt werden:

 

Die Zeilen 3 und 4 beinhalten die wichtigsten Konfigurationspfade. Die Zeilen 6 bis 9 überprüfen die übergebenen Parameter auf Richtigkeit. Sofern der aufrufende Benutzer keine Root-Rechte hat, versucht der folgende Block (Zeilen 11-14), diese mittels sudo zu erlangen. Die Zeilen 16-27 prüfen, ob der VPN-Prozess bereits läuft. Der Rest des Scripts befasst sich damit, den entsprechenden Prozess bei Bedarf zu starten und zu stoppen.

Das Script liegt unter /usr/local/bin/fhvpn. Damit normale Benutzer VPN-Tunnel auf- und abbauen können, ist folgende Zeile in /etc/sudoers nötig:

et voilá. Nun kann mittels fhvpn start und fhvpn stop das VPN kontrolliert werden. Eine mögliche Verbesserung wäre, den Namen der VPN-Konfiguration als zweiten Parameter entgegenzunehmen. Dem Leser sei diese Aufgabe selbst überlassen.

Noch mehr Automatismus

Es gibt viele Möglichkeiten, um die WLan-Verbindung zu verwalten. Neben händisch Konfigurationen mit wpa-supplicant (besonders interessant ist hier der Bereich Roaming in Kombination mit den üblichen up und down-Scripten) gibt es beispielsweise den häufig installierten Networkmanager oder wicd. Lässt man diese nach erfolgreicher Verbindung den Tunnel automatisch aufbauen, muss in der OpenVPN-Config das Passwort für die Zertifikatsdatei hinterlegt werden. Ich möchte an dieser Stelle ausdrücklich auf die damit verbundenen Sicherheitsrisiken hinweisen, da dass Passwort im Klartext gespeichert werden muss.

Zumindest für wicd ist es zusätzlich nötig, Scipte anzulegen welche ohne Parameter gestartet werden können. Diese sehen z.B. so aus:

Diese Scripte können dann nach einer erfolgreichen Verbindung automatisch gestartet werden.

Have fun!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.