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.
Schlüssel hinzufügen
Schlüsselverwaltung öffnen unter Authentifizierung Schlüssel Schaltfläche Schlüssel hinzufügen den Dialog öffnen
Importiert einen Schlüssel aus der Zwischenablage. Hier muss ein Name für den Schlüssel vergeben werden.
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 WireGuard Verbindung hinzufügen
Schritt 1 - Konfiguration importieren
Standort A Schritt 1 - Konfiguration importieren
Beschriftung
Wert
Beschreibung
WireGuard Verbindung hinzufügen UTMbenutzer@firewall.name.fqdnVPNWireGuard WireGuard Assistent - Schritt 1
Datei:notempty
neu ab v12.6.0
Datei auswählen
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.
Falls mehrere Peers vorhanden sind, wird lediglich der erste Peer übernommen.
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.
Falls mehrere Peers vorhanden sind, wird bloß der erste Peer übernommen.
Name der Schnittstelle, die für die Verbindung angelegt wird (automatische Vorgabe, kann nicht geändert werden)
WireGuard Assistent - Schritt 2
Name:
wg_server
Eindeutiger Name für die Verbindung
IPv4 Adresse:
10.0.1.1/24
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:
fd00:0:0:0::1/64
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:
Automatisch generieren
Ein privater Schlüsselwert wird automatisch generiert.
Dieser Schlüsselwert wird nicht angezeigt!
Dieser Schlüssel wird nicht in Authentifizierung Schlüssel hinzugefügt!
Schlüsselwert direkt eingeben
Der Schlüsselwert wird direkt eingegeben.
Dieser Schlüssel wird nicht in Authentifizierung Schlüssel hinzugefügt!
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
Aus Schlüsseln wählen
x25519_a.vpn
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 - Peer
Standort A Schritt 3 - Peer
|| Peer ||
WireGuard Assistent - Schritt 3
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
Wird nicht benötigt, wenn ausschließlich die Gegenstelle die Verbindung initiieren soll
Endpunkt Port:
51820
Listening-Port der Gegenstelle
Öffentlicher Schlüssel:
Schlüsselwert direkt eingeben
Der Schlüsselwert wird direkt eingegeben.
Dieser Schlüssel wird nicht in Authentifizierung Schlüssel hinzugefügt!
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.
Aus privatem Schlüsselwert berechnen
Berechnet den Schlüsselwert aus dem eingegebenen privaten Schlüsselwert vom Schritt 2 Schnittstelle
Dieser Schlüssel wird nicht in Authentifizierung Schlüssel hinzugefügt!
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
Aus Schlüsseln wählen
x25519 b vpn pub pem
Öffentlicher Schlüssel der Gegenstelle im Format x25519 Es sind nur solche Schlüssel auswählbar, die über keinen privaten Schlüssel verfügen.
Öffentlicher Schlüssel vorhanden, aber nicht auswählbar?
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
Schritt 3 - Peer
Standort A Schritt 3 - Peer
Als Vorgabe sind Werte eingetragen, die unter Authentifizierung AD/LDAP Authentifizierung Bereich Erweitert konfiguriert wurden.
Beschriftung
Wert
Beschreibung
WireGuard Assistent - Schritt 2 mit AD Benutzern als Peers
Werte im AD
|| Peer ||
WireGuard-Attribute (IPv4):
extensionAttribute1
Attribut Name im AD, der als Wert die Tunnel-IPv4 für den RW enthält ➊
WireGuard-Attribute (IPv6):
extensionAttribute2
Attribut Name im AD, der als Wert die Tunnel-IPv6 für den RW enthält ➋
WireGuard-Public-Key-Attribute:
extensionAttribute3
Der Public-Key des Users. ➌ Der User muss über den private-Key verfügen.
Öffne AD/LDAP Dialog:
Aus
Bei Aktivierung wird im Anschluss der Dialog unter Authentifizierung AD/LDAP Authentifizierung aufgerufen.
Fertig
Beendet den Assistenten
Schritt 3 - Peer
Standort A Schritt 3 - Peer
notempty
neu ab v12.7.1
Beschriftung
Wert
Beschreibung
[[Datei: ]]
|| class=mw18 | Peer ||
|| Aus ||
Fertig
Beendet den Assistenten
Schritt 4 - Erweiterte Einstellungen
Standort 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.
WireGuard Assistent - Schritt 4
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.
Dadurch wird verhindert das Pakete in das Internet geroutet und vom Conntrack gespeichert werden und so einen korrekten Aufbau der Verbindung verhindern.
Dies kann von Vorteil sein wenn zum Beispiel VoIP durch den Tunnel gehen soll.
Load Balancing über eine zweite Firewall wird deutlich vereinfacht, wenn nur die UTM eine Route bekommt, bei der der Tunnel auch tatsächlich aufgebaut wird.
CLI-Befehl
Verbindung per SSH oder über Menü Extras CLI : route set id <ID> flags BLACKHOLE_IF_OFFLINE
Z.B.: route set id "2" flags BLACKHOLE_IF_OFFLINE Dieser Befehl verwirft Pakete zu diesem Ziel wenn die Route nicht vorhanden ist. Bei SSL-VPN oder bei Wireguard zum Beispiel wenn der Tunnel nicht steht. Zuvor kann mit route get die korrekte Verbindungs-ID ermittelt werden
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.
notempty
Diese 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.
Fertig
Beendet den Assistenten
Konfiguration an Standort B
Konfiguration an Standort B
Assistenten starten mit der Schaltfläche WireGuard Verbindung hinzufügen
Standort B Schritt 1 - Konfiguration importieren
Standort B Schritt 1 - Konfiguration importieren
Beschriftung
Wert
Beschreibung
WireGuard Verbindung hinzufügen UTMbenutzer@firewall.name.fqdnVPNWireGuard WireGuard Assistent - Schritt 1
Datei:
Datei auswählen
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.
Falls mehrere Peers vorhanden sind, wird lediglich der erste Peer übernommen.
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.
Falls mehrere Peers vorhanden sind, wird bloß der erste Peer übernommen.
Name der Schnittstelle, die für die Verbindung angelegt wird (automatische Vorgabe, kann nicht geändert werden)
WireGuard Assistent - Schritt 2
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:
Automatisch generieren
Ein privater Schlüsselwert wird automatisch generiert.
Dieser Schlüsselwert wird nicht angezeigt!
Dieser Schlüssel wird nicht in Authentifizierung Schlüssel hinzugefügt!
Schlüsselwert direkt eingeben
Der Schlüsselwert wird direkt eingegeben.
Dieser Schlüssel wird nicht in Authentifizierung Schlüssel hinzugefügt!
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
Aus Schlüsseln wählen
x25519_b.vpn
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 - Peer
Standort 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.
WireGuard Assistent - Schritt 3
Name:
peer-a
Bezeichnung der Gegenstelle (Hier: Standort A)
Erlaubte IPs:
» ✕10.1.0.0/16» ✕fd00:a:0:0::/64
Site to Site - S2S 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)
Wird nicht benötigt, wenn ausschließlich die Gegenstelle (Hier: Standort A) die Verbindung initiieren soll
Endpunkt Port:
51820
Listening-Port der Gegenstelle (Hier: Standort A)
Öffentlicher Schlüssel:
Schlüsselwert direkt eingeben
Der Schlüsselwert wird direkt eingegeben.
Aus privatem Schlüsselwert berechnen
Berechnet den Schlüsselwert aus dem eingegebenen privaten Schlüsselwert vom Schritt 2 Schnittstelle
Zeigt / Verbirgt den Schlüsselwert
Aus Schlüsseln wählen
x25519_a_vpn_pub_pem
Öffentlicher Schlüssel der Gegenstelle im Format x25519 Es sind nur solche Schlüssel auswählbar, die über keinen privaten Schlüssel verfügen.
Öffentlicher Schlüssel vorhanden, aber nicht auswählbar?
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
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.
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 Einstellungen
Standort 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.
WireGuard Assistent - Schritt 4
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
Wird eine Fremdhardware als Gegenstelle verwendet, bietet sich folgendes Vorgehen an:
Schlüsselpaar für die Fritzbox erstellen ( Authentifizierung Schlüssel )
Öffentlichen und privaten Teil des Schlüssels im .raw-Format exportieren
Schlüsselpaar für die Fritzbox löschen und nur den öffentlichen Teil wieder importieren
WireGuard Verbindung wie oben beschrieben hinzufügen
Öffentlichen Schlüssel der UTM im .raw-Format exportieren
Untenstehende Vorlage ergänzen und innerhalb der Fritzbox einfügen unter Internet / Freigaben / Reiter VPN / Schaltfläche VPN-Verbindung hinzufügen / Option Eine WireGuard Verbindung importieren