OPNsense IPsec VPN: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
(kein Unterschied)

Aktuelle Version vom 11. Februar 2026, 12:41 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