Site-To-Site-VPNs mit Open Source und Linux aufbauen Netzwerke und Standorte per WireGuard koppeln
Anbieter zum Thema
Mit dem WireGuard-Protokoll können Unternehmen komplette Netzwerke und Niederlassungen miteinander verkoppeln. Das geht mit eigenen VPN-Servern und -Appliances, aber auch mit aktuellen Fritzboxen für KMU. Wir zeigen in diesem Beitrag die Möglichkeiten und Vorgehensweise.

WireGuard steht für eine Vielzahl von Appliances, Router und Server zur Verfügung. Auch in FritzOS 7.5x für Fritzboxen ist WireGuard integriert. Dadurch lassen sich Clients an ein Netzwerk per VPN über das Internet anbinden, aber auch komplette Netzwerke verbinden. Im Fall von AVM Fritzboxen steht bei der Einrichtung von WireGuard über den Menüpunkt „Benutzerdefinierte Einrichtung“ ein Menüpunkt zur Verfügung, mit dem ein WireGuard-VPN der Fritzbox mit einem anderen Wireguard-VPN auf einem anderen Gerät verbunden werden kann. Dabei muss es sich nicht um eine Fritzbox handeln. Nach der erfolgreichen Verbindung sind automatisch alle Geräte in den jeweiligen Netzwerken miteinander verknüpft.
WireGuard als Server, Appliance und Docker-Container
Um zwei Netzwerke mit WireGuard zu verbinden, reicht es aus, wenn auf irgendeine Art ein WireGuard-VPN im Netzwerk zur Verfügung steht. Das geht mit einer Fritzbox, einer Appliance, mit Lösungen wie OPNSense oder eigenen Installationen von WireGuard. Zum großen Teil sind auch keine Portfreigaben an beiden Standorten notwendig. Nur der Master-Standort benötigt Portfreigaben. Um ein Site-to-Site-VPN aufzubauen, reicht es aus, an jedem Standort einen VPN-Router zu betreiben. Das ist im Fall von WireGuard sehr einfach.
Dabei bleiben die beiden Standorte (Sites) in sich abgeschlossen, sind aber über den jeweils eigenen WireGuard-Router mit dem anderen Netzwerk verbunden. Der ganze Datenverkehr läuft über einen VPN-Tunnel der beiden WireGuard-Router im Internet. Drucker, Server, Arbeitsstationen, NAS-Geräte und andere Netzwerkkomponenten lassen sich dadurch optimal miteinander vernetzen. So ist es zum Beispiel möglich, dass Benutzer vom Standort A auf Drucker, Server oder Storage-Systeme in Standort B zugreifen und Daten austauschen können.
VPN-Server und VPN-Client zu einem Site-to-Site-VPN verbinden
Beim Aufbau eines Site-to-Site-VPNs wird am Standort A ein VPN-Server auf Basis von WireGuard erstellt. Hier werden auch Portfreigaben, Routen und andere Einstellungen festgelegt, die das VPN steuern. Am Standort B wird ein Router als VPN-Client für den VPN-Server konfiguriert, der die Verbindung zum VPN-Server aufbaut. Der Client wählt sich beim VPN-Server ein und baut die Verbindung auf. Nach dem erfolgreichen Verbindungsaufbau sind alle Netzwerkgeräte und Computer im Client-Netzwerk automatisch mit dem Server-Netzwerk verbunden.
Hier werden dann statische Routen definiert, über die von Standort B Datenverkehr für Standort A über das VPN geleitet wird. Umgekehrt werden auch am Standort A statische Routen zu Standort B angelegt.
Idealerweise sollte der VPN-Server über eine statische IP-Adresse verfügen. Zwar ist im Notfall auch eine dynamische IP-Adresse möglich, allerdings kann es in diesem Fall immer wieder zur Verbindungsabbrüchen zwischen den VPNs kommen. Der VPN-Client muss keine besonderen Freigaben erfüllen, es reicht eine Internetverbindung zum VPN-Server. Dennoch handelt es sich per Definition um jeweils einen VPN-Server/Router. Für die Verbindung eignet sich auch eine VM mit Ubuntu oder einem anderen Linux-System. Als VPN-Server kann auch ein Mini-PC zum Einsatz kommen, der wenig Energie verbraucht und dauerhaft in Betrieb sein kann.
Voraussetzungen für ein Site-to-Site-VPN mit WireGuard
Um mit WireGuard ein Site-to-Site-VPN aufzubauen, muss auf beiden Seiten ein WireGuard-fähiges Gerät, eine Linux-VM oder eine Appliance positioniert sein. Für das Routing ist es wichtig, dass in beiden Netzwerken verschiedene Subnetze konfiguriert sind, damit sich Routen anlegen lassen. Auf einer Seite des VPNs müssen zudem Portfreigaben erstellt werden können. DynDNS ist möglich statische IP-Adressen sind aber besser geeignet. Generell lassen sich Site-to-Site-VPNs auch ohne Portfreigaben konfigurieren, das ist allerdings dann etwas aufwendiger.
Wenn Portfreigaben angelegt werden können, ist es sinnvoll, eine erste Freigabe für den UDP-Port 51820 anzulegen. Das ist der Standard-Port für WireGuard. Es ist aber auch möglich, andere Ports zu verwenden. Vor dem Anlegen des VPNs ist es sinnvoll, eine statische Route zum jeweilis anderen VPN-Netzwerk anzulegen. Als Netzwerk wird der IP-Adressraum der anderen Seite des Netzwerks verwendet. Als „Next Hop“ wird der VPN-Server im lokalen Netzwerk verwendet, der die Daten anschließend über das VPN verschickt. Auf dem VPN-Client muss zudem eine statische Route angelegt werden. Das geht auch von Fritzboxen aus.
WireGuard installieren und konfigurieren
Wenn die Portfreigabe am Router festgelegt ist und die Routen konfiguriert sind, kann das eigentliche VPN konfiguriert werden. Dabei kann es sich um eine Ubuntu-Installation auf einem Mini-PC oder einer VM handeln. WireGuard wird auf Ubuntu zum Beispiel mit dem folgenden Befehl installiert:
sudo apt install wireguard
Auf dem Server sollte IP-Forwarding aktiviert werden. Das geht zum Beispiel in der Datei „/etc/sysctl.conf“, indem die Zeile „net.ipv4.ip_forward=1“ auf Ubuntu aktiviert bzw. gesetzt wird. Nach der Änderung werden diese mit „sudo sysctl -p“ aktiv geschaltet.
Danach erfolgt die Konfiguration von WireGuard im Verzeichnis „/etc/wireguard“. Hier können der Public und Private Key zum Beispiel mit dem folgenden Befehl generiert werden:
umask 077; wg genkey | tee privatekey | wg pubkey > publickey
Hier ist es sinnvoll, entweder mit sudo zu arbeiten, oder mit sudo -s eine Shell mit Root-Rechten zu öffnen. Die beiden Schlüsseldateien liegen danach in Verzeichnis und lassen sich mit „cat“ anzeigen. Auf dem VPN-Client muss ebenfalls WireGuard installiert werden. Auch hier sind Publickey und Privatekey notwendig. Die Konfiguration von WireGuard erfordert später, Inhalte der beiden Schlüssel anzuzeigen und zu speichern. Die Konfiguration von WireGuard erfolgt mit einer Konfigurationsdatei, die ebenfalls im WireGuard-Verzeichnis angelegt werden sollte, zum Beispiel mit:
sudo nano /etc/wireguard/wg0.conf
Der Befehl erstellt ein WG0-Interface, das für das VPN zum Einsatz kommt. Der Aufbau der Datei hängt von der jeweiligen Konfiguration im Netzwerk ab. In der WireGuard-Dokumentation ist das aber gut beschrieben https://www.wireguard.com/quickstart/. Die WireGuard-Entwickler zeigen die Einrichtung für ein Site-to-Site-VPN dort in einem Video.
:quality(80)/p7i.vogel.de/wcms/50/5d/505dc2f88d37c3dc5c9e0aa53b72b299/0109875844.jpeg)
Superschnelles VPN endlich auch für KMU und zu Hause nutzen
Praxis: Wireguard-VPN auf der FritzBox!
(ID:49234380)