VPN am Client mit Desktop-Icons starten und stoppen

VPN ON OFF

In meinem Beitrag -> Fernsteuerung und Homeworking mit Ubuntu habe ich die Möglichkeit vorgestellt, auf einem entfernten PC so zu arbeiten, als säße man davor. Voraussetzung dafür ist eine VPN-Verbindung, wobei ich aufgrund der einfachen Installation und Konfiguration -> OpenSSL gewählt habe. Da es hin und wieder Probleme mit dem Gnome-Network-Manager gibt, habe ich aus Gründen der Zuverlässigkeit den Start und Stopp der VPN-Verbindung dem User überlassen, indem ich ihm die Möglichkeit gebe, Open VPN am Client mit Desktop-Icons starten und stoppen zu können.

Im Beitrag -> SSL-VPN mit OpenVPN in Ubuntu 18.04 wird der Start bereits beim Login durchgeführt, was z.B. bei einem fremden (WLAN-)Netzwerk, zu dem man in diesem Moment noch keine Verbindung aufgebaut hat, ein Problem darstellt. Für diese Lösung benötigt man zwei Scripts und zwei Desktop-Icons. Open VPN muss natürlich installiert sein und die Konfigurationsdatei von der Firewall heruntergeladen worden sein.

Die Konfigurationsdatei vpnuser@utm9-fw.ovpn speichere ich im home-Verzeichnis des Users unter /home/testuser/.vpn/ und erstelle die Scriptdatei zum Starten der VPN-Verbindung. Ich verwende hier –daemon, um den Prozess in den Hintergrund zu schieben.

#!/bin/bash
# File vpn.sh (startet die VPN-Verbindung)
echo "Die VPN-Verbindung wird aufgebaut. Bitte warten..."
sudo openvpn --config /home/testuser/.vpn/vpnuser@utm9-fw.ovpn --daemon
sleep 5

Zu beachten ist hier, dass mein testuser eigentlich kein sudo ausführen kann, ohne ein Passwort einzugeben. Das muss ihm explizit erlaubt werden, indem man die Liste der sudoers erweitert. Vertraut man seinem User, kann man anstelle des Pafds zu openvpn auch alle Aktionen von der Eingabe des sudo-Passworts ausnehmen.. Dazu gibt es einen schönen Artikel -> hier.

~$: sudo visudo -f /etc/sudoers.d/custom-users

In diese leere Datei trägt man folgende Zeile ein:

testuser ALL=(ALL) NOPASSWD:/usr/sbin/openvpn,/usr/bin/pkill

Jetzt speichert und und schliesst die Datei. In der zweiten Scriptdatei kille ich den Prozess openvpn einfach, um die VPN-Verbindung zu beenden.

#!/bin/bash
# File vpnkill.sh (stoppt die VPN-Verbindung)
echo "Die VPN-Verbindung wird unterbrochen. Bitte warten…"
sudo pkill openvpn
sleep 5

Die beiden Desktop-Icons erstelle ich aus einer Kopie des Terminals und speichere sie als VPN_ON.desktop und VPN_OFF.desktop in /home/testuser/Desktop (bzw. Schreibtisch in der deutschen Version).

[Desktop Entry]
Name=VPN ON
Comment=Use the command line
TryExec=gnome-terminal
Exec=gnome-terminal --command="/home/testuser/vpn.sh"
Icon=utilities-terminal
Type=Application
X-GNOME-DocPath=gnome-terminal/index.html
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-terminal
X-GNOME-Bugzilla-Component=BugBuddyBugs
X-GNOME-Bugzilla-Version=3.6.2
Categories=GNOME;GTK;Utility;TerminalEmulator;
StartupNotify=true
OnlyShowIn=GNOME;Unity;
Keywords=Run;
Actions=New
X-Ubuntu-Gettext-Domain=gnome-terminal
Name[de_DE]=VPN ON
[Desktop Action New]
Name=New Terminal
Exec=gnome-terminal
OnlyShowIn=Unity
[Desktop Entry]
Name=VPN OFF
Comment=Use the command line
TryExec=gnome-terminal
Exec=gnome-terminal --command="/home/testuser/vpnkill.sh"
Icon=utilities-terminal
Type=Application
X-GNOME-DocPath=gnome-terminal/index.html
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-terminal
X-GNOME-Bugzilla-Component=BugBuddyBugs
X-GNOME-Bugzilla-Version=3.6.2
Categories=GNOME;GTK;Utility;TerminalEmulator;
StartupNotify=true
OnlyShowIn=GNOME;Unity;
Keywords=Run;
Actions=New
X-Ubuntu-Gettext-Domain=gnome-terminal
Name[de_DE]=VPN OFF
[Desktop Action New]
Name=New Terminal
Exec=gnome-terminal
OnlyShowIn=Unity

Die beiden Desktop-Icons müssen beim ersten Start noch als vertrauenswürdig eingestuft werden. Danach lässt sich der VPN-Tunnel bequem durch den User starten und stoppen.

Buy Me a Coffee at ko-fi.com

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Nobody is perfect
Einen Fehler gefunden?
Verbesserungsvorschläge, Lob oder Kritik?
Schreiben Sie mir mit dem -> Kontaktformular
oder per -> E-Mail.
DANKE!
Hier können Sie sicheren Cloudspeicher gewinnen: PCLOUD