SSL-VPN mit OpenVPN in Ubuntu 18.04

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<br>:~$ sudo apt-get install openvp

Danach startet man die VPN-Verbindung ebenfalls im Terminal mit

:~$ sudo openvpn /Pfad/zur/Konfigurationsdatei

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.

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.

Auch interessant?
-> Installation mycrypt PHP7

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.