WireGuard ist der “neue” VPN Server von Heute! Nicht das er als Open Source sowieso schon bei mir gewonnen hat, sondern er ist auch ein Leichtgewicht. Der schlanke SourceCode bringt ihm zusätzlich Performance, sodass wir alles an Board haben was wir brauchen.
Zusammengefasst, WireGuard ist ein sehr einfacher, sehr sicherer und sehr schneller VPN Server für alle möglichen Plattformen und Betriebssystemen.

Im letzten Video habe ich euch gezeigt wie man eine Client to Site Verbindung herstellt und habe euch die Konfiguration dazu hier im Blog aufgeschlüsselt. (WireGuard Client VPN)
Jetzt zeige ich euch wie man eine Site-to-Site VPN Verbindung herstellt und dann die Netzwerke auf der gegenüberliegenden Seite erreicht.
Anleitung: WireGuard Site-to-Site VPN Server
Schritt 1: Auf dem SERVER1 und SERVER2 ausführen
sh -c "echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list"
apt update
apt install linux-headers-$(uname --kernel-release)
apt install wireguard
nano /etc/sysctl.conf
# <- entfernen bei der Zeile "net.ipv4.ip_forward=1" und speichern
sysctl -p
cd /etc/wireguard/
umask 077; wg genkey | tee privatekey | wg pubkey > publickey
cat privatekey
cat publickey
chmod 600 /etc/wireguard/privatekey
Schritt 2: Nur auf SERVER1 ausführen
Konfigurationsdatei anlegen
nano /etc/wireguard/wg0.conf
[Interface] PrivateKey = <Dein privater Schlüssel [privatekey SERVER 1]> Address = 172.31.0.1/24 SaveConfig = true PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 [Peer] PublicKey = <Öffentlicher Schlüssel von [SERVER 2]> AllowedIPs = 192.168.0.0/24, 172.31.0.0/24 PersistentKeepalive = 25
In den Zeilen PostUP & PostDown das Interface anpassen wie es zu eurem System passt. Hier steht jetzt eth0, das kann aber bei euch anders sein. Prüfen könnt Ihr das mit “ip a“
Schritt 3: Nur auf SERVER2 ausführen
Konfigurationsdatei anlegen
nano /etc/wireguard/wg0.conf
[Interface] PrivateKey = <Dein privater Schlüssel [privatekey SERVER 2]> Address = 172.31.0.2/24 SaveConfig = true PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] PublicKey = <Öffentlicher Schlüssel von [SERVER 1]> Endpoint = <ServerIP oder Domain/FQDN>:51820 AllowedIPs = 10.0.0.0/8, 172.31.0.0/24 PersistentKeepalive = 25
Schritt 4: Auf SERVER1 und SERVER2 ausführen
wg-quick up wg0
wg
##Das zeigt dir den Status der Verbindung an
Das wg-quick Kommando startet die Wireguard Verbindung mit der entsprechend hinterlegten Konfiguration, welche wir im vorherigen Schritt erstellt haben. Wenn eure Konfigurationsdatei anders heißen sollte, müsst Ihr den Befehl natürlich anpassen. wg0 ist hier nur als Beispiel genommen.
Schritt 5: Autostart (Server1 & Server2)
Wenn WireGuard automatisch mit dem System starten soll, dann folgenden Befehl absetzen.
systemctl enable wg-quick@wg0
Schritt 6: Routing
Ihr müsst natürlich auf beiden Seiten für das Routing sorgen. Hier ein Auszug aus dem Video wie das Routing in der Fritzbox aussehen könnte.

Das könnte dich auch interessieren:
5 Tipps für mehr Besucher auf der Webseite
PfSense installieren & konfigurieren. Einfach erklärt. Wie gehe ich vor?!
Die ersten 1000 YouTube Abonnenten. Wie hab ich es geschafft?
Du brauchst weitere Hilfe oder Lösungsansätze im Umgang mit WireGuard? Du benötigst Troubleshooting Tipps oder allgemeine Hilfe? Dann kontaktiere mich über die Kommentare oder schreibe mir direkt eine Nachricht.
dennis schröder
5. Januar 2021 um 00:47
Site-To-Site VPN-Verbindung funktioniert bei mir. Am Anfang konnte ich die IPs vom VPN-Server und RaspberryPI pingen. Nachdem ich mein Handy als neuen Client eingerichtet habe, funktioniert ein Ping nicht mehr.
Vom VPN-Server kann ich das Netz vom RaspberryPI (192.168.10.0/24) per Ping erreichen. Selbst das Handy als Client kann ich über den VPN-Server auf das Netzwerk 192.168.10.0/24) per Browser zugreifen.
Komisch. Hattest Du das Problem auch schonmal?
Viele Grüße,
Oliver
10. Februar 2021 um 03:02
Hallo Dennis,
Leider bin ich in Linux nicht fit. Du hast ja in deinen Video Site-to Site eine Verbindung von einem Windows-Rechner zu deinem Server gemacht. Ich versuche eine VPN Verbindung zwischen zwei Windows Rechnern aufzubauen. Soweit ich Wireguard verstanden habe, muss man eigentlich auf dem Router nur den ListenPort forwarden, die Forwarding Tabellen scheint Winguard in jedem Windowsrechner automatisch zu erstellen. Trotzdem wird keine Verbindung über das Internet aufgebaut. Wenn beide Rechner im gleichen Netz sind, klappt das aber sofort. Kann ich dir meine Zeichnung schicken ?
Viele Grüße aus dem Süden
Günther
16. März 2021 um 20:22
Hallo, schönes howto. Danke dafür. Icn habe leider keine Möglichkeit eine statische Route zu setzen und möchte nicht jeden Rechner im Netz konfigurieren. Welche Möglichkeiten bleiben mir noch ?
Viele Grüße Klaus
27. März 2021 um 23:44
Hi Dennis,
danke für das Tutorial. Hat mich motiviert, es selbst mal zu probieren.
Ein paar Stolpersteine, die ich aus dem Weg räumen musste, die bisher unerwähnt blieben.
1. Beim Raspi 3B hat meine installation mit apt-get install wireguard nicht das passende dkms Modul produziert, erst mit dem pivpn hat das geklappt. Das fiese war, dass das wireguard aber nicht gemerkt hat und ich es nur über
systemctl status wg-quick@service
rausgefunden habe
2. Da einer meiner Anschlüsse ein DS-Lite Tunnel ist, stotterte bei mir die Verbindung enorm, aber nur in eine Richtung. ssh funktionierte gut, aber schon ein “top” oder “ps” führten zu 30 Sekunden eingefrorenem Terminal. Die Lösung war das setting
MTU = 1300
im wg0.conf auf beiden Seiten, seitdem läuft es super.
Danke dafür!
@Klaus Rheinheimer: wie in Dennis Anleitung, ich habe in meinem Router eine statische Route gesetzt, so dass in meinem Fall alles für 192.168.1.0/24 an die Raspi 3B Adresse 192.168.5.x geschickt wird und im anderen Router alles für 192.168.5.0/24 an die Raspi 4B Adresse 192.168.0.x geschickt wird. Damit braucht keiner der Teilnehmer eine eigene Route.
Beste Grüße,
Torsten
6. April 2021 um 23:09
Vielen Dank, für den Tipp mit dem MTU.
Endlich geht meine Wireguard Verbindung.
30. März 2021 um 09:07
Bei Site2Site wird nicht genattet.
13. April 2021 um 10:59
Ich weiß auch nicht warum man auf den Gedanken kommt NATten zu wollen, ggf. Security? K.A.
Jedenfalls, wenn man schön die statischen Routen in den Routern einträgt kann man NAT einfach auslassen, dann ist ja auch die Rückroute gesichert!.
Man lässt einfach bei beiden conf Dateien alles (in der jeweiligen Zeile) ab dem Semikolon weg:
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostDown = iptables -A FORWARD -i wg0 -j ACCEPT
In der entfernten Fritz.Box z.B. sehe ich die Anmelde IP dann nicht mehr vom VPN Server im gleichen Netz, sondern vom Client aus dem anderen Netz.