OPNsense IPsec VPN: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
= Firewall Regeln =
 +
* Unter '''Firewall => Rules => IPsec''' müssen die gewünschten Protokolle durchgelassen werden
 +
* Unter '''Firewall => Rules => WAN''' müssen die ESP-Pakete der gegenseite auf die Firewall selbst akzeptiert werden
 +
 
= UI =
 
= UI =
 
* IPsec wird unter dem Menü: '''VPN => IPsec''' konfiguriert
 
* IPsec wird unter dem Menü: '''VPN => IPsec''' konfiguriert
Zeile 14: Zeile 18:
 
* Unter dem Menü '''VPN => IPsec => Pre-Shared Keys''' muss dann der Schlüssel gespeichert werden
 
* Unter dem Menü '''VPN => IPsec => Pre-Shared Keys''' muss dann der Schlüssel gespeichert werden
 
* Dazu klickt man auf das [+]-Symbol rechts und gibt unter '''Local Identifier''' die eigene WAN IP und bei '''Remote Identifier''' die IP der Gegenseite an
 
* Dazu klickt man auf das [+]-Symbol rechts und gibt unter '''Local Identifier''' die eigene WAN IP und bei '''Remote Identifier''' die IP der Gegenseite an
 +
* Dieser Eintrag wird dann bei Connections befragt, wenn die Identifier-Parameter mit der Verbindung übereinstimment
  
 
== Konfiguration der Phase 1 ==
 
== Konfiguration der Phase 1 ==
Zeile 20: Zeile 25:
 
* Danach muss man für '''Local addresses''' die eigene WAN IP-Adresse angeben und für '''Remote addresses''' die IP der Gegenseite
 
* Danach muss man für '''Local addresses''' die eigene WAN IP-Adresse angeben und für '''Remote addresses''' die IP der Gegenseite
 
* Das '''Description'''-Feld ist nötig, um die Verbindung zu benennen
 
* Das '''Description'''-Feld ist nötig, um die Verbindung zu benennen
 +
* Wenn man auf '''Save''' drückt sollte sich ein Feld mit den Authentifizierungsparametern aufklappen
 +
* Für '''Local AUthentication''' muss das '''id'''-Feld mit dem '''Local Identifier''' in der Vorraussetzung übereinstimmen
 +
* Für '''Remote AUthentication''' muss das '''id'''-Feld mit dem '''Remote Identifier''' in der Vorraussetzung übereinstimmen
  
 
== Konfiguration der Phase 1 ==
 
== Konfiguration der Phase 1 ==
 +
* Unter '''VPN => IPsec => Connections''' kann man über das [+]-Symbol rechts eine neue Verbindung anlegen
 +
* Fall möglich sollte man die '''Version''' auf IKEv2 beschränken
 +
* Danach muss man für '''Local addresses''' die eigene WAN IP-Adresse angeben und für '''Remote addresses''' die IP der Gegenseite
 +
* Das '''Description'''-Feld ist nötig, um die Verbindung zu benennen
 +
* Wenn man auf '''Save''' drückt sollte sich ein Feld mit der Authentifizierungsmethode und der Konfiguration von Phase 2 aufklappen
 +
* Für '''Local AUthentication''' muss das '''id'''-Feld mit dem '''Local Identifier''' in der Vorraussetzung übereinstimmen
 +
* Für '''Remote AUthentication''' muss das '''id'''-Feld mit dem '''Remote Identifier''' in der Vorraussetzung übereinstimmen
 +
 +
== Konfiguration der Phase 2 ==
 +
* Um sicherzugehen, dass die Verbindung nach dem Laden der Konfiguration aktiv wird, sollte man '''Start action''' auf "Start" setzen
 +
* Sonst müssen nur die jeweiligen LAN-Subnetze der Standorte eingetragen werden
 +
 +
== Aktivieren und überwachen ==
 +
* Wenn bei Standorte ihre Konfiguration haben, sollte bei '''VPN => IPsec => Status Overview''' Phase 1 und 2 angezeigt werden
 +
* Für Phase 1 wird dann ein grüner Pfeil angezeigt, wenn die Verbindung aufgebaut wurde (rotes Kreuz wenn nicht)
 +
* Für Phase 2 sollte "INSTALLED" da stehen
 +
* Mit dem Reload-Button rechts kann der Status automatisch in einem bestimmten Interval aktualisiert werden ohne die Seite neuzuladen
 +
* Auf dem Dashboard in kann auch ein Widget für IPsec hinzugefügt werden, welches die Anzahl der installierten Tunnel anzeigt
  
 
= einen ausfallsicheren Tunnel mit dem Legacy-Menü aufbauen =
 
= einen ausfallsicheren Tunnel mit dem Legacy-Menü aufbauen =
 
* Für den HA-Betrieb wird angenommen, dass CARP benutzt wird
 
* Für den HA-Betrieb wird angenommen, dass CARP benutzt wird
 +
* Die Problemtatik hierbei ist der automatische Neustart des Tunnels, weil die Backup-Firewall im Normalfall keinen Tunnel aufgebaut hat
 +
* Wenn beim Ausfall ein neuer Tunnel initiiert wird, kann es sein, dass die Gegenseite ablehnt, weil er aus seiner Sicht derselbe Tunnel noch besteht
 +
* Um den Verbindungsstatus zu akualisieren sollten also beide Seite "Dead-Peer-Detection" aktivieren
 +
* Die Konfiguration dafür ist im Legacy-Menü einfacher als im neuen (theoretisch möglich, aber man muss mehr nach den Optionen suchen)
 +
 +
== Konfiguration der Phase 1 ==
 +
* Im Menü '''VPN => IPsec => Tunnel Settings [legacy]''' ist rechts ein [+]-Symbol, wo man eine neue Verbindung anlegen kann
 +
* Hierfür stollte dann statt dem vorgeschlagenen WAN-Interface das virtuelle Interface benutzt werden
 +
* '''Remote gateway''' ist die WAN-IP der Gegenseite
 +
* '''Description''' ist der Name der Verbindung
 +
* Wenn '''Mutual PSK''' als Authentifizierungsmethode gewählt wird muss man nur noch den Pre-Shared Key eintragen
 +
* Für '''Close Action''' muss "Restart" ausgewählt werden falls die Gegenseite ebenfalls eine HA-Firewall betreibt
 +
* Ebenso sollte die DPD-Aktion "Restart" sein; Das Menü erscheint, wenn man '''Dead Peer Detection''' ankreuzt
 +
* '''Unique''' sollte auf "Replace" gestellt werden
 +
 +
== Konfiguration der Phase 2 ==
 +
* Phase 2 eines Tunnels wird über das [+]-Symbol neben der dazugehörigen Phase 1 Verbindung hinzugefügt
 +
* Für "Local Network" und "Remote Network" müssen dann die entsprechenden Subnetze hinter der Firewall angegeben werden
 +
* Je nachdem wie das DPD-Interval eingestellt ist, kann es zwischen 10-20 Sekunden dauern bis die Child Association bei Ausfall der Master-Firewall wiederaufgebaut wird.
 +
* Nach dem Aktivieren der Verbindung sollte die Master-Firewall anzeigen, dass der Tunnel besteht, während die Backup-Firewall erstmal "Disconnected" anzeigt
 +
 +
== Testen ==
 +
* Diese Konfiguration kann symmetrisch auf beiden Standorten verwendet werden, falls beide ein HA-System haben (IPs und Netze müssen getauscht sein)
 +
* Ein Host im LAN sollte versuchen einen Host im anderen LAN mit '''ping zu erreichen''' und den Befehl bis zum Abschluss des Tests ausführen
 +
* Nun kann man unter '''Power => Reboot''' die Master-Firewall neustarten
 +
* Der Ping auf dem LAN Host wird für einige Sekunden unterbrochen bis die Gegenseite über DPD den Ausfall erkennt
 +
* In der Zwischenzeit sollte die Backup-Firewall bereits die virtuelle IP übernommen haben
 +
* Der Tunnel wird also wieder aufgebaut sobald die Gegenseite neu initiiert
 +
* Die Pings vom LAN Host werden nach einiger Zeit erneut durchgehen ohne den Befehl abgebrochen zu haben
 +
* Wenn die Master-Firewall wieder hochgefahren ist, wird der Tunnel automatisch neu aufgebaut
 +
* Es kann jedoch sein, dass IPsec auf der Backup-Firewall neugestartet werden muss, um den Ausgangszustand wiederherzustellen
 +
 +
= Bespiel Szenario =
 +
Folgt...

Aktuelle Version vom 17. Januar 2024, 11:57 Uhr

Firewall Regeln

  • Unter Firewall => Rules => IPsec müssen die gewünschten Protokolle durchgelassen werden
  • Unter Firewall => Rules => WAN müssen die ESP-Pakete der gegenseite auf die Firewall selbst akzeptiert werden

UI

  • IPsec wird unter dem Menü: VPN => IPsec konfiguriert
  • Hierbei gibt es zwei Arten eine Verbindung zu konfigurieren
    • Connections: Einfache Methode, um schnell einen Tunnel zu erstellen. Es sind aber einige Optionen, die das Verhalten steuern nicht vorhanden
    • Tunnel Settings [legacy]: Hier werden Phase 1 und 2 separat erstellt. Diese Methode ist empfohlen, wenn man eine spezielle Konfiguration haben möchte
  • Wer sich mal mit der Konfigurationsdatei von strongswan auseinander gesetzt hat, wird die Legacy-Konfigurationsmethode einfacher finden
Um die Verbindungen zu aktivieren muss der Haken unten rechts bei den IPsec Verbindungen gesetzt sein.

einen Tunnel mit Connections aufbauen

Vorraussetzung

  • Damit die beiden Firewalls sich gegenseitig authentifizieren können, muss entweder eine Zertifikat oder ein PSK hinterlegt sein
  • i.d.R. reicht es einen PSK mit der Gegenseite vorher auszutauschen
  • Unter dem Menü VPN => IPsec => Pre-Shared Keys muss dann der Schlüssel gespeichert werden
  • Dazu klickt man auf das [+]-Symbol rechts und gibt unter Local Identifier die eigene WAN IP und bei Remote Identifier die IP der Gegenseite an
  • Dieser Eintrag wird dann bei Connections befragt, wenn die Identifier-Parameter mit der Verbindung übereinstimment

Konfiguration der Phase 1

  • Unter VPN => IPsec => Connections kann man über das [+]-Symbol rechts eine neue Verbindung anlegen
  • Fall möglich sollte man die Version auf IKEv2 beschränken
  • Danach muss man für Local addresses die eigene WAN IP-Adresse angeben und für Remote addresses die IP der Gegenseite
  • Das Description-Feld ist nötig, um die Verbindung zu benennen
  • Wenn man auf Save drückt sollte sich ein Feld mit den Authentifizierungsparametern aufklappen
  • Für Local AUthentication muss das id-Feld mit dem Local Identifier in der Vorraussetzung übereinstimmen
  • Für Remote AUthentication muss das id-Feld mit dem Remote Identifier in der Vorraussetzung übereinstimmen

Konfiguration der Phase 1

  • Unter VPN => IPsec => Connections kann man über das [+]-Symbol rechts eine neue Verbindung anlegen
  • Fall möglich sollte man die Version auf IKEv2 beschränken
  • Danach muss man für Local addresses die eigene WAN IP-Adresse angeben und für Remote addresses die IP der Gegenseite
  • Das Description-Feld ist nötig, um die Verbindung zu benennen
  • Wenn man auf Save drückt sollte sich ein Feld mit der Authentifizierungsmethode und der Konfiguration von Phase 2 aufklappen
  • Für Local AUthentication muss das id-Feld mit dem Local Identifier in der Vorraussetzung übereinstimmen
  • Für Remote AUthentication muss das id-Feld mit dem Remote Identifier in der Vorraussetzung übereinstimmen

Konfiguration der Phase 2

  • Um sicherzugehen, dass die Verbindung nach dem Laden der Konfiguration aktiv wird, sollte man Start action auf "Start" setzen
  • Sonst müssen nur die jeweiligen LAN-Subnetze der Standorte eingetragen werden

Aktivieren und überwachen

  • Wenn bei Standorte ihre Konfiguration haben, sollte bei VPN => IPsec => Status Overview Phase 1 und 2 angezeigt werden
  • Für Phase 1 wird dann ein grüner Pfeil angezeigt, wenn die Verbindung aufgebaut wurde (rotes Kreuz wenn nicht)
  • Für Phase 2 sollte "INSTALLED" da stehen
  • Mit dem Reload-Button rechts kann der Status automatisch in einem bestimmten Interval aktualisiert werden ohne die Seite neuzuladen
  • Auf dem Dashboard in kann auch ein Widget für IPsec hinzugefügt werden, welches die Anzahl der installierten Tunnel anzeigt

einen ausfallsicheren Tunnel mit dem Legacy-Menü aufbauen

  • Für den HA-Betrieb wird angenommen, dass CARP benutzt wird
  • Die Problemtatik hierbei ist der automatische Neustart des Tunnels, weil die Backup-Firewall im Normalfall keinen Tunnel aufgebaut hat
  • Wenn beim Ausfall ein neuer Tunnel initiiert wird, kann es sein, dass die Gegenseite ablehnt, weil er aus seiner Sicht derselbe Tunnel noch besteht
  • Um den Verbindungsstatus zu akualisieren sollten also beide Seite "Dead-Peer-Detection" aktivieren
  • Die Konfiguration dafür ist im Legacy-Menü einfacher als im neuen (theoretisch möglich, aber man muss mehr nach den Optionen suchen)

Konfiguration der Phase 1

  • Im Menü VPN => IPsec => Tunnel Settings [legacy] ist rechts ein [+]-Symbol, wo man eine neue Verbindung anlegen kann
  • Hierfür stollte dann statt dem vorgeschlagenen WAN-Interface das virtuelle Interface benutzt werden
  • Remote gateway ist die WAN-IP der Gegenseite
  • Description ist der Name der Verbindung
  • Wenn Mutual PSK als Authentifizierungsmethode gewählt wird muss man nur noch den Pre-Shared Key eintragen
  • Für Close Action muss "Restart" ausgewählt werden falls die Gegenseite ebenfalls eine HA-Firewall betreibt
  • Ebenso sollte die DPD-Aktion "Restart" sein; Das Menü erscheint, wenn man Dead Peer Detection ankreuzt
  • Unique sollte auf "Replace" gestellt werden

Konfiguration der Phase 2

  • Phase 2 eines Tunnels wird über das [+]-Symbol neben der dazugehörigen Phase 1 Verbindung hinzugefügt
  • Für "Local Network" und "Remote Network" müssen dann die entsprechenden Subnetze hinter der Firewall angegeben werden
  • Je nachdem wie das DPD-Interval eingestellt ist, kann es zwischen 10-20 Sekunden dauern bis die Child Association bei Ausfall der Master-Firewall wiederaufgebaut wird.
  • Nach dem Aktivieren der Verbindung sollte die Master-Firewall anzeigen, dass der Tunnel besteht, während die Backup-Firewall erstmal "Disconnected" anzeigt

Testen

  • Diese Konfiguration kann symmetrisch auf beiden Standorten verwendet werden, falls beide ein HA-System haben (IPs und Netze müssen getauscht sein)
  • Ein Host im LAN sollte versuchen einen Host im anderen LAN mit ping zu erreichen und den Befehl bis zum Abschluss des Tests ausführen
  • Nun kann man unter Power => Reboot die Master-Firewall neustarten
  • Der Ping auf dem LAN Host wird für einige Sekunden unterbrochen bis die Gegenseite über DPD den Ausfall erkennt
  • In der Zwischenzeit sollte die Backup-Firewall bereits die virtuelle IP übernommen haben
  • Der Tunnel wird also wieder aufgebaut sobald die Gegenseite neu initiiert
  • Die Pings vom LAN Host werden nach einiger Zeit erneut durchgehen ohne den Befehl abgebrochen zu haben
  • Wenn die Master-Firewall wieder hochgefahren ist, wird der Tunnel automatisch neu aufgebaut
  • Es kann jedoch sein, dass IPsec auf der Backup-Firewall neugestartet werden muss, um den Ausgangszustand wiederherzustellen

Bespiel Szenario

Folgt...