VPN-Dienste erleben einen deutlichen Aufschwung. Mit einem eigenen VPN-Server gewinnen Sie mehr Sicherheit und behalten die Souveränität über Ihre Daten.
Durch zunehmender Angriffe Krimineller, aber auch einem um sich greifenden staatlichen Überwachungswahn gewinnen bei der IT-gestützten Kommunikation Sicherheitsaspekte eine immer größere Bedeutung. Dabei rücken zunehmend auch virtuelle private Netzwerke (VPN) in den Vordergrund, die eine getunnelte Verbindung zwischen Client-Systemen und einem VPN-Server etablieren und so das Mitlesen der Kommunikation für Dritte erheblich erschweren.
Für den anonymen Zugriff auf externe Dienst im Internet eignen sich primär öffentlich zugängliche VPN-Dienste, die länderübergreifend eigene VPN-Server betreiben. Deren Server lassen sich nach Abschluss einer Subskription mithilfe einer lokal zu installierenden Client-Software nutzen. Wollen Sie aber auch von unterwegs sicher und transparent auf Rechner und Dienste in Ihrem eigenen Netzwerk zugreifen, brauchen Sie einen eigenen dedizierten VPN-Server. Er bietet gegenüber öffentlich zugänglichen Diensten zusätzlich den Vorteil, dass er vollkommene Datensouveränität gewährleistet, da keinerlei Datenpakete über Systeme externer Anbieter laufen. Wir sehen uns daher im Folgenden an, welche freien VPN-Server es gibt und wie man sie in Betrieb nimmt.
Protokollarisches
Bei VPN-Diensten wird grundsätzlich eine verschlüsselte Verbindung zwischen dem Client und dem Server aufgebaut. Der Server leitet bidirektional alle ein- und ausgehenden Datenpakete weiter und agiert somit ähnlich wie ein Proxy. Das erhöht die Anonymität der Endgeräte im VPN deutlich, da deren IP-Adressen außerhalb des VPNs nicht sichtbar sind. Zur Kommunikation zwischen den Clients und dem Server dienen etablierte kryptografische Verfahren, die eine sichere Datenübertragung ermöglichen. Im Laufe der Jahre wurden zudem mehrere Kommunikationsprotokolle für VPN-Installationen entwickelt, von denen einige ältere jedoch inzwischen nicht mehr als sicher gelten.
Unter Linux hat sich vor allem OpenVPN [1] als Standardprotokoll etabliert, während Wireguard [2] eine noch relativ junge Entwicklung darstellt. Wireguard gilt als VPN-Protokoll der Zukunft, da es gegenüber OpenVPN einige Vorteile bietet. Seine Codebasis ist sehr kompakt und besteht nur aus rund 4000 Zeilen Code, was eine leichte Wartung und Pflege ermöglicht. OpenVPN dagegen umfasst rund 600 000 Codezeilen, was die Wartung erheblich erschwert.
Während OpenVPN zusätzlich stets eine eigene Installation erfordert, ist Wireguard bereits in den Linux-Kernel ab Version 5.6 eingepflegt. Durch die schlanke Codebasis und die Kernel-Implementation des Protokolls ergeben sich außerdem erhebliche Geschwindigkeitsvorteile zugunsten des Newcomers. OpenVPN dagegen glänzt mit sehr flexiblen Konfigurationsmöglichkeiten, die es unter anderem auch gestatten, zahlreiche Firewalls zu umgehen. Dadurch lassen sich Blockaden vermeiden.
Andere Protokolle wie das von Microsoft entwickelte und durch Sicherheitslücken und Schwachstellen negativ aufgefallene PPTP-Protokoll finden dagegen nur noch selten Anwendung in professionellen VPN-Infrastrukturen. Das L2TP/IPsec-Protokoll steht im Verdacht, vom US-Geheimdienst NSA kompromittiert worden zu sein, sodass viele Sicherheitsexperten von seinem Einsatz abraten.
Vorbereitungen
Um einen dedizierten VPN-Server nutzbar zu machen, gilt es in den meisten Fällen, am Router Einstellungen der Firewall zu modifizieren. So müssen Sie entweder ein Port Forwarding einrichten, wenn der VPN-Server nur über einen softwareseitig fest definierten Port angesprochen werden kann, oder gesperrte Ports öffnen, um den Zugriff auf den VPN-Server aus dem Internet zu gewährleisten. Bei den meisten Routern können Sie diese Modifikationen der Konfiguration bequem per grafischer Oberfläche ausführen. In den Anleitungen der Geräte finden sich dazu entsprechende Hinweise.
Beachten Sie bitte, dass der VPN-Server außerdem eine statische IP-Adresse benötigt, um aus dem Internet erreichbar zu sein. Da die meisten Internet-Provider in regelmäßigen Abständen die IP-Adressen ihrer Kunden wechseln, empfiehlt es sich, einen dynamischen DNS-Dienst zu nutzen. Solche DynDNS-Dienste weisen Ihrem Router einen festen Host-Namen zu, sodass auch nach einer Modifikation der IP-Adresse die Datenpakete automatisch noch ihr Ziel erreichen. Zudem ist es nötig, dem VPN-Server auch im Intranet eine statische IP-Adresse zuzuweisen. Das gewährleistet, dass er sich selbst bei einem temporären Ausfall nach dem erneuten Hochfahren unter derselben IP-Adresse erreichen lässt.
Zusätzlich empfiehlt es sich, für die Konfiguration des VPN-Servers einen SSH-Zugang einzurichten. Da speziell bei der Anpassung von Wireguard Textdateien editiert werden müssen, können Sie nach Installation des SSH-Diensts auf dem VPN-Server Konfigurationsanpassungen von jeder Arbeitsstation im lokalen Netz aus am Prompt vornehmen. OpenVPN dagegen integriert einen bereits bei der Erstinstallation automatisch fertig eingerichteten Webserver, sodass Sie den VPN-Dienst bequem über einen beliebigen Webbrowser im Intranet administrieren.
OpenVPN
Unter Linux-basierten VPN-Installationen hat sich OpenVPN zum Quasi-Standard entwickelt. Das bereits seit rund 20 Jahren in kontinuierlicher Entwicklung befindliche freie Protokoll nutzt den TLS-Verschlüsselungsstandard zum Aufbau einer getunnelten Verbindung. OpenVPN unterstützt verschiedene freie Betriebssysteme, zudem ist die Software auf zahlreichen Routern und Endgeräten im Einsatz.
Unter Ubuntu und dessen Derivaten lässt sich OpenVPN im Handumdrehen installieren. Dabei richtet man auf dem vorgesehenen Server den OpenVPN-Access-Server ein und auf den Client-Computern jeweils ein entsprechendes Paket zum Ansteuern des Servers. Um den Server korrekt zu installieren, nutzen Sie die in Listing 1 aufgeführten Befehle. Bitte beachten Sie, dass die im Listing angegebenen Schritte für Ubuntu 20.04 und dessen Derivate gelten. Sie finden auf der Website des OpenVPN-Projekts weitere Pakete und Anleitungen für andere Distributionen sowie für ARM-basierte Systeme [3].
Listing 1
OpenVPN installieren
# apt update && apt -y install ca-certificates wget net-tools gnupg # wget -qO - https://as-repository.openvpn.net/as-repo-public.gpg | apt-key add - # echo "deb http://as-repository.openvpn.net/as/debian focal main">/etc/apt/sources.list.d/openvpn-as-repo.list # apt update && apt -y install openvpn-as
Bereits nach diesen wenigen Schritten ist der Server installiert und grundsätzlich einsatzbereit. Am Prompt finden Sie zudem zwei IP-Adressen und das Passwort für den Zugriff auf den Server. Die beiden IP-Adressen lassen sich von jedem Arbeitsplatzcomputer im Intranet aus erreichen. Die Installationsroutine hat zugleich einen Webserver integriert, dessen Startseite Sie mithilfe der aufgeführten IP-Adressen im Webbrowser öffnen (Abbildung 1).

Abbildung 1: Die Installation von OpenVPN nehmen Sie am Prompt vor, wobei am Ende der Routine IP-Adressen und Ports für den internen Webserver angezeigt werden.
Sie gelangen nach dem Einloggen als Nutzer openvpn unter Eingabe des vorgegebenen Passworts in eine übersichtlich gestaltete Konfigurationsoberfläche. Hier finden sich detaillierte Einstelloptionen, die das Interface in mehreren Kategorien zusammenfasst. Sie finden Sie links im Browser-Fenster in einer vertikalen Leiste. Rechts im großen Fenstersegment sehen Sie zunächst den für den Aktivierungsschlüssel vorgesehenen Dialog. Der Schlüssel muss gesondert erworben werden, sofern Sie mehr als zwei VPN-Verbindungen simultan nutzen wollen. Dazu dient der Schalter Get Activation Key.
Nach dem Öffnen einer der Kategorien und – sofern vorhanden – eines darin befindlichen Untermenüs werden die einzelnen Optionen angezeigt. Im ersten Schritt sollten Sie den DynDNS-Dienst in Ihre OpenVPN-Instanz einpflegen, damit sich der Server vom Internet aus erreichen lässt. Dazu dient die Option Hostname or IP Address in der Kategorie Network Settings. Im dazugehörigen Eingabefeld ersetzen Sie die entsprechende IP-Adresse durch den DynDNS-Namen (Abbildung 2).

Abbildung 2: Mit nur einer einzigen Einstellung pflegen Sie die DynDNS-Adresse in den OpenVPN-Server ein.
Anschließend scrollen Sie an den unteren Rand der Seite und sichern Ihre Einstellungen durch einen Klick auf die Schaltfläche Save Settings. Das System blendet nun im oberen Bereich des Browser-Fensters die Aufforderung ein, durch einen Klick auf Update Running Server die neuen Einstellungen im laufenden Betrieb zu nutzen, ohne dass Sie den Server dazu manuell am Prompt neu starten müssten.
In den weiteren Untergruppen der Kategorie Configuration modifizieren Sie bei Bedarf zusätzliche Einstellungen. So wählen Sie beispielsweise in der Gruppe TLS Settings die TLS-Version aus. Unter VPN Settings nehmen Sie dagegen Anpassungen zu den VPN-Netzen vor und passen den Adressraum und die Netzmaske an. Zusätzlich können Sie in dieser Gruppe detaillierte Einstellungen zur DNS-Konfiguration und zum Routing vornehmen.
In der Gruppe User Management legen Sie Rechte fest, die sich auch auf Gruppen beziehen lassen, und verwalten Nutzerprofile. Wichtige Modifikationen des Systems nehmen Sie bei Bedarf auch in der Gruppe Authentication vor: Hier lässt sich beispielsweise ein RADIUS-Server zur Authentifizierung in das VPN integrieren, sodass lokale Passworteingaben entfallen.
Die Dialoge in der Gruppe Configuration | Cluster belassen Sie deaktiviert. Sie dienen für umfangreiche Installationen in großen Organisationen, wo sich darüber Cluster aus mehreren OpenVPN-Knoten anlegen lassen.
Client-Webserver
Neben dem Webserver für administrative Zwecke aktiviert OpenVPN bei der Grundinstallation automatisch auch einen Client-Webserver. Dessen URL finden Sie nach der Erstinstallation des Systems ebenfalls im Terminal. Der Client-Webserver dient dazu, Profile für Nutzer automatisch zu generieren und eine angepasste Installationsroutine für VPN-Clients bereitzustellen.
Für Linux verlinkt das Projekt dazu auf eine ausführliche Dokumentation, für andere Plattformen stehen Binärpakete zum Download bereit [4]. Im Dialog Configuration | Network Settings finden Sie zudem im unteren Bereich Optionen, mit deren Hilfe Sie die Konfiguration des Client-Webservers anpassen. Sie erreichen den Dienst voreingestellt ebenfalls mit dem Nutzernamen openvpn und dem automatisch bei der Erstinstallation generierten Passwort.
Status
Möchten Sie den aktuellen Status des OpenVPN-Servers einsehen oder bei Problemen die Log-Dateien aufrufen, nutzen Sie dazu die Kategorie Status. Dort finden Sie im Menü Status Overview einen Überblick über den aktuellen Zustand des Servers, während das Menü Log Reports der Generierung und Anzeige von Protokolldateien dient. Die Gruppe Current Users gibt Aufschluss über vorhandene Nutzer (Abbildung 3).

Abbildung 3: Die Statusübersicht macht Sie mit den wichtigsten Parametern des OpenVPN-Servers vertraut.
Dokumentation
Da OpenVPN aufgrund seiner zahlreichen Konfigurationsoptionen insbesondere für weniger versierte Administratoren schwierig zu verwalten ist, stellen die Entwickler eine ausführliche Dokumentation in englischer Sprache bereit. Diese finden Sie in der Administrationsoberfläche in der Gruppe Documentation. Ein Klick auf den entsprechenden Link öffnet im Webbrowser einen Reiter mit den Dokumentationsseiten zum OpenVPN-Server.
Wireguard
Wireguard installieren Sie unter Ubuntu und dessen Derivaten bequem aus den Paketquellen. Die Software folgt nicht dem Client-Server-Prinzip, sondern baut jeweils eine Punkt-zu-Punkt-Verbindung zwischen Server und Client auf. Die Clients werden dabei durch eine asymmetrische kryptografische Infrastruktur authentifiziert. Sie müssen daher einen privaten und einen öffentlichen Schlüssel generieren. Die Installation eines Wireguard-Servers verursacht daher einen hören Aufwand als die von OpenVPN, ist jedoch gut dokumentiert [5].
Zunächst aktualisieren Sie Ihr System (Listing 2, erste zwei Zeilen) und installieren Iptables (Zeile 3). Danach können Sie den eigentlichen Wireguard-Server aufsetzen (Zeile 4). Nun gilt es, die Schlüssel für die sichere Kommunikation zu generieren (Zeile 5). Um festzustellen, ob die beiden Schlüssel korrekt erzeugt wurden, tippen Sie anschließend am Prompt ls /etc/wireguard. In der Ausgabe müssen jetzt die beiden Schlüsseldateien zu sehen sein.
Listing 2
Wireguard einrichten
$ sudo apt update $ sudo apt upgrade $ sudo apt install iptables -y $ sudo apt install wireguard -y $ wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Anschließend richten Sie die von Wireguard genutzte Netzwerkschnittstelle ein. Die Software etabliert den VPN-Tunnel nicht über ein vorhandenes (W)LAN-Interface, sondern über eine eigens dazu angelegte Schnittstelle. Diese gilt es zu konfigurieren, wobei dabei auf Iptables als Routing-Option zurückgegriffen wird. Im Folgenden nehmen wir als Schnittstellenbezeichnung wg0 an. Mit dem Befehl nano /etc/wireguard/wg0.conf legen Sie als Administrator für das virtuelle Interface eine Konfigurationsdatei an, in die Sie die Textzeilen aus Listing 3 eintragen (Abbildung 4).
Listing 3
Schnittstelle anlegen
[Interface] Address = 10.0.0.1/24 SaveConfig = true ListenPort = 51850 PrivateKey = PrivaterSchlüssel PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Als PrivateKey geben Sie dabei den generierten privaten Schlüssel an. In der Zeile ListenPort tragen Sie gegebenenfalls einen alternativen Port ein, den Sie allerdings auch im Router freigeben müssen. Achten Sie unbedingt auf die korrekte Schreibweise der Regeln zum Weiterleiten der Datenpakete mithilfe von Iptables inklusive der zwingend notwendigen Leerschritte. Nach Fertigstellung der Konfiguration sichern Sie die Datei mit [Strg]+[O]. Nach dem darauffolgenden Bestätigen des Dateinamens schließen Sie den Editor mit [Strg]+[X].
Zu guter Letzt legen Sie für die Konfigurationsdatei und den privaten Schlüssel die Zugriffsrechte neu fest (Listing 4, erste Zeile). Anschließend starten Sie das Interface und aktivieren damit Wireguard (zweite Zeile). Bei erfolgreicher Aktivierung der Schnittstelle erscheint im Terminal eine mehrzeilige Ausgabe (Abbildung 5).
Listing 4
Schnittstelle anlegen
# chmod 600 /etc/wireguard/{privatekey,wg0.conf}
# wg-quick up wg0
Durch Eingabe des Befehls ifconfig können Sie sich anschließend ansehen, ob die virtuelle Schnittstelle funktioniert. Der Befehl listet sämtliche im System angemeldeten Netzwerkschnittstellen mit ihren IP-Adressen und weiteren statistischen Daten auf. Hinter dem Parameter flags müssen hier bei korrekter Funktion unter anderem die Werte UP und RUNNING erscheinen (Abbildung 6). Erhalten Sie beim Aufruf von Ifconfig eine Fehlermeldung, installieren Sie zunächst noch das Paket net-tools über den Befehl apt install net-tools.
Automatisiert
Um Wireguard bei jedem Hochfahren des Computers automatisch zu aktivieren, definieren Sie den Dienst als Systemd-Service (Listing 5, erste Zeile). Anschließend vergewissern Sie sich, dass der VPN-Server korrekt arbeitet (zweite Zeile), und setzen danach die Peers auf, die über den Wireguard-Server im Internet kommunizieren.
Listing 5
Systemd-Service
# sudo systemctl enable wg-quick@wg0.service # systemctl status wg-quick@wg0.service
|
|
OpenVPN |
Wireguard |
|---|---|---|
|
Lizenz |
GPL |
GPLv2 |
|
Funktionen |
||
|
Binärpakete verfügbar |
ja |
ja |
|
Administrator-GUI |
ja |
nein |
|
plattformübergreifend |
ja |
ja |
|
Verschlüsselungsalgorithmen |
AES-256-CGM, ChaCha20-Poly1305 (geplant) |
ChaCha20, Curve 25519 |
Fazit
Die beiden VPN-Lösungen OpenVPN und Wireguard gestatten eine recht zügige Installation eines dedizierten VPN-Servers. Trotz der unkomplizierten Installation und einer komfortablen GUI für die Administration bei OpenVPN sollten Sie jedoch nicht aus den Augen verlieren, dass beide Lösungen eine sehr detaillierte Konfiguration erfordern. Ungeachtet der guten Dokumentationen resultiert daraus speziell für weniger versierte Administratoren eine relativ steile Lernkurve, wenn die Server zuverlässig und reibungslos arbeiten sollen. (jlu)
Infos
-
OpenVPN: https://openvpn.net
-
Wireguard: https://www.wireguard.com
-
OpenVPN-Pakete mit Doku: https://openvpn.net/vpn-software-packages/
-
OpenVPN-Dokumentation: https://openvpn.net/vpn-server-resources/create-connection-profiles-and-connect-client-installers/
-
Wireguard-Dokumentation: https://www.wireguard.com/quickstart/








