(Die Seite wurde neu angelegt: „{{Set_lang}} {{#vardefine:headerIcon|spicon-utm}} {{:UTM/VPN/WireGuard-Konfig.lang}} {{:UTM/VPN/WireGuard-S2S.lang}} </div>{{:UTM/VPN/WireGuard-Konfig|S2S=tr…“) |
KKeine Bearbeitungszusammenfassung |
||
(15 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
{{:UTM/VPN/WireGuard-S2S.lang}} | {{:UTM/VPN/WireGuard-S2S.lang}} | ||
</div>{{:UTM/VPN/WireGuard-Konfig|S2S=true}} | </div>{{Select_lang}}{{:UTM/VPN/WireGuard-Konfig|S2S=true}} | ||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| colspan=" | | colspan="4" | {{h5|{{#var:Konfiguration an Standort B}}| '''{{#var:Konfiguration an Standort B}}'''}} | ||
{{#var:Assistenten starten--desc}} | {{#var:Assistenten starten--desc}} | ||
{{h6| 1={{#var:Schritt1}}| 2=<i class="host utm">{{#var:Standort B}}</i> {{#var:Schritt1}} }} | {{h6| 1={{#var:Standort B}} {{#var:Schritt1}}| 2=<i class="host utm">{{#var:Standort B}}</i> {{#var:Schritt1}} }} | ||
|- | |- | ||
! {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | |||
| class="Bild" rowspan="4" | {{Bild|{{#var:Schritt1--Bild}}|{{#var:Schritt1--cap}}||{{#var:WireGuard Verbindung hinzufügen}}|VPN|WireGuard|icon=fa-close}} | |||
|- | |- | ||
| {{b|{{#var: | | {{b|{{#var:Datei}}: }} || {{Button|{{#var:Datei auswählen}} }} || {{#var:Datei auswählen--desc}} | ||
|- | |- | ||
| {{b|{{#var: | | {{b|{{#var:Konfiguration}} }} || {{ic||cb|class=available}} || {{#var:Konfiguration Datei auswählen--desc}}{{Einblenden|{{#var:Vorlage einer Konfigurationsdatei zum kopieren}}|{{#var:hide}}|true|bigdezent}} | ||
{{code|1=[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= | |||
|class=inline-block}} | |||
|- class="Leerzeile" | |||
| | |||
|- class="Leerzeile" | |||
| colspan="3"| {{h6| 1={{#var:Standort B}} {{#var:Schritt2}} | 2=<i class="host utm">{{#var:Standort B}}</i> {{#var:Schritt2}} }} | |||
|- | |- | ||
| {{b|{{#var: | | {{b|{{#var:Schnittstelle}} }} || {{ic| wg0 |bc=bc_readonly|class=available}} || {{#var:Schnittstelle--desc}} | ||
| class="Bild" rowspan="8" | {{Bild | {{#var:Schritt2 B--Bild}}|{{#var:Schritt2--cap}} }} | |||
|- | |- | ||
| {{b|{{#var:Name}} }} || {{ic|{{#var:Name-Schritt2--val}}|class=available}} || {{#var:Name-Schritt2--desc}} | |||
|- | |- | ||
| {{Button|| | | {{b|{{#var:IPv4 Adresse}} }} || {{ic|10.0.1.2/24|class=available}} || {{#var:IPv4 Adresse--Standort B--desc}} | ||
|- | |||
| {{b|{{#var:IPv6 Adresse}} }} || {{ic|fd00:0:0:0::2/64|class=available}} || {{#var:IPv6 Adresse--Standort B--desc}} | |||
|- | |||
| <span id="Listening Port B"></span> | {{b|{{#var:Listening Port}} }} || {{ic|51820|c|class=mw5}} || {{#var:Listening Port--desc}} | |||
|- | |||
| colspan="3"| {{b|{{#var:Privater Schlüssel}} }} | |||
|- | |||
| {{button|{{#var:Automatisch generieren}}|class=aktiv}} || colspan="2"| {{#var:Automatisch generieren--desc}} <li class="list-element_alert list--element__warning">{{#var:Schlüssel wird nicht hinzugefügt}}</li> | |||
|- | |||
| rowspan="2" class="mw14"| {{button|{{#var:Schlüsselwert direkt eingeben}}|class=aktiv}} || {{ic||class=available}} || {{#var:Schlüsselwert direkt eingeben--desc}} <li class="list-element_alert list--element__warning">{{#var:Schlüssel wird nicht hinzugefügt}}</li> <br>{{Hinweis-box|{{#var:Schlüsselwert direkt eingeben--Hinweis}}|fs__icon=em2}}<br>{{Hinweis-box|{{#var:Schlüsselwert direkt eingeben Konfigdatei}}|g|fs__icon=em2}} | |||
|- | |||
| {{Button||class=fas fa-eye}} || {{#var:Schlüsselwert anzeigen}} | |||
|- | |||
| rowspan="2"| {{button|{{#var:Aus Schlüsseln wählen}}|class=aktiv}} || {{Button|x25519_b.vpn|dr|class=available}} || {{#var:Privater Schlüssel--desc}} | |||
|- | |||
| {{Button||+}} || {{#var:Privater Schlüssel--Hinweis}} | |||
|- | |||
| {{b|{{#var:Servernetzwerke global freigeben}} }} || {{ic||cb|class=available}} || {{#var:Servernetzwerke global freigeben--desc}}{{Hinweis-box|{{#var:Portfilter--Hinweis}}|g|fs__icon=em2}} | |||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| | | | ||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| colspan="3" | {{h6| 1={{#var: | | colspan="3" | {{h6| 1={{#var:Standort B}} {{#var:Schritt3}} | 2=<i class="host utm">{{#var:Standort B}}</i> {{#var:Schritt3}} }} | ||
|- | |- | ||
| {{b|{{#var: | | {{b|{{#var:Peer-Typ}}:}} || {{Button|Peer|class=aktiv}}{{Button|{{#var:AD-Benutzer}} }}{{Button|{{#var:Lokaler Benutzer}} }} || {{#var:Peer-Typ--desc}} | ||
| class="Bild" rowspan=" | | class="Bild" rowspan="11" | {{Bild | {{#var:Schritt3 B--Bild}}|{{#var:Schritt3--cap}} }} | ||
|- | |- | ||
| {{b|{{#var: | | {{b|{{#var:Name}} }} || {{ic|peer-a|class=available}} || {{#var:Schritt2 B--Name--desc}} | ||
|- | |- | ||
| {{b|{{#var: | | {{b|{{#var:Peernetzwerke freigeben}} }} || {{ic| {{cb|10.1.0.0/16}}{{cb|fd00:a:0:0::/64}}|cb }} || <li class="list--element__alert list--element__hint">{{#var:Erlaubte IPs B--S2S--desc}}</li> | ||
|- | |- | ||
| {{b|{{#var:Endpunkt}} }} || {{ic| a.vpn.anyideas.de|class=available}} || {{#var:Endpunkt B--desc}} <li class="list--element__alert list--element__hint">{{#var:Endpunkt B--Hinweis}}</li> | |||
|- | |- | ||
| {{ | | {{b|{{#var:Endpunkt Port}} }} {{Hinweis-box||gr|12.5.1|status=update}} || {{ic|51820|c}} || {{#var:Endpunkt Port B--desc}} | ||
|- | |- | ||
| | | colspan="3" | {{b|{{#var:Öffentlicher Schlüssel}} }} | ||
|- | |- | ||
| {{ | | class="mw13"| {{button|{{#var:Schlüsselwert direkt eingeben}}|class=aktiv}} || {{ic||class=available}} || {{#var:Schlüsselwert Gegenstelle direkt eingeben--desc}} | ||
|- | |- | ||
| {{b|{{#var:Keepalive}} }} || {{ButtonAus|{{#var:aus}} }}|| {{#var:Keepalive--desc}} | | rowspan="2"| {{button|{{#var:Aus privatem Schlüsselwert berechnen}}|class=aktiv}} || {{ic||class=available}} || {{#var:Aus privatem Schlüsselwert berechnen--desc}} | ||
|- | |||
| {{Button||class=fas fa-eye}} || {{#var:Schlüsselwert anzeigen}} | |||
|- | |||
| rowspan="2"| {{button|{{#var:Aus Schlüsseln wählen}}|class=aktiv}} || {{Button|x25519_a_vpn_pub_pem|dr|class=available}} || {{#var:Öffentlicher Schlüssel--desc}}<br><li class="list--element__alert list--element__hint">{{#var:Öffentlicher Schlüssel vorhanden}}? {{Einblenden|{{#var:Hinweis anzeigen}}|{{#var:hide}}|true|dezent}}{{#var:Öffentlicher Schlüssel vorhanden--desc}} | |||
</span></div></span></li> | |||
|- | |||
| {{Button||+}} || {{#var:Öffentlicher Schlüssel--Hinweis-Import}}<br>{{#var:import-Zwischenablage}} | |||
<div class="{{{S2E|none}}}>{{Einblenden|{{#var:Schlüsselpaar für Roadwarrior erstellen}}|{{#var:hide}}|true|dezent}}{{#var:Schlüsselpaar für Roadwarrior erstellen--desc}}</div></span></div></div> | |||
|- | |||
| rowspan="3" |<span id=PSK></span>{{b|{{#var:Pre-Shared Key}} }} || {{ic|…R0Z0DWUs+iCDFYzpP4<nowiki>=</nowiki> }} || {{#var:Pre-Shared Key--desc}} | |||
|- | |||
| {{Button||r}} || {{#var:Pre-Shared Key--renew}} {{Hinweis-box| {{#var:Pre-Shared Key Standort B--Hinweis}} }} | |||
|- | |||
| {{Button||class=fas fa-copy icon}} || {{#var:Schlüssel kopieren--desc}} | |||
|- | |||
| rowspan="2" | {{b|{{#var:Keepalive}} }} || {{ButtonAus|{{#var:aus}} }}|| {{#var:Keepalive--desc}} | |||
|- | |||
| {{ic|25|c|class=mw5}} || {{#var:Keepalive-Sekunden--desc}} | |||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| | | | ||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| colspan="3" | {{h6| 1={{#var: | | colspan="3" | {{h6| 1={{#var:Standort B}} {{#var:Schritt4}} | 2=<i class="host utm">{{#var:Standort B}}</i> {{#var:Schritt4}} }} | ||
|- | |||
| {{b|{{#var:Routen zu Peers erstellen}} }} || {{ButtonAus|{{#var:nein}} }} || {{#var:Routen zu Peers erstellen--desc}} | |||
| class="Bild" rowspan="6" | {{Bild | {{#var:Schritt4 B--Bild}}|{{#var:Schritt4--cap}} }} | |||
|- class=noborder | |||
| colspan="3" | <div class="Einrücken">{{:UTM/VPN/Blackhole}}</div> | |||
|- | |- | ||
| {{b|{{#var:Neue Zone hinzufügen}} }} || {{ButtonAus|{{#var:nein}} }} || {{#var:Neue Zone hinzufügen--desc}} | | {{b|{{#var:Neue Zone hinzufügen}} }} || {{ButtonAus|{{#var:nein}} }} || {{#var:Neue Zone hinzufügen--desc}} | ||
|- | |- | ||
| {{b|{{#var:Netzwerkobjekte generieren}} }} || {{ButtonAus|{{#var:nein}} }} <br>{{ic|{{cb|net-wg-peer-a}}|cb}} || {{#var:Netzwerkobjekte generieren--desc}} | | {{b|{{#var:Netzwerkobjekte generieren}} }} || {{ButtonAus|{{#var:nein}} }} <br>{{ic|{{cb|net-wg-peer-a}}|cb|class=available}} || {{#var:Netzwerkobjekte generieren--desc}} | ||
|- | |||
| {{b|{{#var:Regeln generieren}} }} || {{ButtonAus|{{#var:nein}} }} || {{#var:Regeln generieren--desc}} {{Hinweis-box|{{#var:Regeln generieren--Hinweis}}|fs__icon=em2}} | |||
|- class="Leerzeile" | |||
| | |||
|- class="Leerzeile" | |||
| colspan="3" | | |||
==== {{#var:Fritzbox als Gegenstelle}} {{Hinweis-box||gr|12.6.0|status=update}} ==== | |||
|- | |- | ||
| | | colspan="3" | {{#var:Fritzbox als Gegenstelle--Hinweis}}<br>{{#var:Fritzbox als Gegenstelle--desc}} | ||
<div class="copyblock Einrücken2">{{code|1= | |||
[Interface] | |||
PrivateKey = $PRIVATE_KEY_FRITZBOX | |||
ListenPort = $LISTENPORT_WIREGUARD_FRITZBOX | |||
Address = $LOCAL_IP_FRITZBOX/$NETMASK | |||
<br> | |||
[Peer] | |||
PublicKey = $PUBLIC_KEY_UTM | |||
PresharedKey = $PRESHAREDKEY | |||
AllowedIPs = $NETWORK_UTM/$NETMASK | |||
Endpoint = $HOSTNAME_UTM:$LISTENPORT_WIREGUARD_UTM | |||
PersistentKeepalive = 1|class=inline-block}} | |||
</div> | |||
{{Hinweis-box|{{#var:Fritzbox Wireguard Schritt 3 NetBIOS}}|g|fs__icon=em2}} | |||
| class=Bild | {{#ev:vimeo|686044444|||{{#var:Fritzbox als Gegenstelle--cap}} | poster=File:UTM_v12.3_Video_WireGuard_mit_Fritzbox.png | cover=File:UTM_v12.3_Video_WireGuard_mit_Fritzbox.png}} | |||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| | | | ||
|} | |} | ||
---- | |||
=== {{#var:Widget}} === | |||
<div class="einrücken"> | |||
{{#var:Widget--desc}} | |||
</div> | |||
---- | |||
{{:UTM/APP/Connection-Rate-Limit}} |
Aktuelle Version vom 12. August 2024, 07:51 Uhr
- 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
| |||
Peer-Typ: | Der Typ des Peers | ||
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: | |||
Öffentlicher Schlüsselwert der Gegenstelle. | |||
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 notempty Hier muss der gleiche PSK wie an Standort A 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 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. |
|
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: | 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.
Connection Rate Limit
Drosselung von Zugriffen von bestimmten Quell-IPs auf wiederkehrende Ports
notempty
Die Funktion ist zunächst ausschließlich über das CLI zu konfigurieren
SSL-VPN-Zugänge können so z.B. vor aggressiven Scans oder Anmeldeversuchen geschützt werden.
Die UTM kann ab v12.6.2 die Anzahl der TCP- und/oder UDP-Verbindungen von einer externen IP-Adresse auf einen Port limitieren.
Dabei gelten folgende Bedingungen:
- Es werde nur eingehende Verbindungen überwacht, für die eine Default-Route existiert
- Es werden die Verbindungen von einer IP-Adresse auf einen Port der UTM innerhalb einer Minute gezählt
- Bei Aktivierung werden 5 Verbindungen / Verbindungsversuche je Minute zugelassen.
Danach werden die Verbindungen limitiert:- Dabei werden die zusätzlich zugelassenen Verbindungen innerhalb von 60 Sekunden seit der ersten Verbindung gleichmäßig verteilt.
- Bei einem CONNECTION_RATE_LIMIT-Wert von 20 kommt also alle 3 Sekunden eine zusätzliche Verbindung hinzu.
- 10 Sekunden nach der 1 Anmeldung könnten 3 weitere Verbindungen aufgebaut werden (jeweils von der gleichen IP-Adresse aus auf den selben Ziel-Port)
- Die Sperrung einer IP-Adresse wirkt nur für den Zugriff auf den Port, der zu oft genutzt wurde.
Andere Ports können weiterhin erreicht werden. - Die Funktion ist bei Neuinstallationen per Default auf 20 UDP-Verbindungen / Minute auf allen Ports aktiviert
- Bei Updates muss die Funktion manuell aktiviert werden
extc-Variable | Default | Beschreibung |
---|---|---|
CONNECTION_RATE_LIMIT_TCP | 0 | Anzahl der zugelassenen TCP-Verbindungen einer IP-Adresse je Port 0 = Funktion deaktiviert, es werden keine Sperrungen vorgenommen |
CONNECTION_RATE_LIMIT_TCP_PORTS | Ports die überwacht werden sollen. Per Default leer=alle Ports würden (bei Aktivierung) überwacht werden. Einzelne Ports werden durch Leerzeichen getrennt: [ 1194 1195 ] | |
CONNECTION_RATE_LIMIT_UDP | 20 / 0 Default Einstellung bei Neuinstallationen ab v12.6.2: 20 Bei Update Installationen ist der Wert 0, damit ist die Funktion deaktiviert. |
Anzahl der zugelassenen UDP-Verbindungen einer IP-Adresse je Port |
CONNECTION_RATE_LIMIT_UDP_PORTS | Ports die überwacht werden sollen. Per Default leer=alle Ports werden überwacht (nur bei Neuinstallationen!). Einzelne Ports werden durch Leerzeichen getrennt: [ 1194 1195 ] |
Konfiguration mit CLI-Befehlen
CLI-Befehl | Funktion |
---|---|
extc value get application securepoint_firewall Alternativ als root-User: spcli extc value get application securepoint_firewall | grep RATE |
Listet alle Variablen der Anwendung securepoint_firewall auf. Für das Connection Limit sind die Variablen zuständig, die mit CONNECTION_RATE_LIMIT_ beginnen. application |variable |value --------------------+-------------------------------+----- securepoint_firewall |… |… |CONNECTION_RATE_LIMIT_TCP |0 |CONNECTION_RATE_LIMIT_TCP_PORTS| |CONNECTION_RATE_LIMIT_UDP |20 |CONNECTION_RATE_LIMIT_UDP_PORTS| |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_TCP value 20 system update rule |
Begrenzt die zugelassene Anzahl von TCP-Verbindungen von einer einzelnen IP-Adresse auf jeweils einen bestimmten Port auf 20 pro Minute
Eine Änderung wird durch ein Regelupdate direkt durchgeführt. Der Wert muss nicht zuerst auf 0 gesetzt werden! |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_TCP value 0 system update rule |
Deaktiviert die Überwachung von TCP-Verbindungen |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_TCP_PORTS value [ 443 11115 ] system update rule |
Beschränkt die Überwachung von TCP-Verbindungen auf die Ports 443 und 11115 Vor und nach den eckigen Klammern [ ] müssen jeweils Leerzeichen stehen! |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_TCP_PORTS value [ ] system update rule |
Vor und nach den eckigen Klammern [ ] müssen jeweils Leerzeichen stehen! |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_UDP value 20 system update rule |
Begrenzt die zugelassene Anzahl von UDP-Verbindungen von einer einzelnen IP-Adresse auf jeweils einen bestimmten Port auf 20 pro Minute Default Einstellung bei Neuinstallationen ab v12.6.2: 20 Bei Update Installationen ist der Wert 0, damit ist die Funktion deaktiviert. Der Wert muss nicht zuerst auf 0 gesetzt werden! |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_UDP value 0 system update rule |
Deaktiviert die Überwachung von UDP-Verbindungen |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_UDP_PORTS value [ 1194 1195 ] system update rule |
Beschränkt die Überwachung von UDP-Verbindungen auf die Ports 1194 und 1195. (Beispielhaft für 2 angelegte SSL-VPN Tunnel.) Vor und nach den eckigen Klammern [ ] müssen jeweils Leerzeichen stehen! |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_UDP_PORTS value [ ] system update rule |
Vor und nach den eckigen Klammern [ ] müssen jeweils Leerzeichen stehen! |
extc value set application securepoint_firewall variable CONNECTION_RATE_LIMIT_TCP value 20 notempty Zum Abschluss muss der CLI-Befehl system update rule eingegeben werden, damit die Werte in den Regeln angewendet werden.
|
Beispiel, um maximal 20 Verbindungen pro Minute je IP-Adresse und Port zuzulassen. Bei TCP wird die Überwachung auf die Ports 443 und 11115 beschränkt. Es werden alle Ports auf UDP-Verbindungen überwacht. |