- Neue Option als Peer: Lokaler Benutzer
- Hinweis, daß der PSK auf beiden Seiten identisch sein muss hervorgehoben 05.2024
- Neue Funktion zum Absichern der genutzten Ports: Connection Rate Limit
- Aktualisierung zum Redesign des Webinterfaces (v12.6.0)
- Import bestehender Konfigurationen im Assistenten für Standort A wie Standort B (v12.6.0)
- Der Endpunkt Port im Einrichtungsschritt 2 ist manuell für Standort A und Standort B einstellbar (v12.6.0)
- AD-Benutzer als Peer bei Standort A und Standort B auswählbar (v12.6.0)
- Hinweis hinzugefügt, dass bei einer Fritz!Box in der Konfiguration NetBIOS aktiviert werden muss (v12.6.0)
- 05.2024
notempty
Schlüsselmanagement
Beim Anlegen einer WireGuard-Verbindung existieren mehrere Möglichkeiten um die notwendigen Schlüsselwerte zu erzeugen und diese zu verwalten. Jede dieser Optionen hat ihre Vor- und Nachteile.
Bei zwei Optionen wird der benötigte private, bzw. öffentliche Schlüsselwert direkt im Einrichtungsassistenten der WireGuard-Verbindung angelegt.
Bei der dritten Option werden vorhandene Schlüssel vom Typ x25519 benötigt. Zusätzliche Informationen gibt es im Wiki-Artikel Schlüssel.
WireGuard Verbindung erstellen
- Eine WireGuard Verbindung stellt den Zugang für ggf. mehrere Peers zur Verfügung
- Jede Verbindung wird mit einem eigenen Schlüsselpaar gesichert
- Alle Peers einer Verbindung verwenden dessen öffentlichen Schlüssel
- Jeder Peer benötigt ein eigenes Schlüsselpaar, um sich zu authentifizieren
Zusätzlich sollte jeder Peer mit einem starken PSK abgesichert werden
Gegeben sei folgende Konfiguration:
Standort A | Standort B | Transfernetz | |
---|---|---|---|
FQDN | a.vpn.anyideas.de | b.vpn.anyideas.de | – |
Lokales Netz IPv4 | 10.1.0.0/16 | 10.2.0.0/16 | 10.0.1.0/24 |
Lokale Tunnel IPv4 | 10.0.1.1/24 | 10.0.1.2/24 | – |
Lokales Netz IPv6 | fd00:a:0:0::0/64 | fd00:b:0:0::0/64 | fd00:0:0:0::0/64 |
Lokale Tunnel IPv6 | fd00:0:0:0::1/64 | fd00:0:0:0::2/64 | – |
UTM | Roadwarrior | Transfernetz | |
---|---|---|---|
FQDN | a.vpn.anyideas.de | – | – |
Lokales Netz IPv4 | 10.1.0.0/16 | – | 10.0.1.0/24 |
Lokale Tunnel IPv4 | 10.0.1.1/24 | 10.0.1.201/24 | – |
Lokales Netz IPv6 | fd00:a:0:0::0/64 | – | fd00:0:0:0::0/64 |
Lokale Tunnel IPv6 | fd00:0:0:0::1/64 | fd00:0:0:0::C9/64 | – |
Konfiguration an Standort A
Assistenten starten mit der Schaltfläche Schritt 1 - Konfiguration importierenStandort A Schritt 1 - Konfiguration importieren
| |||
Beschriftung | Wert | Beschreibung | UTMbenutzer@firewall.name.fqdnVPNWireGuard |
---|---|---|---|
Datei: notempty Neu ab v12.6.0 |
Falls eine WireGuard-Server-Konfiguration schon existiert, kann die Server-Konfiguration als Datei hochgeladen werden. Die entsprechenden Einstellungen werden in den folgenden Schritten in den jeweiligen Elementen automatisch eingetragen. | ||
Konfiguration: notempty Neu ab v12.6.0 |
Falls eine WireGuard-Server-Konfiguration schon existiert, kann die Server-Konfiguration in dieses Konfigurationsfeld kopiert werden. Die entsprechenden Einstellungen werden in den folgenden Schritten in den jeweiligen Elementen automatisch eingetragen. [Interface] Address = 10.0.0.1/24 Address = C0FF::EEEE/64 ListenPort = 51824 PrivateKey = interfacePrivateKeyaaaaaaaaaaaaaaaaaaaaaaaa= [Peer] AllowedIPs = 10.0.0.2/32, 10.0.0.3/32 AllowedIPs = 10.0.0.4/32 Endpoint = 1.2.3.4:51825 PersistentKeepalive = 30 PresharedKey = peerPresharedKeyaaaaaaaaaaaaaaaaaaaaaaaaaaa= PublicKey = peerPublicKeyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa= | ||
Schritt 2 - SchnittstelleStandort A Schritt 2 - Schnittstelle
| |||
Schnittstelle: | wg0 | Name der Schnittstelle, die für die Verbindung angelegt wird (automatische Vorgabe, kann nicht geändert werden) | |
Name: | wg_server | Eindeutiger Name für die Verbindung | |
IPv4 Adresse: | IPv4 Adresse für die Netzwerkschnittstelle des Transfernetzes an Standort A Dadurch wird die Netz-IP des Transfernetzes bestimmt (hier: 10.0.1.1/24) | ||
IPv6 Adresse: | IPv6 Adresse für die Netzwerkschnittstelle des Transfernetzes an Standort A (optional) Dadurch wird die Netz-IP des Transfernetzes bestimmt (hier: fd00:0:0:0::1/64) | ||
Listening Port: | 51820 | Default-Port für WireGuard Verbindungen | |
Privater Schlüssel: | |||
Ein privater Schlüsselwert wird automatisch generiert. | |||
Der Schlüsselwert wird direkt eingegeben. notempty Der Schlüsselwert kann aus Sicherheitsgründen später nicht mehr ausgelesen werden. notempty Wurde in Schritt 1 - Konfiguration importieren eine Datei importiert oder die Konfiguration eingegeben, so wird diese Option automatisch ausgewählt und der private Schlüsselwert aus der Konfigurationsdatei ausgelesen und hier eingetragen.
| |||
Anzeigen Verbergen |
Zeigt / Verbirgt den Schlüsselwert | ||
Generieren | Der Schlüsselwert wird generiert | ||
Privater Schlüssel im Format x25519. Es sind nur solche Schlüssel auswählbar, die auch über einen privaten Schlüsselteil verfügen. | |||
Schlüssel hinzufügen | Liegt noch kein lokaler Schlüssel im x25519-Format vor, kann mit dieser Schaltfläche ein solcher erzeugt werden. | ||
Servernetzwerke global freigeben: | Netzwerke auf (lokaler) Serverseite, auf die die WireGuard-Tunnel der Peers prinzipiell zugreifen können.notempty Für den tatsächlichen Zugriff werden zusätzlich Netzwerkobjekte und Portfilter-Regeln benötigt!
| ||
Schritt 3 - PeerStandort A Schritt 3 - Peer
| |||
Peer-Typ: | Der Typ des Peers S2S-Verbindungen sollten immer mit dem Typ Peer eingerichtet werden Anleitung für Schritt 3 - Peer mit AD Anbindung
Anleitung für Schritt 3 - Peer mit lokalen Benutzern |
||
Name: | peer-b | Bezeichnung der Gegenstelle | |
Peernetzwerke freigeben: | »10.2.0.0/16 »fd00:b:0:0::/64 | Lokale Netz-IPs der Gegenstelle, die auf den WireGuard-Tunnel zugreifen können. notempty Für den tatsächlichen Zugriff werden zusätzlich Netzwerkobjekte und Portfilter-Regeln benötigt!
| |
Endpunkt: | b.vpn.anyideas.de | Öffentliche IP oder im öffentlichen DNS auflösbarer FQDN der Gegenstelle | |
Endpunkt Port: |
51820 | Listening-Port der Gegenstelle | |
Öffentlicher Schlüssel: | |||
Öffentlicher Schlüsselwert der Gegenstelle. notempty Wurde in Schritt 1 - Konfiguration importieren eine Datei importiert oder die Konfiguration eingegeben, so wird diese Option automatisch ausgewählt und der private Schlüsselwert aus der Konfigurationsdatei ausgelesen und hier eingetragen.
| |||
Berechnet den Schlüsselwert aus dem eingegebenen privaten Schlüsselwert aus Schritt 2 - Schnittstelle notempty Der Schlüsselwert kann aus Sicherheitsgründen später nicht mehr ausgelesen werden.
| |||
Anzeigen Verbergen |
Zeigt / Verbirgt den Schlüsselwert | ||
Generieren | Der Schlüsselwert wird generiert | ||
In die Zwischenablage kopieren | Kopiert den Schlüsselwert in die Zwischenablage | ||
Öffentlicher Schlüssel der Gegenstelle im Format x25519 Es sind nur solche Schlüssel auswählbar, die über keinen privaten Schlüssel verfügen. Es lassen sich nur Schlüssel auswählen, für die auf diesem Interface noch keine Verbindung besteht. Der PublicKey muss innerhalb einer Verbindung eindeutig sein, da das Routing eingehender Pakete darüber durchgeführt wird. Soll für einen Peer der gleiche PublicKey z.B. für ein Fallback verwendet werden, muss dafür eine weitere WireGuard Verbindung angelegt werden. | |||
Schlüssel hinzufügen | Liegt der öffentliche Schlüssel der Gegenstelle noch nicht vor, kann mit dieser Schaltfläche der Import der Schlüsselverwaltung geöffnet werden. Export und Import der Schlüssel ist auch über die Zwischenablage möglich | ||
Pre-Shared Key (optional): | ••••••••••••••••••••••••••• | Pre-Shared Key zur weiteren Absicherung der Verbindung | |
Anzeigen Verbergen |
Zeigt / Verbirgt den Schlüsselwert | ||
Generieren | Erzeugt einen sehr starken Pre-Shared Key notempty Der Pre-Shared Key muss an beiden Enden der VPN-Verbindung identisch sein! Er darf nur auf einer Seite generiert werden und muss dann auf der Gegenstelle eingefügt werden.
| ||
In die Zwischenablage kopieren | Kopiert den PSK in die Zwischenablage | ||
Keepalive: | Aus | Sendet regelmäßig ein Signal. Dadurch werden Verbindungen auf NAT-Routern offen gehalten. Ein Die Aktivierung wird empfohlen. | |
25 Sekunden | Abstand in Sekunden, in dem ein Signal gesendet wird | ||
Standort A Schritt 3 - Peer
Neu ab v12.7.1
|
|||
Beschriftung | Wert | Beschreibung | |
---|---|---|---|
Peer-Typ: | Lokaler Benutzer als Peer | ||
Öffne Benutzerdialog: | Aus | Öffnet die Benutzereinstellungen nach beenden des Assistenten | |
Beendet den Assistenten | |||
Anschließend kann unter bearbeiten des gewünschten Users, WireGuard für diesen konfiguriert werden. Genauere Informationen sind hier zu finden. | Schaltfläche durch|||
Schritt 4 - Erweiterte EinstellungenStandort A Schritt 4 - Erweiterte Einstellungen
| |||
Routen zu den Netzwerken des Peers erstellen: | Ja | Aktivierung Ja wird empfohlen. Es werden Routen zu den Netzwerken / Hosts erstellt, die in Schritt 3 unter Peernetzwerke freigeben eingetragen wurden, mit der Schnittstelle als Gateway, die in Schritt 2 angezeigt wurde. |
|
Ausgangslage Es kann gewünscht sein, die Routen für VPN-Verbindungen Nur für interne Prüfzwecke erst dann zu setzen, wenn die Verbindung wirklich steht.
CLI-Befehl Verbindung per SSH oder über Menü route set id <ID> flags BLACKHOLE_IF_OFFLINE :Z.B.: route set id "2" flags BLACKHOLE_IF_OFFLINE | |||
Zonen erstellen: | Ja | Erzeugt eine neue Zone für die WireGuard Schnittstelle | |
Zonenname: | wireguard-wg0 | Name für die Zone der WireGuard-Verbindung | |
Netzwerkobjekte für den Peer erstellen: | Ja »wg-net-peer_rw»wg-net6-peer_rw |
Erzeugt bei Aktivierung Ja Netzwerkobjekte (IPv4 und ggf. IPv6) für die Gegenstelle. Der automatische Vorschlag kann auch geändert werden. | |
Netzwerkgruppe: | wg0-network | Netzwerkgruppe der Verbindung wird angezeigt | |
Regeln zwischen dem Peer und internal-networks erstellen: | Nein | Erzeugt bei Aktivierung Ja autogenerierte Regeln, die die Inbetriebnahme erleichtern. notempty Diese Regeln müssen unbedingt durch eigene Regeln, die nur notwendige Dienste mit notwendigen Netzwerkobjekten erlauben, ersetzt werden. notemptyDiese eigenen Regeln müssen immer mit dem WireGuard-Interface und dem internen Netzwerk erstellt werden, auch wenn der WireGuard-Tunnel zu einem DMZ-Netzwerk führt.
| |
Beendet den Assistenten
| |||
Konfiguration an Standort B Konfiguration an Standort B
Assistenten starten mit der Schaltfläche Standort B Schritt 1 - Konfiguration importierenStandort B Schritt 1 - Konfiguration importieren
| |||
Beschriftung | Wert | Beschreibung | UTMbenutzer@firewall.name.fqdnVPNWireGuard |
---|---|---|---|
Datei: | Falls eine WireGuard-Server-Konfiguration schon existiert, kann die Server-Konfiguration als Datei hochgeladen werden. Die entsprechenden Einstellungen werden in den folgenden Schritten in den jeweiligen Elementen automatisch eingetragen. | ||
Konfiguration: | Falls eine WireGuard-Server-Konfiguration schon existiert, kann die Server-Konfiguration in dieses Konfigurationsfeld kopiert werden. Die entsprechenden Einstellungen werden in den folgenden Schritten in den jeweiligen Elementen automatisch eingetragen. [Interface] Address = 10.0.0.1/24 Address = C0FF::EEEE/64 ListenPort = 51824 PrivateKey = interfacePrivateKeyaaaaaaaaaaaaaaaaaaaaaaaa= [Peer] AllowedIPs = 10.0.0.2/32, 10.0.0.3/32 AllowedIPs = 10.0.0.4/32 Endpoint = 1.2.3.4:51825 PersistentKeepalive = 30 PresharedKey = peerPresharedKeyaaaaaaaaaaaaaaaaaaaaaaaaaaa= PublicKey = peerPublicKeyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa= | ||
Standort B Schritt 2 - SchnittstelleStandort B Schritt 2 - Schnittstelle
| |||
Schnittstelle: | wg0 | Name der Schnittstelle, die für die Verbindung angelegt wird (automatische Vorgabe, kann nicht geändert werden) | |
Name: | wg_server | Eindeutiger Name für die Verbindung | |
IPv4 Adresse: | 10.0.1.2/24 | IPv4 Adresse für die Netzwerkschnittstelle des Transfernetzes an Standort B Hier muss eine IP aus dem Netz gewählt werden, das am Standort A festgelegt wurde (hier: 10.0.1.2/24) | |
IPv6 Adresse: | fd00:0:0:0::2/64 | IPv6 Adresse für die Netzwerkschnittstelle des Transfernetzes an Standort A (optional) Hier muss eine IP aus dem Netz gewählt werden, das am Standort A festgelegt wurde(hier: fd00:0:0:0::2/64) | |
Listening Port: | 51820 | Default-Port für WireGuard Verbindungen | |
Privater Schlüssel: | |||
Ein privater Schlüsselwert wird automatisch generiert. | |||
Der Schlüsselwert wird direkt eingegeben. notempty Der Schlüsselwert kann aus Sicherheitsgründen später nicht mehr ausgelesen werden. notempty Wurde in Schritt 1 - Konfiguration importieren eine Datei importiert oder die Konfiguration eingegeben, so wird diese Option automatisch ausgewählt und der private Schlüsselwert aus der Konfigurationsdatei ausgelesen und hier eingetragen.
| |||
Zeigt / Verbirgt den Schlüsselwert | |||
Privater Schlüssel im Format x25519. Es sind nur solche Schlüssel auswählbar, die auch über einen privaten Schlüsselteil verfügen. | |||
Liegt noch kein lokaler Schlüssel im x25519-Format vor, kann mit dieser Schaltfläche ein solcher erzeugt werden. | |||
Servernetzwerke global freigeben: | Netzwerke auf (lokaler) Serverseite, auf die die WireGuard-Tunnel der Peers prinzipiell zugreifen können.notempty Für den tatsächlichen Zugriff werden zusätzlich Netzwerkobjekte und Portfilter-Regeln benötigt!
| ||
Standort B Schritt 3 - PeerStandort B Schritt 3 - Peer
| |||
Verwende AD Benutzer als Peers: | Nein | Bei Aktivierung Ein können die Daten für Roadwarrior aus einem AD ausgelesen werden. | |
Name: | peer-a | Bezeichnung der Gegenstelle (Hier: Standort A) | |
Peernetzwerke freigeben: | »10.1.0.0/16»fd00:a:0:0::/64 | Lokale Netz IP der Gegenstelle (Hier: Standort A) | |
Endpunkt: | a.vpn.anyideas.de | Öffentliche IP oder im öffentlichen DNS auflösbarer FQDN der Gegenstelle (Hier: Standort A) | |
Endpunkt Port: |
51820 | Listening-Port der Gegenstelle (Hier: Standort A) | |
Öffentlicher Schlüssel: | |||
Der Schlüsselwert wird direkt eingegeben. | |||
Berechnet den Schlüsselwert aus dem eingegebenen privaten Schlüsselwert aus Schritt 2 - Schnittstelle | |||
Zeigt / Verbirgt den Schlüsselwert | |||
Öffentlicher Schlüssel der Gegenstelle im Format x25519 Es sind nur solche Schlüssel auswählbar, die über keinen privaten Schlüssel verfügen. Es lassen sich nur Schlüssel auswählen, für die auf diesem Interface noch keine Verbindung besteht. Der PublicKey muss innerhalb einer Verbindung eindeutig sein, da das Routing eingehender Pakete darüber durchgeführt wird. Soll für einen Peer der gleiche PublicKey z.B. für ein Fallback verwendet werden, muss dafür eine weitere WireGuard Verbindung angelegt werden. | |||
Liegt der öffentliche Schlüssel der Gegenstelle noch nicht vor, kann mit dieser Schaltfläche der Import der Schlüsselverwaltung geöffnet werden. Export und Import der Schlüssel ist auch über die Zwischenablage möglich | |||
Pre-Shared Key (optional): | …R0Z0DWUs+iCDFYzpP4= | Pre-Shared Key zur weiteren Absicherung der Verbindung | |
Erzeugt einen sehr starken Pre-Shared Key | |||
Kopiert den PSK in die Zwischenablage | |||
Keepalive: | Aus | Sendet regelmäßig ein Signal. Dadurch werden Verbindungen auf NAT-Routern offen gehalten. Ein Die Aktivierung wird empfohlen. | |
25 | Abstand in Sekunden, in dem ein Signal gesendet wird | ||
Standort B Schritt 4 - Erweiterte EinstellungenStandort B Schritt 4 - Erweiterte Einstellungen
| |||
Routen zu den Netzwerken des Peers erstellen: | Nein | Aktivierung Ja wird empfohlen. Es werden Routen zu den Netzwerken / Hosts erstellt, die in Schritt 3 unter Peernetzwerke freigeben eingetragen wurden, mit der Schnittstelle als Gateway, die in Schritt 2 angezeigt wurde. |
|
Zonen erstellen: | Nein | Erzeugt eine neue Zone für die WireGuard Schnittstelle | |
Netzwerkobjekte für den Peer erstellen: | Nein »net-wg-peer-a |
Erzeugt bei Aktivierung Ja Netzwerkobjekte (IPv4 und ggf. IPv6) für die Gegenstelle. Der automatische Vorschlag kann auch geändert werden. | |
Regeln zwischen dem Peer und internal-networks erstellen: | Nein | Erzeugt bei Aktivierung Ja autogenerierte Regeln, die die Inbetriebnahme erleichtern. notempty Diese Regeln müssen unbedingt durch eigene Regeln, die nur notwendige Dienste mit notwendigen Netzwerkobjekten erlauben, ersetzt werden.
| |
Fritzbox als Gegenstelle
| |||
Die folgenden Schritte sind eine kurze Beschreibung des Vorgehens. Für eine detailliertere Beschreibung den Wiki-Artikel WireGuard S2S mit einer Fritz!Box konsultieren. Wird eine Fremdhardware als Gegenstelle verwendet, bietet sich folgendes Vorgehen an:
[Interface]
notemptyPrivateKey = $PRIVATE_KEY_FRITZBOX
ListenPort = $LISTENPORT_WIREGUARD_FRITZBOX
Address = $LOCAL_IP_FRITZBOX/$NETMASK
Ggf. kann die Aktivierung der Option NetBIOS über diese Verbindung zulassen Probleme z.B. mit SMB oder FTP beheben.
|
|||
Widget
Im Admininterface existiert ein Widget für die Übersicht der WireGuard-Verbindungen. Weitere Informationen sind im Wiki-Artikel UTM Widget zu finden.