SSL-VPN mit OpenVPN in Ubuntu 18.04

OpenVPN Konfiguration

Auch Ubuntu 18.04 liefert nur das veraltete und unsichere PPTP-Protokoll ‚out of the box‘ mit. Dabei sind die Sicherheitslücken schon seit Jahren bekannt, aber die Einrichtung von PPTP ist halt sehr bequem. Bei heise.de findet sich dazu der unterhaltsame Artikel -> Der Todesstoß für PPTP. Wer also auf Nummer Sicher gehen will und Wert auf einen sicheren VPN-Tunnel legt muss muss z.B. OpenVPN nachinstallieren.

Warum OpenVPN und nicht IPSec?

Der entscheidende Vorteil gegenüber IPSec ist die wesentlich einfachere Konfiguation der Clients. OpenVPN eignet sich dabei nicht nur für End-to-Site-VPNs, sondern ebenso für Site-to-Site-VPNs. Zudem bieten die meisten professionellen Firewalls vorgefertigte Konfigurationsdateien für die Clients an, die auch die notwendigen Zertifikate enthalten.
Gerade unter den Linuxderivaten ist die Installation von IPSec oder L2TP over IPSec durchaus kompliziert und setzt einiges an Fachwissen über Routing, Verschlüsselungstechnik und Protokolle vorraus.

Firewall vorbereiten

Ich habe die Konfiguration auf einer Sophos UTM 9 durchgeführt, so dass man für andere Produkte in den Handbüchern der jeweiligen Hersteller nachschlagen muss. Das Prinzip ist jedoch immer ähnlich.
Betreibt man einen eigenen VPN-Server, hilft die -> Ubuntu Documentaion bei der Konfiguration der Serverseite.

Zunächst legt man, falls noch nicht geschehen, auf der Firewall den Benutzer an. Die Art der Authentifizierung (keine/lokal/entfernd) hängt von der Systemumgebung ab. Das X509-Zertifikat wird von der UTM 9 automatisch erzeugt. Der neue Benutzer kann sich nun auf dem User Portal der UTM 9 anmelden und unter dem Menüpunkt Fernzugriff die Konfigurationsdatei herunterladen. Das User Portal wird über https://<lokale IP-Adresse> ohne Portangabe erreicht.

OpenVPN Konfiguration
OpenVPN Konfiguration aus der Sophos Firewall herunterladen

Installation OpenVPN und Aufbau des VPN-Tunnels

Die Konfiguration aus der UTM 9 lässt sich direkt in OpenVPN verwenden. Installiert wird auf dem Client-Rechner mit dem Terminal und

:~$ audo apt-get update
:~$ sudo apt-get install openvp

DieKonfigurationsdatei speichert man in einem versteckten Verzeichnis innerhalb seines homes (z.B. unter /home/testuser/.vpn/vpnuser@utm9-fw.ovpn). Dort legt man auch eine Datei password.txt an, in der in der ersten Zeile der VPN-Benutzername und in der zweiten Zeile das Passwort steht.
Die von der Firewall herunter geladene Konfigurationsdatei muss nun noch angepasst werden.

client
dev tun
proto tcp
remote 81.251.38.112 5001 <-- Hier die externe IP der Firewall eintragen
verify-x509-name "C=de, L=Augsburg, O=drept, CN=fireplace, emailAddress=admin@thomas-hupfer.de"
route remote_host 255.255.255.255 net_gateway
resolv-retry infinite
nobind
persist-key
persist-tun
auth-user-pass /home/testuser/.vpn/password.txt <-- Pfad zu Passwortdatei
cipher AES-128-CBC
auth MD5
comp-lzo 
route-delay 4
verb 3
reneg-sec 0
...

Danach startet man die VPN-Verbindung ebenfalls im Terminal oder über ein Script mit

:~$ sudo openvpn /home/testuser/.vpn/vpnuser@utm9-fw.ovpn

Der Nachteil beim Start aus dem Terminalfenster ist, dass das Terminalfenster nun für die gesamte Sitzung geöffnet bleiben muss.

Tipp: Ich habe zunächst relativ schnell einen VPN-Tunnel aufbauen können, aber dann ziemlich lange erfolglos herum probiert, um Geräte aus dem verbundenen Netz zu erreichen. Dabei habe ich einen GSM-Router verwendet, bei dem ich alle mit bekannten Ports durchgeleitet habe. Der Zeitaufwand war „für die Katz'“, denn aus meinem LAN funktionierte das sofort. Also nicht verzweifeln, sondern in einem LAN testen, das man kennt.

Arbeitet man immer über dieVPN-Verbindung, kann man in der Datei .profile in seinem home-Verzeichnis als letzte Zeile folgendes anfügen:

sudo openvpn /home/testuser/.vpn/vpnuser@utm9-fw.ovpn &

Das & am Ende ist kein Schreibfehler und das Userverzeichnis und der Name der Konfigurationsdatei müssen natürlich angepasst werden.

Wie man die VPN-Verbindung mit Desktop-Icons starten und stoppen kann, erkläre ich -> hier.


Komfortabler mit dem Network-Manager

Um den VPN-Tunnel komfortabel über die Netzwerkeinstellungen aufbauen zu können, verwendet man den Network-Manager von Gnome. Er wird installiert mit

:~$ sudo apt-get install network-manager-openvpn-gnome

Die Zugangsdaten sollten bekannt sein, die Zertifikatdateien ca.cert, client.cert und client.key muss man aus der Konfigurationsdatei der UTM 9 in eigene Dateien kopieren, speichert sie an einem sicheren Ort (z.B. /home/<user>/.cert) und setzt die Dateiberechtigungen so, dass sie nur vom Besitzer verwendet werden können. Die Zertifikate kopiert man mit der Anfangs- und Endzeile.

-----BEGIN CERTIFICATE-----
<Inhalt>
-----END CERTIFICATE-----

Der Key wird ebenfalls mit Anfangs- und Endzeile kopiert.

-----BEGIN PRIVATE KEY-----
<Inhalt>
-----END PRIVATE KEY-----

Im Networkmanager (in den Netzwerkverbindungen rechts oben in der Top-Bar auf dem Desktop) fügt man nun eine OpenVPN-Verbindung hinzu. In diesem Beispiel erfolgt die Authentifizierung mit Userkennung und den eben extrahierten Zertifikaten.

Konfiguration im Network-Manager
Konfiguration im Network-Manager

Wird wie hier kein Passwort für die Schlüsseldatei benötigt, muss das über das Menü rechts im Eingabefeld angegeben werden!

Die Konfigurationseinstellungen für den Network-Manager kann man den Angaben vor den Zertifikaten in der Konfigurationsdatei entnehmen.

Einstellungen aus der UTM-Config übernehmen
Einstellungen aus der UTM-Config übernehmen

Testen der VPN-Verbindung

Ohne aktivierte VPN-Verbindung geht man auf eine Seite, die die eigene externe IP anzeigt (z.B. -> wieistmeineip.de) und aktiviert dann die VPN-Verbindung. Aktualisiert man nun die Seite und wird die IP desVPN-Servers angezeigt, steht der VPN-Tunnel.

Fehlersuche

Bei der Fehlersuche helfen die Log-Dateien. Unter /var/log/syslog findet man die problematischen Konfigurationseinträge meist heraus. Im Netzwerk-Manager selbst sieht man die Schlüsselwörter in der Konfigurationsdatei, indem man den Mauszeiger auf das Eingabefeld legt und dann im Tooltipp das zugehörige Schlüsselwort am Ende identifizieren kann.

Damit ist eine Voraussetzung für die -> Fernsteuerung oder Homeworking mit Ubuntu erfüllt.

Wie man die VPN-Verbindung mit Desktop-Icons starten und stoppen kann, erkläre ich -> hier.

Buy Me a Coffee at ko-fi.com

You May Also Like

4 Comments

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.

Aus persönlichen Gründen...

... kann ich den Blog im Moment leider nicht wie gewohnt betreuen und Anfragen zeitnah beantworten. Lediglich die technische Funktionalität versuche ich aufrecht zu erhalten. Sollte es trotzdem was Neues hier geben, dann schreibe ich eine Info in die Telegram-Gruppe.


In der Telegram-Gruppe können Sie sich weiterhin mit anderen Lesern von Împuşcătura austauschen.

Zur Telegram-Gruppe