maximus80
Goto Top

OPNSense VPN IKEv2. läuft einfach nicht

Hallo zusammen,

ich habe die IPsec VPN-Anleitung von aqui nun wirklich penibel genau nachgebaut - meine ich zumindest, denn ich bring es einfach nicht zum Laufen und komme mit dem Client (Windows 10 VPN Bordmittel) nicht über die nichtssagende "konnte nicht hergestellt werden da der Remoteserver nicht antwortet" - Fehlermeldung hinaus.

Was sind denn sinnvollerweise die nächsten Schritte, damit mir ein freundlicher Experte weiterhelfen kann? Gibt es eine Logfile-Funktion die ich aktivieren kann?

Wenn ich beim Windows10 - Client Benutzername und Kennwort leer lasse, verbindet er sich wohl, fragt dann eben nach Benutzername/Kennwort und schmeißt mich dann immer wieder raus.

OPNsense 22.7.10_2-amd64

Zertifikat:
X509v3 Subject Alternative Name: DNS:OPNsense, IP Address:194.XXX.YY.ZZ, DNS:OPNsense.pfruendeweg.4

IPsec Tunnel Phase 1 Kennung "bedeutender Name" OPNsense.pfruendeweg.4
mit der dazu gehörigen Zertifikat...

Und ja, Kennung und PSK hab ich natürlich auch gesetzt und keine Tippfehler drin.

Hab meines Erachtens alle Schritte genau kontrolliert und komm nicht weiter. face-sad

Vielleicht kann mir jemand helfen bzw. sagen, wo genau dass ich suchen muss.

SG Christof

Content-ID: 5190139942

Url: https://administrator.de/forum/opnsense-vpn-ikev2-laeuft-einfach-nicht-5190139942.html

Ausgedruckt am: 26.12.2024 um 02:12 Uhr

maximus80
maximus80 02.01.2023 um 22:19:42 Uhr
Goto Top
So... jetzt habe ich in den "Tunneleinstellungen" noch eine Checkbox gefunden - "IPsec aktivieren"
Jetzt habe ich zumindest eine neue Fehlermeldung:

"IKE-Authentifizierung-Anmeldeinformationen sind nicht akzeptabel"

... und nu?
Pjordorf
Pjordorf 02.01.2023 um 23:43:49 Uhr
Goto Top
Hallo,

Zitat von @maximus80:
ich habe die IPsec VPN-Anleitung von aqui nun wirklich penibel genau nachgebaut -
Welche Anleitung von @aqui meinst du denn? @aqui hat einige excellente Anleitungen verfasst,

Was sind denn sinnvollerweise die nächsten Schritte, damit mir ein freundlicher Experte weiterhelfen kann? Gibt es eine Logfile-Funktion die ich aktivieren kann?
Schon mal ins Ereigniss Protokoll geschaut?

OPNsense 22.7.10_2-amd64
Was nutzt du jetzt tatsächlich? Windows Client VPN oder dritthersteller VPN?

Hab meines Erachtens alle Schritte genau kontrolliert und komm nicht weiter. face-sad
Deine genutzten Internet Provider machen beide IPv4/IPv6 CGNAT usw.?
Aufruf per FQDN oder IP?
DNS zeigt auf korrekte IP?
Genutzte Port(s) korrekt weitergeleitet (wenn nicht per IPv6 verbunden werden soll)?
Was steht in den LOGs am VPN Server?
VPN Seerver aktuell gepatcht?
Windows Client aktuell gepatcht?
VPN Server lässt welche Auths zu?
Funktioniert deine VPN Server Konfig nachweisslich und getestet?
Im Verbindungsweg spielen alle Firewalls mit bzw. sind korrekt eingerichtet?
Deine Router sind richtig konfiguriert?

https://learn.microsoft.com/en-us/troubleshoot/windows-client/networking ...
https://support.microsoft.com/en-us/windows/connect-to-a-vpn-in-windows- ...

Gruß,
Peter
maximus80
maximus80 03.01.2023 um 09:40:47 Uhr
Goto Top
Guten Morgen,

Ich meinte diese Anleitung:
IPsec IKEv2 VPN für mobile Benutzer auf der pfSense oder OPNsense Firewall einrichten

Ich nutze die OPNsense 22.7.10_2 auf einem eigenen Mini-PC, auf dieser möchte ich den VPN-Zugang ins eigene Netzwerk für externe Clients (Homeoffice etc.) wieder einrichten. Den alten Router, der "nur" L2TP IPSec konnte (da hat es immer anstandslos funktioniert) habe ich ausrangiert.

Die Verbindung von den externen Clients soll mit den Windows Bordmitteln erfolgen, also keine separate Software.

Verbindung zum Internet besteht (IPv4 mit statischer IP-Adresse), funktioniert auch alles. IPv6 habe ich deaktiviert.

OPNSense aktuell gepatcht, Windows10-Client ebenso. Auf dem Client ist bereits 22H2 installiert, der Patch KB5010793 wird hierfür gar nicht mehr angeboten.

Und das ist das Logfile der OPNsense:

2023-01-03T09:25:44 Informational charon 15[JOB] <con1|14> deleting half open IKE_SA with 89.144.204.187 after timeout
2023-01-03T09:25:14 Informational charon 15[NET] <con1|14> sending packet: from 194.208.15.26[4500] to 89.144.204.187[53066] (564 bytes)
2023-01-03T09:25:14 Informational charon 15[NET] <con1|14> sending packet: from 194.208.15.26[4500] to 89.144.204.187[53066] (1236 bytes)
2023-01-03T09:25:14 Informational charon 15[ENC] <con1|14> generating IKE_AUTH response 1 [ EF(2/2) ]
2023-01-03T09:25:14 Informational charon 15[ENC] <con1|14> generating IKE_AUTH response 1 [ EF(1/2) ]
2023-01-03T09:25:14 Informational charon 15[ENC] <con1|14> splitting IKE message (1728 bytes) into 2 fragments
2023-01-03T09:25:14 Informational charon 15[ENC] <con1|14> generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
2023-01-03T09:25:14 Informational charon 15[IKE] <con1|14> sending end entity cert "C=AT, ST=Vorarlberg, L=Rankweil, O=maxiimmo GmbH, E=christof.heinzle@maxiimmo.at, CN=OPNsense.pfruendeweg.4"
2023-01-03T09:25:14 Informational charon 15[IKE] <con1|14> authentication of 'OPNsense.pfruendeweg.4' (myself) with RSA signature successful
2023-01-03T09:25:14 Informational charon 15[IKE] <con1|14> peer supports MOBIKE
2023-01-03T09:25:14 Informational charon 15[IKE] <con1|14> initiating EAP_IDENTITY method (id 0x00)
2023-01-03T09:25:14 Informational charon 15[CFG] <con1|14> selected peer config 'con1'
2023-01-03T09:25:14 Informational charon 15[CFG] <14> looking for peer configs matching 194.208.15.26[%any]...89.144.204.187[192.168.57.63]
2023-01-03T09:25:14 Informational charon 15[IKE] <14> received 67 cert requests for an unknown ca
2023-01-03T09:25:14 Informational charon 15[IKE] <14> received cert request for "C=AT, ST=Vorarlberg, L=Rankweil, O=maxiimmo GmbH, E=christof.heinzle@maxiimmo.at, CN=OPNsense.pfruendeweg.4"
2023-01-03T09:25:14 Informational charon 15[ENC] <14> parsed IKE_AUTH request 1 [ IDi CERTREQ N(MOBIKE_SUP) CPRQ(ADDR DNS NBNS SRV) SA TSi TSr ]
2023-01-03T09:25:14 Informational charon 15[ENC] <14> received fragment #4 of 4, reassembled fragmented IKE message (1696 bytes)
2023-01-03T09:25:14 Informational charon 15[ENC] <14> parsed IKE_AUTH request 1 [ EF(4/4) ]
2023-01-03T09:25:14 Informational charon 15[NET] <14> received packet: from 89.144.204.187[53066] to 194.208.15.26[4500] (212 bytes)
2023-01-03T09:25:14 Informational charon 16[ENC] <14> received fragment #3 of 4, waiting for complete IKE message
2023-01-03T09:25:14 Informational charon 16[ENC] <14> parsed IKE_AUTH request 1 [ EF(3/4) ]
2023-01-03T09:25:14 Informational charon 16[NET] <14> received packet: from 89.144.204.187[53066] to 194.208.15.26[4500] (580 bytes)
2023-01-03T09:25:14 Informational charon 16[ENC] <14> received fragment #2 of 4, waiting for complete IKE message
2023-01-03T09:25:14 Informational charon 16[ENC] <14> parsed IKE_AUTH request 1 [ EF(2/4) ]
2023-01-03T09:25:14 Informational charon 16[NET] <14> received packet: from 89.144.204.187[53066] to 194.208.15.26[4500] (580 bytes)
2023-01-03T09:25:14 Informational charon 16[ENC] <14> received fragment #1 of 4, waiting for complete IKE message
2023-01-03T09:25:14 Informational charon 16[ENC] <14> parsed IKE_AUTH request 1 [ EF(1/4) ]
2023-01-03T09:25:14 Informational charon 16[NET] <14> received packet: from 89.144.204.187[53066] to 194.208.15.26[4500] (580 bytes)
2023-01-03T09:25:14 Informational charon 16[NET] <14> sending packet: from 194.208.15.26[500] to 89.144.204.187[64174] (353 bytes)
2023-01-03T09:25:14 Informational charon 16[ENC] <14> generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]
2023-01-03T09:25:14 Informational charon 16[IKE] <14> sending cert request for "C=AT, ST=Vorarlberg, L=Rankweil, O=maxiimmo GmbH, E=christof.heinzle@maxiimmo.at, CN=maxiimmo_CA"
2023-01-03T09:25:14 Informational charon 16[IKE] <14> remote host is behind NAT
2023-01-03T09:25:14 Informational charon 16[CFG] <14> selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024
2023-01-03T09:25:14 Informational charon 16[IKE] <14> 89.144.204.187 is initiating an IKE_SA
2023-01-03T09:25:14 Informational charon 16[ENC] <14> received unknown vendor ID: 01:52:8b:bb:c0:06:96:12:18:49:ab:9a:1c:5b:2a:51:00:00:00:02
2023-01-03T09:25:14 Informational charon 16[IKE] <14> received Vid-Initial-Contact vendor ID
2023-01-03T09:25:14 Informational charon 16[IKE] <14> received MS-Negotiation Discovery Capable vendor ID
2023-01-03T09:25:14 Informational charon 16[IKE] <14> received MS NT5 ISAKMPOAKLEY v9 vendor ID
2023-01-03T09:25:14 Informational charon 16[ENC] <14> parsed IKE_SA_INIT request 0 [ SA KE No N(FRAG_SUP) N(NATD_S_IP) N(NATD_D_IP) V V V V ]
2023-01-03T09:25:14 Informational charon 16[NET] <14> received packet: from 89.144.204.187[64174] to 194.208.15.26[500] (624 bytes)


Also so wie ich das lese, kommt eine Verbindung zustande, Client schickt wohl alle Zertifikate raus, davon ist eines gültig - authentication of 'OPNsense.pfruendeweg.4' (myself) with RSA signature successful

Phase 1 wird gestartet... und dann geht nix weiter
Zumindest interpretiere ich so die letzte Zeile "deleting half open IKE_SA with 89.144.204.187 after timeout"

Authentifizierung gem. Anleitung EAP-MSCHAPV2, Verschlüsselung AES 256, SHA256, Schlüsselgruppe 1024 bits und 2048 bits (ist zwar eigentlich nur für Windows-Clients, aber ich hab die Schlüsselgruppe 14 auch mal aktiviert. Das hat aber keine Auswirkung im konkreten Fall.

Gruß, Christof
aqui
aqui 03.01.2023, aktualisiert am 22.03.2024 um 17:03:10 Uhr
Goto Top
konnte nicht hergestellt werden da der Remoteserver nicht antwortet
Besagt das deine OPNsense gar nicht antwortet auf die IKEv2 Requests, sprich VPN Traffic kommt da gar nicht an.
Kann das sein das du am WAN/Internet Port vergessen hast im Regelwerk den IKEv2 Traffic freizugeben??
Dort muss ein Regelwerk mit den folgenden Regeln rein:
  • PASS, Prot: UDP, Source: Any, Destination: FW_WAN_ip_address, Port: 500
  • PASS, Prot: UDP, Source: Any, Destination: FW_WAN_ip_address, Port: 4500
  • PASS, Prot: ESP, Source: Any, Destination: FW_WAN_ip_address
Ohne das wird es nichts mit dem VPN Zugriff.

Diese Regeln erstellt die OPNsense IMMER automatisch!! Kann also normalerweise nicht der Fehler sein was sich unten ja auch bestätigt hat! face-wink

Betreibst du die FW in einer Router Kaskade oder mit einem NUR Modem direkt am Internet??
Wenn es eine Kaskade ist hast du die o.a. angegebenen Port Forwarding Regeln am NAT Router davor beachtet?

Ansonsten vermutlich ein Zertifikatsproblem!
WIE hast du das generiert?? Auf der OPNsense selber oder extern?
maximus80
maximus80 03.01.2023 um 11:53:55 Uhr
Goto Top
Die Fehlermeldung "konnte nicht hergestellt werden da der Remoteserver nicht antwortet" war sozusagen die erste, die hat sich aber erledigt, da ich in den "Tunneleinstellungen" wirklich die Checkbox "IPsec aktivieren" vergessen hatte.

Die Regeln in der Firewall hat es automatisch erstellt, jetzt sind sie sozusagen doppelt drin, da ich es selbst auch nochmal gemacht habe. (Siehe Screenshot)

Nein, keine Router Kaskade - Kabelmodem hängt am WAN-Port, fixe IP-Adresse.

Das Zertifikat habe ich gem. Deiner Anleitung auf der OPNsense selbst generiert.
fwregeln
aqui
aqui 03.01.2023 um 12:12:52 Uhr
Goto Top
jetzt sind sie sozusagen doppelt drin, da ich es selbst auch nochmal gemacht habe.
Die doppelten von dir solltest du dann in jedem Falle wieder entfernen! Sie sind so oder so fehlerhaft weil als Quellport dort unsinnigerweise auch die Ziel Ports angegeben sind.
Kabelmodem hängt am WAN-Port, fixe IP-Adresse.
Nur nochmal nachgefragt:
Das ist wirklich ein reines Modem und kein Router?? Sprich also die öffentliche IP Adresse liegt direkt am WAN Port der Firewall?
aqui
Lösung aqui 03.01.2023, aktualisiert am 05.01.2023 um 09:51:19 Uhr
Goto Top
Hier nochmal ein wasserdicht funktionierendes Setup mit der OPNsense Version 22.7.10_2 und Test mit einem Win10 sowie Win11 Client 22H2.

back-to-topCA erstellen

Gültigkeitszeitraum ggf. anpassen! (Beispiel hier 3 Jahre)
ca1

back-to-topCA Zertifikat exportieren

...und in die Stammzertifikate gem. Tutorial in Win10/11 importieren
ca3

back-to-topServer Zertifikat erstellen

Gültigkeitszeitraum ggf. anpassen! (Beispiel hier 3 Jahre)
srvcert
(Achtung: IP Adressfeld nur dann wenn feste IP am WAN Port vorhanden! Bei dyn. IPs weglassen!)

back-to-topFW GUI Access Zertifikat umstellen

acc1

back-to-topMobile IKEv2 VPN Phase 1, Phase 2 und User Setups

p11

back-to-topPhase 2

p2

back-to-topUser anlegen

user

back-to-topCheck und Ping Check

Status, Policy und Lease Statisik:
status
leasestat
policy
Dashboard:
dash

back-to-topPing und ipconfig -all Check

wincl1
wpicheck

back-to-topFazit

Works as designed!!! 👍 😉

Mehr "Silbertablett" geht jetzt nicht mehr!
maximus80
maximus80 03.01.2023 um 15:08:38 Uhr
Goto Top
Die doppelten von dir solltest du dann in jedem Falle wieder entfernen! Sie sind so oder so fehlerhaft weil als Quellport dort unsinnigerweise auch die Ziel Ports angegeben sind.

Definitiv ein Überbleibsel meiner diversen Versuche. Aber ich hab sie alle rausgelöscht.
Ich schmeiß jetzt sowieso nochmal komplett alles raus, inkl. Zertifikat, und fang anhand Deiner Anleitung nochmal neu an.

Nur nochmal nachgefragt:
Das ist wirklich ein reines Modem und kein Router?? Sprich also die öffentliche IP Adresse liegt direkt am WAN Port der Firewall?

Es ist definitiv ein reines Modem im Bridge-Mode. Kein NAT oder Router oder sonst was:
wan
aqui
aqui 03.01.2023 um 15:22:42 Uhr
Goto Top
und fang anhand Deiner Anleitung nochmal neu an.
OPNsense Screenshots von laufenden Installationen findest du auch hier.
maximus80
Lösung maximus80 05.01.2023 um 09:02:13 Uhr
Goto Top
Guten Morgen,

zunächst mal vielen Dank für die Unterstützung und das Silbertablett.
Letztlich waren es drei Fehler:

1. böse, wenn man die super Anleitung nicht ultra-genau liest: Man muss nicht das Server-Zertifikat exportieren, sondern das Aussteller-Zertifikat. Ja, steht in der Anleitung, dann man auf den CA-Reiter klicken soll, aber dadurch dass der Schritt unterhalb der Erstellung des Server-Zertifikats steht, bin ich falsch abgebogen.

2. Einschub, obwohl natürlich keiner schuld ist, weder OPNSense noch aqui... Beim Suchen nach multiplen Fehlern natürlich sehr mühsam ist es, wenn man irgendwann feststellt, dass der eigene Hotspot vom Handy (verwendet um den externen Zugang zu simulieren/testen) eine Ursache ist. Ich komme mit dem Hotspot überall "ganz normal" ins Internet, aber bei VPN gabs immer nur einen Fehler. Mit dem Hotspot/Handy meines Nachbarn, der fieberhaft mitgerätselt hat, funktionierts... da muss man erst mal drauf kommen.

3. Vollbracht - VPN-Verbindung steht. Ping nicht möglich. In der Anleitung steht bei den Firewall-Regeln für IPSec:
ist dort eine allow all Regel vorhanden ist nichts zu tun... Kurz vor der finalen Verzweiflung nochmal schauen: Die von OPNSense hier automatisch angelegte "Allow All"-Regel ist nur ausgehend!
Also manuell noch eine Allow All-Regel eingehend definieren - und schon pingt es.

Also nochmal vielen Dank!
aqui
aqui 05.01.2023 um 09:56:04 Uhr
Goto Top
Immer gerne und danke für das Feedback! Ich werde im Tutorial den Hinweis das CA Zertifikat zu importieren noch einmal deutlicher herausstellen.

Wenns es das denn war bitte dann auch nicht vergessen deinen Thread hier als erledigt zu schliessen!
servusli1
servusli1 07.03.2023 um 21:11:02 Uhr
Goto Top
@aqui

Ich habe deine wasserdichte Konfiguration 1:1 übernommen. Jedoch scheitere ich beim Erstellen eines Users unter Pre-Shared Keys. Unter opnsense 23.1 sieht dieses Fenster so aus wie im Screenshot.

Was muss ich da eintragen um eine funktionierende VPN-Verbindung mit einem iPhone und macOS hinzubekommen?
bildschirm­foto 2023-03-07 um 21.09.27
aqui
aqui 08.03.2023 aktualisiert um 10:04:57 Uhr
Goto Top
Steht eigentlich alles im Tutorial unter dem Kapitel "Benutzername einrichten"!! Also nochmal ganz in Ruhe lesen und verstehen. face-wink

  • Local Identifier = Username (z.B. servusli1)
  • Pre-Shared Key = das User Passwort (z.B. Geheim123)
  • Type = EAP
Alle anderen Felder bleiben leer!
userpsk
Ich setze zusätzlich nochmal einen Screenshot davon ins Tutorial!
servusli1
servusli1 08.03.2023 aktualisiert um 11:30:11 Uhr
Goto Top
@aqui

Jetzt klappt es.
Du hast jedoch in diesem Turtorial einige Differenzen warum es nicht funktionierte.

So funktioniert es bei mir:

Phase 1 proposal (Authentication)
screenshot 2023-03-08 111538

Phase 2 proposal (SA/Key Exchange)
screenshot 2023-03-08 111717

Was muss denn eingestellt werden um den ganzen Traffic durch den Tunnel zu senden?
So dass meine IP-Adresse von zu Hause angezeigt wird auf meinem iPhone wenn ich eine IP-Abfrage mache.
Es geht hauptsächlich darum, meine PiHole DNS-Server zu Hause auch unterwegs zu nutzen.
Wenn man den gesamten Traffic in den Tunnel legen kann wäre das sensationell. face-smile
aqui
aqui 08.03.2023, aktualisiert am 22.03.2024 um 17:00:56 Uhr
Goto Top
Jetzt klappt es.
👏👍 Glückwunsch! So sollte es sein...
Du hast jedoch in diesem Turtorial einige Differenzen warum es nicht funktionierte.
Könntest du das etwas genauer spezifizieren, damit ich diese Fehler dann beseitigen kann?

Ich vermute aber keinen Tutorialfehler sondern eher das du ggf. einen Anfängerfehler beim Setup der Phase 1 begangen hast und hier ggf. vergessen hast in den DH Gruppen einen 2ten Eintrag bzw. bei der OPNsense zusätzlich die DH Gruppe 14 vergessen hast mit einzutragen?!
Das Tutorial weisst extra in rot daraufhin das das bei Apple Clients zu beachten ist, da diese die DH14 Gruppe zwingend erfordern! Andernfalls kommt der VPN Tunnel nicht zustande.
Ein entsprechender, dedizierter OPNsense Screenshot im Tutorial zeigt dann noch einmal alle relevanten P1 und P2 Settings:

ike2uebers.
Eigentlich kann man ja da dann nicht mehr viel falsch machen sofern man in Ruhe alle diese Schritte gelesen und entsprechend korrekt umgesetzt hat!
Deine jetzigen o.a. Einstellungen entsprechen ja nun auch genau dem was im Tutorial steht und abgebildet ist! Also ggf. doch keine "Differenzen" sondern ein PEBKAC Fehler?!? 😉
(Übrigens kannst du genau diese P1 und P2 Settings auch in der Umsetzung eines IKEv2 VPN Servers mit Linux nochmal nachvollziehen. Auch hier werkelt, genau wie bei der OPNsense, der Strongswan Charon IPsec Daemon im Hintergrund.)
Was muss denn eingestellt werden um den ganzen Traffic durch den Tunnel zu senden?
Das Tutorial zu diesem Punkt vielleicht noch einmal gaaanz in Ruhe durchlesen! face-wink