Wireguard ist eine VPN-Software (Virtual Private Network), die schnellen Aufbau der Verbindung und effiziente Datenübertragung bietet. Per VPN lassen sich zwei Netzwerke miteinander verbinden. Die Technik kann man für den sicheren Zugriff auf das heimische Netzwerk verwenden, beispielsweise um am Urlaubsort Smarthome-Geräte zu steuern oder auf Netzwerkressourcen zuzugreifen.
Außerdem lässt sich der komplette Internetverkehr über das VPN leiten: Gleich an welchem Ort der Welt sieht es dann so aus, als ob Sie zu Hause vor dem Gerät sitzen. Streamingdienste oder Mediatheken, die im Ausland gesperrt sind („Geoblocking“), arbeiten ohne Einschränkungen. In fremden WLANs sorgt VPN für Sicherheit, weil der gesamte Datenverkehr verschlüsselt wird.
Wir beschreiben, wie sich Wireguard als Server einrichten lässt und wie die Clientkonfiguration dafür aussieht. Wir beschreiben nur die Konfiguration für IPv4, wofür eine öffentliche IPv4-Adresse vom Provider erforderlich ist. Information zur IPv6-Konfiguration finden Sie hier.
Wer eine Fritzbox mit Fritz-OS ab Version 7.50 besitzt, kann direkt zu Punkt 5 springen und Wireguard im Router aktivieren.
Lesetipp: Warum Sie unbedingt einen VPN-Dienst nutzen sollten
1. Wireguard installieren

Wireguard-Server einrichten: Das Script „wireguard-install.sh“ installiert die nötigen Softwarepakete und fragt die Einstellungen ab. In der Regel können Sie die Vorgaben übernehmen.
IDG
Wir gehen bei unserem Konfigurationsbeispiel davon aus, dass in Ihrem Netzwerk ein Linux-PC mit Ubuntu 22.04 oder Linux Mint 21 läuft, der auch als VPN-Server dienen soll. Clients, also Geräte, die sich per VPN mit Ihrem Netzwerk verbinden sollen, können unter Linux oder Windows laufen. Die Clientsoftware ist außerdem für Android und iOS verfügbar.
Die Installation gelingt am schnellsten über ein Script, das Sie herunterladen und starten. Führen Sie im Terminal die folgenden drei Befehle aus:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
sudo ./wireguard-install.sh
Sollte das Tool curl nicht vorhanden sein, installieren Sie es über das gleichnamige Paket. Das Script fragt die Optionen der Konfiguration nacheinander ab. In der Regel müssen Sie nur mit Eingabetaste bestätigen. Ein Beispiel sehen Sie in der Abbildung auf der nächsten Seite, Erklärungen lesen Sie im nächsten Punkt. Kontrollieren Sie in einem zweiten Terminal mit
ip a
die IP-Adresse sowie die Bezeichnung des Netzwerkadapters und passen Sie gegebenenfalls an, was das Script automatisch erkannt hat. Bei „Server Wireguard port“ haben wir den Wert „51820“ eingetragen, weil dies der Standardport ist.
Das Script richtet im letzten Schritt die erforderlichen Zusatzpakete ein. Die Serverkonfiguration wird unter „/etc/wireguard/wg0.conf“ gespeichert.
Danach geht es mit der Konfiguration des ersten Clients weiter. Vergeben Sie eine ID, beispielsweise „01“, und bestätigen Sie die Optionen jeweils mit der Eingabetaste. Die Konfigurationsdatei für Linux oder Windows liegt in Ihrem Home-Verzeichnis, beispielsweise mit dem Namen „wg0-client-01.conf“. Die Länge des Dateinamens (ohne Extension) darf maximal 15 Zeichen betragen. Sonst akzeptiert Wireguard die Datei nicht. Um weitere Clients zu konfigurieren, starten Sie das Script erneut. Tippen Sie „1“ („Add a new user“) ein und bestätigen Sie mit der Eingabetaste. Die IP-Adressen werden automatisch erzeugt, Sie können die Werte einfach übernehmen.
Router konfigurieren und dynamische DNS: Wenn Ihr Internetanbieter keine feste IP-Adresse liefert, verwenden Sie einen Anbieter für dynamische IP-Adressen. Kostenlos sind beispielsweise https://freedns.afraid.org oder www.noip.com. Fritzbox-Nutzer können https://myfritz.net nutzen. Im Router muss außerdem eine Weiterleitungsregel („Port forwarding“) für den Port „51820“ auf den Server-PC eingerichtet sein.
2. Konfiguration für den Server

Serverkonfiguration: Die Konfigurationsdatei enthält die Werte für Server und Clients. Die Befehle hinter
„PostUp“ und „PostDown“ sorgen für die Weiterleitung der Datenpakete.
IDG
Die Datei „/etc/wireguard/wg0.conf“ enthält den Abschnitt „[Interface]“ mit der Konfiguration des Wireguard-Servers. Hinter „Address“ steht die interne IP-Adresse für das VPN „10.66.66.1/24“. In diesem Adressraum findet die Kommunikation mit den Clients statt. „ListenPort“ legt den Port fest, auf dem Wireguard eingehende Verbindungen erwartet. „PrivateKey“ ist der Sicherheitsschlüssel des Servers, mit dem sich prüfen lässt, ob ein Client zum Verbindungsaufbau berechtigt ist.
Danach folgen mehrere Zeilen mit „PostUp“ und „PostDown“, die über iptables-Regeln die Durchleitung der Pakete zwischen dem Wireguard-Interface („wg0“) und dem Netzwerkadapter festlegen.
Im Abschnitt „[Peer]“ wird der Server mit den Clients bekannt gemacht. Hinter „PublicKey“ steht der öffentliche Schlüssel des Clients, der für den Verbindungsaufbau nötig ist. „PresharedKey“ ist ein zusätzliches Sicherheitsmerkmal und beim Server und Client identisch. „AllowedIPs“ enthält die IP-Adressen im Wireguard-Tunnel, die der Client verwenden darf, beispielsweise „10.66.66.2/32“. In eigenen „[Peer]“-Abschnitten für weitere Clients wird die Adresse hochgezählt, etwa „10.66.66.3/32“, „10.66.66.4/32“ und so weiter.
Alle IP-Adressen müssen bei Wireguard im CIDR-Format (Classless Inter-Domain Routing) angegeben werden. Einen Umrechner finden Sie unter www.ipaddressguide.com/cidr. „/32“ ergibt nur genau die IP „10.66.66.2“. „10.66.66.1/24“ unter „[Interface]“ umfasst den gesamten Bereich von „10.66.66.0“ bis „10.66.66.255“.
3. Konfiguration für den Client

Serverkonfiguration: Die Konfigurationsdatei enthält die Werte für Server und Clients. Die Befehle hinter „PostUp“ und „PostDown“ sorgen für die Weiterleitung der Datenpakete.
IDG
Die Datei „wg0-client-01.conf“ sieht ähnlich aus wie die Konfigurationsdatei beim Server. Unter „[Interface]“ stehen der „Private- Key“ des Clients und die IP-Adresse. Hinter „DNS“ hat das Script öffentliche DNS-Server von Cloudflare eingetragen. Sie können auch andere IPs verwenden, beispielsweise den öffentlichen DNS-Server „8.8.8.8“ von Google. Oder Sie tragen die DNS-Server des Internetproviders ein, den der Wireguard-Server verwendet.
Im Abschnitt „[Peer]“ steht der „PublicKey“ des Clients und der mit dem Server gemeinsam genutzte „PresharedKey“. Hinter „AllowedIPs“ sind die IP-Bereiche konfiguriert, die durch den Wireguard-Tunnel befördert werden. Bei „0.0.0.0/0“ läuft der gesamte Internetverkehr über das VPN. Steht hier „192.168.1.0/24“, dann kann der Client nur auf Geräte im lokalen Netzwerk des Servers zugreifen, alle anderen Zugriffe laufen über die aktuelle Internetverbindung des Clients. Der Adressbereich muss zum Netzwerk passen, beispielsweise „192.168.178.0/24“ bei der Standardkonfiguration einer Fritzbox.
Die Adresse hinter „Endpoint“ verweist auf die IP-Adresse und Port des Servers im lokalen Netzwerk. Das funktioniert so nicht, weil der Server unter dieser IP über das Internet nicht erreichbar ist. Tragen Sie für einen ersten Test die öffentliche IP des Routers ein, die Sie beispielsweise über www.whatsmyip.org herausfinden. Oder Sie konfigurieren gleich einen Anbieter für dynamisches DNS.
Aktivieren Sie im Router außerdem die Portweiterleitung auf die interne IP und den Port des Wireguard-Servers.
Für das Smartphone erzeugen Sie mit
qrencode -o conf.png < ~/wg0-client-01.conf
einen passenden QR-Code.
4. Client für Wireguard einrichten
Auf einem anderen PC, der als Client dienen soll, installieren Sie im Terminal die nötige Software mit
sudo apt install wireguard resolvconf
Kopieren Sie die angepasste Datei „wg0- client-01.conf“ vom Server in den Ordner „/etc/wireguard“ (als root) und ändern Sie die Zugriffsrechte (drei Zeilen):
sudo chown root:root /etc/ wireguard/wg0-client-01.conf
sudo chmod 644 /etc/wireguard/wg0-client-01.conf
sudo chmod 755 /etc/wireguard
Starten Sie die Verbindung:
sudo wg-quick up /etc/wireguard/wg0-client-01.conf
Der Aufbau der Verbindung lässt sich mit
sudo wg show
prüfen. Hinter „transfer:“ sehen Sie, viel viele Daten übertragen und empfangen wurden. Beenden Sie die VPN-Verbindung folgendermaßen:
wg-quick down /etc/wireguard/wg0-client-01.conf
Für einen ausführlichen Test müssen Sie die Verbindung in einem anderen Netzwerk aufbauen. www.whatsmyip.org meldet ohne VPN die öffentliche IP des aktuellen Netzwerks und mit aktiviertem VPN die IP des Heimnetzwerks.
Für tägliche Nutzung ist eine grafische Oberfläche zur Steuerung von Wireguard wünschenswert. Der Netzwerkmanager ab Ubuntu 20.04 unterstützt Wireguard nur unvollständig, denn Wireguard-Verbindungen lassen sich nur über einen Umweg aktivieren und deaktivieren. Die Konfigurationsdatei importieren Sie im Terminal mit
nmcli connection import type wireguard file /etc/wireguard/wg0-client-01.conf
Die Verbindung wird damit sofort aktiviert. Mit dem Befehl
nm-connection-editor
können Sie die Konfiguration bearbeiten. Unter „Allgemein“ entfernen Sie das Häkchen vor „Automatisch mit Priorität verbinden“. Mit Hilfe von
nmtui-connect
lässt sich die VPN-Verbindung über eine einfache grafische Oberfläche manuell beenden oder starten.

Grafischer Helfer: Wireguird kann VPN-Verbindungen aufbauen und beenden, wofür root-Recht erforderlich ist. Außerdem lässt sich die Konfiguration bearbeiten.
IDG
Wireguird bietet sich als Alternative an. Unter „Releases“ wird ein DEB-Paket für die Installation angeboten. Das Tool berücksichtigt vorhandene Konfigurationen unter „/etc/wireguard“, über „Add Tunnel“ lassen sich Konfigurationsdateien importieren.
Nutzer von Linux Mint können auch ein Leistenapplet verwenden. Klicken Sie die Leiste am unteren Rand des Bildschirms mit der rechten Maustaste an und gehen Sie auf „Applets“. Klicken Sie auf „Herunterladen“, suchen Sie nach „Wireguard“ und klicken Sie auf die Schaltfläche am rechten Rand der Zeile. Wechseln Sie zu „Verwalten“ und klicken Sie auf die „+“-Schaltflächen. Nach einem Klick auf das neue Leisten-Applet lässt sich die Wireguard-Verbindung aktivieren.
Wireguird und das Mint-Applet fordern bei jeder Aktion administrative Rechte, die Sie mit Ihrem Passwort bestätigen müssen. Die Netzwerkmanager-Tools kommen auch ohne erhöhte Rechte aus.
5. Fritzbox als Wireguard-Server

Wireguard mit der Fritzbox: Die Serverkonfiguration ist mit wenigen Mausklicks erledigt. Die Clientkonfiguration laden Sie herunter und kopieren die Datei nach „/etc/wireg“.
IDG
Fritz-OS unterstützt Wireguard ab Version 7.50. Falls noch nicht vorhanden, richten Sie über die Fritzbox-Oberfläche unter „Internet –› MyFritz!-Konto“ zuerst ein Myfritz-Konto ein. Alternativ stellen Sie unter „Internet –› Freigaben –› DynDNS“ einen anderen Anbieter ein.
Gehen Sie auf den Punkt „Internet –› Freigaben –› VPN (WireGuard)“. Hier klicken Sie auf „Verbindung hinzufügen“, belassen Sie die Option „Vereinfachte Einrichtung“ und klicken auf „Weiter“. Geben Sie der neuen Konfiguration eine aussagekräftige Bezeichnung, beispielsweise „Notebook“, und klicken Sie auf „Fertigstellen“.
Danach sehen Sie einen QR-Code für Smartphones oder Tablets, nach einem Klick auf „Einstellungen herunterladen“ speichern Sie die Konfigurationsdatei für PCs. Speichern Sie die Einstellungen sofort, denn später lässt sich diese Seite nicht mehr aufrufen. Verwenden Sie die Konfigurationsdatei auf dem Client-PC wie in Punkt 4 beschrieben.
Die Fritzbox konfiguriert „AllowedIPs = 192.168.178.0/24,0.0.0.0/0“ was den Zugang zum Fritzbox-Netzwerk ermöglicht und den gesamten Internetverkehr über das VPN leitet.
Wenn Sie nur das Heimnetzwerk benötigen, lassen Sie „0.0.0.0/0“ weg.
FritzOS 7.50: So richten Sie Wireguard ein und das bringt das VPN im Alltag