Skip to main content
Skip table of contents

WireGuard Road Warrior Einrichtung

Einführung

WireGuard ist ein einfaches, schnelles VPN-Protokoll, das moderne Kryptographie. Es zielt darauf ab, schneller und weniger komplex als IPsec zu sein, während es gleichzeitig eine wesentlich leistungsfähigere Alternative zu OpenVPN darstellt. Ursprünglich für den Linux-Kernel veröffentlicht, ist es nun plattformübergreifend und breit einsetzbar.

Dieser Artikel beschreibt die Einrichtung eines zentralen WireGuard-Servers, der auf einem Schulrouter Plus läuft und die Konfiguration eines Clients.

Schritt 1 - Installation

Installieren Sie das Plugin über System ‣ Firmware ‣ Erweiterungen und wählen Sie das Paket os-WireGuard.

Sobald das Plugin installiert ist, aktualisieren Sie die Seite und Sie finden das WireGuard-Konfigurationsmenü über VPN ‣ WireGuard.

Schritt 2a - WireGuard Server einrichten

Erstellen Sie zunächst einen WireGuard VPN-Server über VPN ‣ WireGuard unter dem Reiter Lokal. Legen Sie über die Schaltfläche + eine neue Instanz an und passen Sie die folgenden Werte nach Bedarf an:

Aktiviert

Ausgewählt

Kontrollieren Sie, um den Server zu aktivieren.

Name

WireGuard

Der Name der Server-Instanz

Instanz

(automatisch ausgefüllt)

Automatisch generierte Server-Instanznummer

Öffentlicher Schlüssel

(leer)

Leer lassen, Schlüssel werden automatisch generiert

Privater Schlüssel

(leer)

Leer lassen, Schlüssel werden automatisch generiert

Port

51820

Server-Listen-Port. Wenn mehrere Server existieren, muss dieser Port eindeutig sein.

DNS-Server

192.168.1.254

Bei Bedarf mit DNS-Server befüllen

Tunneladresse

10.10.10.1/24

Verwenden Sie die CIDR-Notation und vermeiden Sie Subnetzüberschneidungen mit regelmäßig verwendeten Netzwerken.

Peers

(leer)

Liste der Peers für diesen Server, bei Erstkonfiguration leer lassen

Routen deaktivieren

Nicht ausgewählt

Damit wird die Installation von Routen verhindert.

Stellen Sie sicher, dass Tunneladresse ein /24 oder die gewünschte CIDR-notierte Subnetzmaske ist, verwenden Sie kein /32.

Wenn der Tunnel nach dem Klicken auf Speichern erstellt ist, öffnen Sie die neu erstellte Instanz erneut und notieren Sie sich den öffentlichen Schlüssel, der gerade generiert wurde. Dieser Schlüssel wird beim Einrichten jedes Clients benötigt, der eine Verbindung zu diesem Server herstellen möchte. Achten Sie darauf, ihn zu schützen und sichere Übertragungsmethoden zu den Clients zu verwenden (z. B. PGP-verschlüsselt oder per SMS).

Verwenden Sie die Registerkarte Endpunkte, um den ersten Client hinzuzufügen. Verwenden Sie die Schaltfläche + und konfigurieren Sie Folgendes:

Aktiviert

Ausgewählt

Kontrollieren Sie, um den Server zu aktivieren.

Name

Kunde1

Der Name des Clients

Öffentlicher Schlüssel

PubKey

Öffentlichen Schlüssel vom Client bereitstellen

Geheimnis teilen

(leer)

optional - gemeinsames Geheimnis (PSK) für diese Gegenstelle

ErlaubteIPs

10.10.10.2/32

IP-Adresse des Clients (Peer) - achten Sie darauf, bei mehreren Clients /32 zu verwenden.

Endpunkt-Adresse

(leer)

Nicht erforderlich für eingehende Verbindungen - dynamisch

Endpunkt Port

(leer)

Nicht erforderlich für eingehende Verbindungen - dynamisch

Keepalive

(leer)

optional - setzt persistentes Keepalive-Intervall

Klicken Sie auf Speichern und kehren Sie zur Registerkarte Lokal zurück. Wählen Sie nun unter Peers die neu angelegte Gegenstelle aus. Klicken Sie auf Speichern.

Aktivieren Sie anschließend WireGuard unter der Registerkarte Allgemein und fahren Sie mit der Einrichtung fort. Fügen Sie unter Endpunkte weitere Clients hinzu und erlauben Sie ihnen den Zugriff auf den Wireguard-Server, indem Sie sie unter Peers auswählen.

Durch Drücken von Speichern wird effektiv wg-quick down wg0 gefolgt von wg-quick up wg0 ausgeführt (wobei 0 die Instanz-ID des Servers ist). Obwohl es nicht oft erforderlich ist, ist es manchmal nützlich, einen nicht startenden Tunnel über die CLI mit wg show zu debuggen. Konfigurationsdateien werden unter /usr/local/etc/wireguard/wgX.conf gespeichert.

Schritt 2b - Firewall-Regeln einrichten

Damit sich externe Clients mit dem WireGuard-Server verbinden können, müssen Firewall-Regeln erstellt werden, die diesen Datenverkehr vom WAN zum LAN zulassen. Wählen Sie Firewall ‣ NAT ‣ Portweiterleitung und klicken Sie auf +Hinzufügen, um eine Regel mit den folgenden Informationen zu erstellen:

Schnittstelle

WAN

Die Schnittstelle, für die diese Regel gilt

TCP/IP-Version

IPv4

Wählen Sie die Internetprotokollversion, für die diese Regel gilt

Protokoll

UDP

WireGuard arbeitet über UDP

Quelle

Annahme von Datenverkehr aus beliebigen Quellen

Quellport

Verkehr auf einem beliebigen Port annehmen

Ziel

WAN-Adresse

Verkehrsziel

Zielhafen

51820

Spezifizieren Sie den gewünschten Port oder Portbereich.

Ziel-IP umleiten

192.168.1.254

Die LAN-IP der Firewall

Zielport umleiten

51820

Der Listen-Port für den WireGuard-Server

Beschreibung

WG WAN zu LAN

Optional - geben Sie eine Beschreibung an

Wenn granularere Regeln erforderlich sind, beachten Sie, dass es eine neue Schnittstelle wg0 gibt, an der diese konfiguriert werden können.

Der letzte Teil besteht darin, den Verkehr aus dem WireGuard-Netzwerk zuzulassen. Definieren Sie zunächst einen Alias (z. B. VPN_clients) und fügen Sie darin die IP-Adressen (z. B. 10.10.10.2 und 10.10.10.3) oder das Subnetz (z. B. 10.10.10.0/24) der WireGuard-Clients ein, von denen Verkehr zugelassen werden soll. Tun Sie dies über Firewall ‣ Aliase (klicken Sie unten rechts auf +).

Erstellen Sie dann eine Firewall-Regel über Firewall ‣ Regeln ‣ WireGuard (klicken Sie oben rechts auf +Hinzufügen), mit den folgenden Informationen (wenn ein Element nicht angegeben ist, lassen Sie es auf dem Standardwert):

Schnittstelle

WireGuard

Die Schnittstelle, für die diese Regel gilt

Quelle

VPN_Kunden

Quellsubnetz - verwenden Sie den wie oben definierten Alias.

Ziel

jeglich

Verkehrsziel

Beschreibung

WG WAN zu LAN

Optional - geben Sie eine Beschreibung an

Wenn Sie nur eine lokale WireGuard-Instanz und nur einen WireGuard-Endpunkt konfiguriert haben, können Sie das standardmäßige WireGuard-Netz als Quelle verwenden, anstatt einen neuen Alias zu definieren und zu verwenden.

Die unter Firewall ‣ Regeln ‣ WireGuard definierten Regeln haben Vorrang vor den individuell für jeden Tunnel konfigurierten Regeln.

Verbinden Sie sich von einem Client aus mit dem Tunnel und verifizieren Sie die Verbindung über VPN ‣ WireGuard unter Verwendung der Registerkarten List Configuration und Handshakes, wo die Peers anhand ihrer öffentlichen Schlüssel identifiziert werden. Zu diesem Zeitpunkt sollte der Tunnel betriebsbereit sein, aber der Client hat nur eingeschränkten Zugriff.

Schritt 2c - Zuweisungen und Routing

Bisher erlaubt die hier dokumentierte Einrichtung Ihren Clients, die über Zugelassene IPs konfigurierten internen Netzwerke zu erreichen. Ein häufiger Anwendungsfall ist jedoch, dass Benutzer den gesamten Datenverkehr durch einen VPN-Tunnel leiten möchten. Weisen Sie dem WireGuard dazu über Schnittstellen ‣ Zuweisungen ein Interface zu und wählen Sie im Dropdown-Menü Neues Interface die wgX-Instanz aus. Klicken Sie auf +, um die Schnittstelle zuzuweisen. Klicken Sie nach der Zuweisung auf Speichern.

Benennen Sie die Schnittstelle nach Bedarf um und wählen Sie Entfernen der Schnittstelle verhindern, indem Sie die Schnittstelle in der Liste Schnittstellen ‣ [wgX] auswählen. Weisen Sie der Schnittstelle keine IP-Adresse zu.

Der nächste Schritt ist die Konfiguration von Outbound NAT. Gehen Sie zu Firewall ‣ NAT ‣ Ausgehend und fügen Sie eine Regel hinzu. Stellen Sie zunächst sicher, dass die Regelerstellung auf manuell oder hybrid eingestellt ist (wenn Sie unsicher sind, wählen Sie hybrid). Fügen Sie eine Regel (über +Hinzufügen oben rechts) mit den folgenden Werten hinzu (wenn nicht ausdrücklich unten erwähnt, belassen Sie es bei den Standardwerten):

Schnittstelle

WAN

Die Schnittstelle, für die die Regel gilt

Quelladresse

wg0 Netz

Tunnelnetzwerk zuvor konfiguriert

Übersetzung / Ziel

WAN-Adresse

Pakete, die dieser Regel entsprechen, werden auf die hier angegebene IP-Adresse abgebildet.

Um das Internet von einem Client über das VPN zu erreichen, konfigurieren Sie AllowedIPs auf 0.0.0.0/0.

Bei der Zuweisung von Schnittstellen können diesen Gateways hinzugefügt werden. Dies ist nützlich, wenn ein Ausgleich des Datenverkehrs über mehrere VPNs erforderlich ist oder in komplexeren Routing-Szenarien.

Gehen Sie dazu auf System ‣ Gateways ‣ Einzeln und fügen Sie ein neues Gateway hinzu. Wählen Sie die entsprechende WireGuard-Schnittstelle und setzen Sie das Gateway auf dynamisch.

Schritt 3 - WireGuard Client einrichten

Die Schlüsselgenerierung kann auf jedem Gerät mit installierten WireGuard Client Tools durchgeführt werden. Ein Einzeiler zur Erzeugung eines passenden privaten und öffentlichen Schlüsselpaares ist wg genkey | tee private.key | wg pubkey > public.key.

Die Client-Konfiguration sprengt weitgehend den Rahmen dieses Artikels, da es eine so große Anzahl möglicher Ziele gibt. Die wichtigsten Informationen, die zur Konfiguration eines Clients erforderlich sind, sind jedoch:

  • Adresse - Serverseitig wird dies als **Tunneladresse** bezeichnet

  • DNS - DNS-Server

  • Endpunkt - DNS-Eintrag oder IP unterstützt, hier den Port angeben

  • Öffentlicher Schlüssel - Verweist auf den öffentlichen Schlüssel des WireGuard-Servers

  • AllowedIPs - Konfigurieren Sie, welcher Verkehr (nach Subnetz) über den Tunnel gesendet wird.

Anhang A - Beispielkonfigurationen

Beachten Sie, dass sich der WireGuard noch in der Entwicklung befindet und sich diese Konfigurationen ohne Vorwarnung ändern können. Sie dienen nur zur Orientierung.

Diese Beispielschlüssel dürfen nicht wiederverwendet werden!

Ein Beispiel für eine Clientkonfigurationsdatei:

NONE
[Interface]
PrivateKey = 8GboYh0YF3q/hJhoPFoL3HM/ObgOuC8YI6UXWsgWL2M=
Address = 10.10.10.2/32
DNS = 192.168.1.254

[Peer]
PublicKey = OwdegSTyhlpw7Dbpg8VSUBKXF9CxoQp2gAOdwgqtPVI=
AllowedIPs = 0.0.0.0/0
Endpoint = vpn.example.com:51820

Ein Beispiel für eine Server-Konfigurationsdatei:

NONE
[Interface]
Address = 10.10.10.1/24
DNS = 192.168.1.254
ListenPort = 51820
PrivateKey = YNqHwpcAmVj0lVzPSt3oUnL7cRPKB/geVxccs0C0kk0=
[Peer]
PublicKey = CLnGaiAfyf6kTBJKh0M529MnlqfFqoWJ5K4IAJ2+X08=
AllowedIPs = 10.10.10.2/32
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.