VPN

Einen eigenen VPN-Server aufsetzen: So geht’s

Erik Bärwaldt
Autor
Letzte Aktualisierung

Unternehmen sind aufgrund von Cyberattacken und immer ausgefeilteren Tracking-Methoden mehr denn je auf eine sichere Kommunikation im Internet angewiesen. VPN-Dienste können dazu einen wichtigen Beitrag leisten. Doch für größere Unternehmen mit vielen Mitarbeitenden ist es meist lohnender, anstatt eines externen Anbieters einen eigenen VPN-Server zu betreiben.

Wir zeigen Ihnen, wie Sie mit überschaubarem Aufwand eine dedizierte VPN-Instanz in Ihre IT-Infrastruktur integrieren.

Wie funktioniert ein VPN – und was kann es nicht?

Ein virtuelles privates Netzwerk (VPN) anonymisiert den Zugang ins Internet für die angeschlossenen Client-Systeme. Dabei werden alle Datenpakete, die vom Client-Computer ausgesendet werden oder für ihn bestimmt sind, über eine getunnelte Verbindung geschickt; ein VPN-Server übernimmt die Weiterleitung.

So funktioniert ein VPN.

Für alle Computer außerhalb des VPN-Netzwerkes ist dabei nicht sichtbar, wer Empfänger oder Absender der Datenpakete ist. Somit können die Client-Systeme innerhalb eines VPN-Netzes anonymer im Internet agieren als über eine direkte Verbindung, bei der Tracking-Software wesentlich effizienter das Surfverhalten nachvollziehen kann.

Wer einen VPN-Dienst verwendet, surft jedoch nicht zwingend vollkommen anonym im Internet: So könnte der VPN-Anbieter IP-Adressen und Daten einsehen, und auch außerhalb des VPNs können individuelle Daten, die Sie nicht vor dem Absenden verschlüsselt haben, von Unbefugten betrachtet werden.

Außerdem schützt ein VPN nicht vor Phishing-Angriffen und Schadsoftware, die beispielsweise durch kompromittierte E-Mail-Anhänge auf Ihr Computersystem transferiert werden und dort Schaden anrichten können. Ein VPN macht daher keineswegs Schutzmaßnahmen wie Antivirus-Software überflüssig.

VPN-Dienst oder eigener VPN-Server: Was ist besser?

Für kleine und auch viele mittelständische Unternehmen sind öffentliche VPN-Dienste das Mittel der Wahl. Solange nur eine begrenzte Anzahl von Computern im Internet genutzt wird, fallen die laufenden Kosten für einen VPN-Dienst deutlich niedriger aus als die Installation und Wartung eines dedizierten VPN-Servers.

Für große Unternehmen jedoch, die über eine eigene IT-Abteilung verfügen, kann der Einsatz eines inhouse betriebenen VPN-Servers nicht nur preiswerter, sondern auch effizienter sein, da es in diesen Fällen keinen externen Diensteanbieter gibt, von dem eine gewisse Abhängigkeit besteht. Ein eigener VPN-Server lässt sich zudem bei großen Organisationen besser in hauseigene Sicherheitskonzepte integrieren als ein vorkonfektionierter öffentlicher Dienst, und auch der Aufwand für die kontinuierliche Wartung des Servers ist meist überschaubar.

Wie Sie einen VPN-Server aufsetzen

Es gibt verschiedene Methoden, einen eigenen VPN-Server aufzusetzen. Welche Sie wählen sollten, hängt davon ab, was genau Sie erreichen möchten und welche Betriebssysteme oder Router zur Verfügung stehen.

1.

Zugriff aufs Heimnetzwerk über die Fritz!Box 

Sie möchten eine sichere Verbindung zu Ihrem Heimnetzwerk herstellen? Dann können Sie eine VPN-Verbindung auf Ihrer FRITZ!Box einrichten. Wie das geht, lesen Sie im Artikel VPN auf FRITZ!Box: Wie Sie VPN auf Ihrer FRITZ!Box einrichten.

Sie können eine VPN-Verbindung auf Ihrer FRITZ!Box einrichten.

2.

Günstiger Mini-Rechner: VPN-Server via Raspberry Pi

Auch mit einem Raspberry Pi können Sie Ihr Heimnetzwerk überall hin mitnehmen. Und auch hierfür finden Sie auf EXPERTE.de eine umfangreiche Anleitung: VPN auf dem Raspberry Pi - So einfach geht's!

3.

Sichere, quelloffene Lösung: VPN-Server unter Linux

Auch für das freie Betriebssystem Linux sind zahlreiche VPN-Lösungen erhältlich, die einfach zu installieren und zu warten sind. Dabei haben diese Lösungen den Vorteil eines offenen Entwicklungsmodells, bei dem Sicherheitsprobleme schneller lokalisiert und behoben werden können als bei proprietärer Software.

Außerdem ist bei freier Software gewährleistet, dass keine verborgenen Hintertüren in die Programme implementiert sind, durch die Unbefugte Zugriff auf den Datenverkehr im VPN erhalten können. Daher ist eine auf Linux basierende Lösung bei inhouse genutzten VPN-Servern die erste Wahl.

Nachteil von Linux im Vergleich mit anderen Lösungen: die Energiebilanz

Im direkten Vergleich zwischen VPN-Lösungen auf der FRITZ!Box, dem Raspberry Pi und einem herkömmlichen Computersystem auf Linux-Basis fällt die negative Energiebilanz des Linux-Rechners ins Gewicht.

Da der VPN-Server in aller Regel rund um die Uhr betrieben wird, fällt der Energiebedarf natürlich wesentlich höher aus als bei einem kleinen Raspberry Pi-Computer oder gar bei einer FRITZ!Box, die unabhängig von der Funktion als VPN-Server eingesetzt wird.

Achten Sie daher stets darauf, einen möglichst energieeffizient arbeitenden Linux-Computer als Basis für Ihren VPN-Server zu verwenden.

Protokollarisches: OpenVPN oder WireGuard?

Für VPN-Dienste werden meist zwei Protokolle genutzt: OpenVPN und das neuere WireGuard. Während sich OpenVPN als Standard fest etabliert hat und daher von nahezu allen Endgeräten und Softwarelösungen unterstützt wird, ist WireGuard noch nicht derart weit verbreitet.

Das noch relativ junge VPN-Protokoll WireGuard hat jedoch einige Vorteile im Vergleich zu den Mitbewerbern: Es bietet spürbar höhere Geschwindigkeiten als etwa OpenVPN und ist in der Codebasis wesentlich schlanker. Zusätzlich ist WireGuard inzwischen in den Linux-Kernel integriert, was ebenfalls zu einer höheren Arbeitsgeschwindigkeit führt.

Vor- und Nachteile von OpenVPN:

OpenVPN ist bereits seit rund 20 Jahren verfügbar und hat sich als Standard für VPN-Verbindungen etabliert. Das Protokoll weist zahlreiche Vorteile auf, hat aber auch Nachteile:

arbeitet sehr stabil

gilt als sicher aufgrund der Unterstützung vieler kryptographischer Algorithmen

umfangreich konfigurierbar

auch durch detaillierte Audits immer wieder als sicher eingestuft

gilt als verhältnismäßig langsam wegen aufwendiger Verschlüsselung

Vor- und Nachteile von WireGuard:

WireGuard wird vielfach als VPN-Protokoll der Zukunft betrachtet. Die Vor- und Nachteile im Kurzüberblick:

sehr schnell

sehr kompakt programmiert mit geringer Codebasis

in den Linux-Kernel integriert und daher plattformübergreifend einsetzbar

auch bei schlechter Netzabdeckung performant

durch Sleep-Modus energiesparend

unter Windows hinkt die Entwicklung etwas hinterher

noch in einem experimentellen Stadium

Anleitung: Aufsetzen eines VPN-Servers und Konfiguration mit OpenVPN

Um einen eigenen VPN-Server in Betrieb nehmen zu können, sind einige Voraussetzungen zu erfüllen. Damit der VPN-Server aus dem Internet erreicht werden kann, benötigt er eine statische IP-Adresse. Die meisten Internet-Provider ändern jedoch alle 24 Stunden die IP-Adressen ihrer Kunden, weshalb es sich empfiehlt, einen dynamischen DNS-Dienst zu nutzen.

Es gibt dazu mehrere DynDNS-Dienste, die Ihrem Router einen festen Hostnamen zuweisen, der bei einer Änderung der IP-Adresse automatisch zur neuen IP-Adresse weiterleitet. Dazu muss der Router jedoch entsprechend konfiguriert werden. Außerdem muss in den Einstellungsdialogen des Routers der von OpenVPN genutzte Port 1194 freigeschaltet werden, und der VPN-Server muss zudem eine feste IP-Adresse im Intranet erhalten.

Nach diesen Vorarbeiten können Sie den OpenVPN-Server auf einem Rechner im Intranet installieren.

Ubuntu und Derivate

Als Betriebssystem für den Server installieren Sie zunächst Ubuntu, und zwar in der Version 20.04. Diese Variante erhält Langzeit-Support über mehrere Jahre und gilt daher als besonders stabil und sicher. Nach der Installation des Betriebssystems laden Sie den OpenVPN-Server aus den Softwarearchiven und konfigurieren ihn. Dazu führen Sie unter Ubuntu 20.04 am Prompt mit Administratorrechten folgende Befehle aus:

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

Der Server ist nun fertig installiert und wurde sofort aktiviert. Am Prompt erhalten Sie zwei IP-Adressen zum Starten der Weboberfläche und das Passwort für den Zugriff auf die Konfigurationsdialoge.

Sie haben den Server nun fertig installiert.

Anschließend geben Sie die für den Administrationszugang angegebene URL in den Webbrowser an einer beliebigen Maschine im Intranet ein und öffnen im Eingangsbildschirm den Konfigurationsdialog mit dem Nutzernamen openvpn und dem angegebenen Passwort. Daraufhin gelangen Sie nach Bestätigen der Lizenz in eine aufgeräumte Verwaltungsoberfläche.

Grundkonfiguration

Im nächsten Schritt müssen Sie den DynDNS-Dienst in OpenVPN einpflegen, damit der Server von außen erreichbar ist. In der Verwaltungsoberfläche klicken Sie dazu links in der vertikalen Spalte auf die Option Configuration und in den danach geöffneten Untergruppen auf Network Settings.

Im Feld Hostname or IP Address finden Sie die lokale IP-Adresse des VPN-Servers. Diese ersetzen Sie durch die DynDNS-Adresse. Danach scrollen Sie an das Ende der Seite und sichern Ihre Einstellung durch einen Klick auf den Button Save Settings

Hier müssen Sie die IP-Adresse des VPN-Servers durch die DynDNS-Adresse ersetzen.

Anleitung: Aufsetzen eines VPN-Servers und Konfiguration mit WireGuard

WireGuard ist in den Paketquellen von Ubuntu 20.04 bereits enthalten und kann daher bequem ohne Integration eines neuen Software-Archivs in das System installiert werden. Da WireGuard nicht dem herkömmlichen Client/Server-Prinzip folgt, sondern einen Punkt-zu-Punkt-VPN-Server etabliert, werden die Clients durch eine asymmetrische kryptografische Infrastruktur authentifiziert. Es ist daher notwendig, einen öffentlichen und einen privaten Schlüssel auf dem WireGuard-Server und auf den Clients zu generieren.

Die Installation eines WireGuard-Servers ist etwas aufwändiger als bei OpenVPN. Zunächst sollten Sie Ihr Betriebssystem aktualisieren mit dem Befehl

apt-get update

Sofern noch nicht vorhanden, installieren Sie anschließend Iptables:

apt-get install iptables -y

Nun setzen Sie den eigentlichen WireGuard-Server auf:

apt-get install wireguard -y

Im nächsten Schritt generieren Sie die Schlüssel mithilfe des WireGuard-Befehls wg:

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Mit dem Befehl

ls /etc/wireguard

können Sie anschließend prüfen, ob die beiden Schlüssel korrekt generiert wurden.

Danach richten Sie die von WireGuard genutzte Netzwerkschnittstelle ein. Über diese wird der VPN-Server angesprochen. Sie nutzen zur Konfiguration des Interface den Texteditor Nano. Dazu geben Sie am Prompt folgenden Befehl ein:

nano /etc/wireguard/wg0.conf

Die Konfigurationsdatei ist zunächst leer. Um das Interface anzulegen, tragen Sie im Editor folgende Zeilen ein:

[Interface] Address = 10.0.0.1/24 SaveConfig = true ListenPort = 51850 PrivateKey = Privater-Schlü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

Im Anschluss an diese Eingabe speichern Sie die Datei durch Drücken der Tastenkombination Strg-O und danach Strg-X. In der Datei werden nach Angabe der IP-Adresse des Interface und der Portnummer auch die Regeln von Iptables zur Durchleitung von Datenpaketen definiert. Achten Sie unbedingt auf die korrekten Schreibweisen! 

Falls Sie in Ihrem Computersystem mehrere physische Netzwerkkarten installiert haben, müssen Sie unter Umständen auch die Bezeichnung der Schnittstelle (hier eth0) ändern. Um das korrekte Interface zu ermitteln, nutzen Sie den Befehl ifconfig. Sollte dabei eine Fehlermeldung angezeigt werden, müssen Sie zunächst noch das Paket net-tools mit der folgenden Eingabe nachinstallieren:

apt-get install net-tools

Ist die Konfigurationsdatei korrekt eingegeben, so legen Sie im nächsten Schritt die Rechte für die Schnittstellendatei und den privaten Schlüssel fest:

chmod 600 /etc/wireguard/{privatekey,wg0.conf}

Mit der nun folgenden Eingabe aktivieren Sie die neu angelegte Schnittstelle wg0 durch den Befehl

wg-quick up wg0

Danach erhalten Sie folgende Ausgabe am Prompt:

Sie haben die neu angelegte Schnittstelle aktiviert.

VPN-Server automatisch starten

Um den VPN-Server mit WireGuard beim Hochfahren des Computers automatisch zu starten, können Sie diesen als Systemd-Service aktivieren. Dazu ist am Prompt folgender Befehl einzugeben:

systemctl enable wg-quick@wg0.service 

Anschließend erhalten Sie folgende Meldung:

Legen Sie fest, dass der VPN-Server automatisch startet.

Der Dienst muss danach nicht mehr neu gestartet werden. Um den Status des VPN-Servers abzufragen, nutzen Sie ebenfalls den systemctl-Befehl:

systemctl status wg-quick@wg0.service

In einem letzten Schritt aktivieren Sie noch die IP-Weiterleitung, damit Datenpakete von den Client-Systemen ins Internet transferiert werden. Dazu nutzen Sie erneut einen Texteditor wie Nano und öffnen mit ihm die Datei /etc/sysctl.conf. In dieser suchen Sie die Zeile

net.ipv4.ip_forward=1

und entfernen vor ihr das Doppelkreuz. Anschließend speichern Sie die modifizierte Datei und starten Ihr System neu. Der Server ist jetzt einsatzbereit. Sie können nun damit beginnen, die entsprechenden Clients einzurichten.

Mit dem VPN verbinden

Damit Sie sich von Arbeitsplatzrechnern im Intranet aus mit dem VPN verbinden können, müssen Sie unter Windows ein VPN-Profil anlegen. Dazu öffnen Sie den Dialog Start > Einstellungen > Netzwerk und Internet > VPN und klicken oben auf die erste Option VPN-Verbindung hinzufügen.

Im sodann geöffneten Fenster selektieren Sie im Feld VPN-Anbieter die Option Windows (integriert), geben einen Verbindungsnamen an und anschließend den Servernamen oder dessen IP-Adresse in den entsprechenden Feldern. Danach selektieren Sie noch den Anmeldeinformationstyp und – falls benötigt – Benutzername und Passwort.

Nun können Sie sich via Windows mit dem VPN verbinden.

Nach einem Klick auf den Button Speichern und dem folgenden Schließen des Einstellungsdialogs können Sie die VPN-Verbindung über das Netzwerksymbol unten rechts im System-Tray aktivieren, indem Sie hinter dem entsprechenden Listeneintrag aufVerbinden klicken.

Fazit

Wenn Sie einen dedizierten VPN-Server einrichten, können Sie – im Vergleich zu externen VPN-Diensten – deutlich Kosten einsparen, was sich besonders für größere Organisationen lohnt.

Server auf Basis des Betriebssystems Linux mit freien VPN-Lösungen fallen dabei nicht nur durch die niedrigen Gestehungskosten positiv auf, sondern auch durch einen recht geringen Verwaltungsaufwand. Zusätzlich bieten sie durch die offene Verfügbarkeit des Quellcodes eine erhöhte Sicherheit und gewährleisten eine vollkommene Datensouveränität für die Betreiber, da alle Daten im eigenen Haus bleiben.

Lediglich die teils noch etwas umständlichen Installationsroutinen können wenig versierte Administratoren vor Probleme stellen. Unsere Schritt-für-Schritt-Anleitungen helfen Ihnen bei der Einrichtung Ihres VPN-Servers.

Autor: Erik Bärwaldt
Erik Bärwaldt ist seit mehr als zwei Jahrzehnten als IT-Consultant für kleine Unternehmen tätig. Darüber hinaus publiziert er regelmäßig Fachbeiträge in verschiedenen Medien zu den Themen Linux, freie Software und IT-Security.