WireGuard VPN - Site-to-Site

Was ist ein VPN?

Das konventionelle VPN bezeichnet ein virtuelles privates Kommunikationsnetz. Virtuell in dem Sinne, dass es sich nicht um eine eigene physische Verbindung handelt, sondern um ein bestehendes Kommunikationsnetz (Internet), das als Transportmedium verwendet wird. Das VPN dient dazu, Teilnehmer des bestehenden Kommunikationsnetzes an ein anderes Netz zu binden.

WireGuard ist eine freie Software zum Aufbau eines virtuellen privaten Netzwerkes (VPN) über eine verschlüsselte Verbindung. WireGuard verfügt zudem aufgrund des Aufbaus über einige Vorteile gegenüber anderen VPN-Protokollen:

  • Eine einfache, minimierte Codebasis, die somit auch leicht verständlich und überprüfbar ist
  • hohe Übertragungsgeschwindigkeiten, da für die Verschlüsselung und Übertragung kaum Ressourcen der Server und Clients belastet werden
  • plattformübergreifende Integration in verschiedene Betriebssysteme wie Windows, Linux, macOS, Android, iOS und weitere.

Site-to-Site VPN

Unter einer Site-to-Site VPN-Verbindung versteht man, dass komplette Netzwerke miteinander verbunden werden. Damit ist etwa die Anbindung einer Zweigstelle an die Hauptstelle eines Unternehmens gemeint. Bei einer Site-to-Site VPN verwenden die Clients keine VPN-Software. Der komplette Netzwerktraffic, wird durch ein VPN-Gateway gesendet.

Das VPN-Gateway ist wiederum für die Kapselung und die Verschlüsselung des nach außen gehenden Traffics verantwortlich. Der Datenverkehr wird durch einen VPN-Tunnel über das Internet an ein zugehöriges VPN-Gateway am Ziel geschickt. Beim Empfang entfernt das zugehörige VPN-Gateway die Header, entschlüsselt den Inhalt und leitet die Pakete an den Ziel-Host innerhalb des privaten Netzwerkes.

Vorbereitungen

Damit Sie direkt mit der Einrichtung Ihres zukünftigen VPNs beginnen können, müssen einige Dinge vorbereitet werden:

  • Installation & Einrichtung einer virtuellen Maschine (in meinem Beispiel, nutze ich den VMM von Synology und nutze ein Debian 11 minimal Image)
  • Netzwerkkonfiguration der virtuellen Maschine

Einrichtung | Installation

Für diese Anleitung habe ich diese Zeichnung für ein besseres Verständnis angefertigt. Ich rate Ihnen dazu, dass für Ihr Netzwerk auch anzufertigen, damit Sie den Überblick wahren können. Ich nutze als Gegenstelle einen Cloud-Server von Hetzner. Somit ersetzte ich natürlich die IP-Adresse des Servers, auf der blauen Seite, mit der öffentlichen IP-Adresse des Servers. Des Weiteren ist der Cloud-Server Teil eines 10.0.0.0/24 Netzes.

WireGuard auf beiden Seiten installieren

Auf beiden Seiten muss natürlich WireGuard installiert werden.

Bash: WireGuard installieren
apt update && apt install linux-headers-$(uname --kernel-release) && apt install wireguard

IP-Forwarding aktivieren auf beiden Seiten

In bestimmten Szenarien kann es erforderlich sein, die Linux-IP-Weiterleitung auf einem Linux-System zu konfigurieren. Wenn der Linux-Server als Firewall, Router, NAT-Gerät oder VPN fungiert, muss er in der Lage sein, Pakete weiterzuleiten, die für andere Ziele (als ihn selbst) bestimmt sind.

In der Konfigurationsdatei /etc/sysctl.conf muss folgendes auskommentiert werden:

Code: sysctl.conf
# Für IPv4 entfernen Sie das "#" am Zeilenanfang
net.ipv4.ip_forward=1

# Für IPv6 entfernen Sie das "#" am Zeilenanfang
net.ipv6.conf.all.forwarding=1

Private & Public Key auf beiden Seiten erstellen

WireGuard benötigt zur Authentifizierung und dem Betrieb des VPN-Tunnels öffentliche und private Schlüsselpaare, um einen gesicherten Datenverkehr zu ermöglichen. Um diese zu erstellen, benötigen Sie die unten enthaltenen Befehle.

Bash
cd /etc/wireguard/
umask 077; wg genkey | tee privatekey | wg pubkey > publickey
cat privatekey && cat publickey
chmod 600 /etc/wireguard/privatekey

WireGuard Site-A Konfigurationsdatei

WireGuard Site-B Konfigurationsdatei

Schnittstelle wg0 auf beiden Seiten

Damit die Kommunikation stattfinden kann, muss natürlich das Interface wg0 auch eingeschaltet werden, dies muss auf beiden Seiten geschehen. Anschließend sollte die Verbindung in den »Autostart« übernommen werden, damit bei einem Neustart auch die Verbindungen wieder aufgebaut werden.

Bash
wg-quick up wg0 && systemctl enable wg-quick@wg0

Um zu sehen, ob die Verbindung aufgebaut wurde, kann der Befehl wg in der Konsole verwendet werden.

Firewall

WireGuard kommuniziert über das UDP-Protokoll, dies muss natürlich auf der eingesetzten Firewall mitgeteilt werden, damit der Datenstrom nicht blockiert und abgewiesen wird. Kontrollieren Sie also Ihre Firewall-Regeln und ergänzen Sie diese. In meinem Szenario kommt hier die Firewall von Hetzner zu tragen und muss hier angepasst werden.

CloudPanel

Sollten Sie WireGuard auf einem CloudPanel Server installieren, um diesen an ein weiteres Netz anzubinden, muss natürlich auch die Software-Firewall einen Eintrag besitzen. Es ist allerdings (noch) nicht möglich, speziell UDP-Ports freizugeben. Deshalb ist es notwendig, dies über die Konsole mit folgendem Befehl zu erledigen:

Bash: ufw
sudo ufw allow 51820/udp

Routing

Damit das interne Netz auch die andere Seite erreichen kann, ist es wichtig eine neue Route anzulegen. Ich gehe davon aus, dass die meisten privat Leute eine Fritz!Box bei sich stehen haben. Aber auch bei anderen Routern sollte dies simpel eingerichtet werden können. Hier zeige ich lediglich die Einrichtung in einer Fritz!Box. In diesem Bild gibt es jedoch eine Besonderheit, welches das lokale Netz betrifft. Hier muss natürlich 192.168.0.253 statt 192.168.178.4 stehen, um meinem obigen Beispiel zu folgen.

Fazit

Mit einem Site-to-Site VPN können also weit entfernte Netzwerke miteinander verbunden werden. Des Weiteren kann man ein Site-to-Site VPN auch mit einer Client-to-Site VPN für Mobile Endgeräte kombinieren, damit man auch Mobil in einem gesicherten Netzwerk auf lokale Ressourcen zugreifen kann. Natürlich können auch weitere Netzwerke über weitere Schnittstellen (wg2, wg3 usw.) verbunden werden. Auch die Kombination mit einem Pihole oder AdGuard Home ist hier möglich.

Über den Autor

Ich bin IT-Spezialist im Fachbereich der IT-Administratoren. Neben Beruf und Familie, erstelle ich als, Teil meines Hobbys, gerne Tutorials, sowie WoltLab Stile. Aktuell befinde ich mich auf meinem Informationstechnikermeister.

Foxly Team

Kommentare