Windows 10 VPN nativ mit IPSec und IKEv2 (Zertifikat)

Allgemeine Fragen zu Problemen. Keine Fehlerberichte oder Feature-Anfragen

Moderator: Securepoint

Antworten
horschd
Beiträge: 22
Registriert: Mo 28.06.2021, 11:39

Windows 10 VPN nativ mit IPSec und IKEv2 (Zertifikat)

Beitrag von horschd »

Hallo Community,

ich kämpfe hier mit dem Versuch, ein Windows 10-Client via Bordmitteln ein VPN anzulegen, der sich via IPSec und IKEv2 anhand Zertifikaten mit der UTM verbindet.

Mittlerweile sehe ich, dass mein W10-Roardwarrior im Windows-Eventlog folgenden Fehler ausspuckt: 
     IKE-Authentifizierung-Anmeldeinformationen sind nicht akzeptabel
Winevent 13801 RasClient

Nach Recherche im Netz scheint es wohl an den Zertifikaten zu liegen (oder an den Cipher-Suites)?

Was ich gemacht habe:
UTM:
  • root-CA Zertifikat
  • signiertes Server-Zert UTM (IPSec Server) CN = fqhn vom externen Anschluss (server.pubdomain.de)
  • signiertes Client-zert Roadwarrior (kein bestimmer CN)
Windows 10 Client:
- Zertifikate importiert auf Computer-Ebene (vorheriger Export durch UTM Typ PKCS mit Export-Key) ->
Root-Zert > Vertrauenswürdige Stammzertifizierungsstellen
Server-Zert > " "
Client-Zert > Eigene Zertifikate
  
- VPN-Verbindung angelegt (Typ IKEv2; Anmeldeinformationstyp: Zertifikat) ->
   Benutzername und Kennwort nicht angegeben  



Fragen:

1. muss auch im Client-Zertifikat im CN der Computername stehen vom Client? (z.B. client.localdomain.local) ?
2. Muss ich den optionalen Benutzername und Kennwort auch angeben (quasi wie bei XAuth)? Verlangt das die UTM? 



Hintergrund:
- wir suchen eine Lösung, bei der Windows-Clients nativ sich ins VPN einwählen können (pre-Login-VPN), damit sich der Roadwarrior ggf. via Benutzer-Wechsel am AD-Server authentifizieren kann;
Ja, ich weiß, dass ua. der NCP-Client dies kann (jedoch ist der recht teuer); 
Der OpenVPN-Client der Community-Edition v2.x kann zumindest via CLI und Taskplaner sich via OpenVPN verbinden, jedoch habe ich hier nicht den Komfort, dass der W10-Client in der GUI in der Anmeldemaske das VPN verbinden kann...


Danke für Eure Tipps!

Franz
Beiträge: 357
Registriert: Sa 02.04.2011, 17:52
Wohnort: Westerwald
Kontaktdaten:

Beitrag von Franz »

1. Nein im Zertifikat muss die IP-Adresse und/oder der DNS-Name enthalten sein, die als Ziel in der VPN-Verbindung angegeben ist.
2. Leider unterstützt die UTM z.Zt. kein EAP, deswegen kann nur das Zertifikat genutzt werden ( kein Benutzername und kein Passwort). Bei WireGuard ist das leider ebenso.

Ich erstelle die VPN-Verbindung unter Windows per PowerShell, das ist einfacher und nur so können die nötigen Parameter für Phase 1 und Phase 2 richtig gesetzt werden. Per GUI sind die nicht zugänglich. Mit einer entsprechenden Vorlage ist das Einrichten inkl. Zertifikatimport in 2 Minuten erledigt. Für die leichtere Handhabung lege ich noch Desktopverküpfungen für das Verbinden und Trennen der Verbindung an (Rasphone).

Man hat unter Windows die Möglichkeit, VPN-Verbindungen für Benutzer und/oder Computer zu erstellen. Dementsprechend müssen die Zertifikate im Zertifikatspeicher abgelegt werden (Lokaler Computer oder aktueller Benutzer).

Die Sache mit IKEv2 funktioniert soweit sehr gut. Jedoch ist mir bisher eine Einschränkung aufgefallen: Die Verdindung wird nach 8 Stunden getrennt. Die Lifetime der IKE-SA läuft dann ab und die SA wird nicht automatisch erneuert. Die Reauth funktioniert nicht richtig. Da mir bisher die Zeit fehlte und unsere Kunden bisher kein Problem damit hatten, die VPN-Verbindung nach 8 Stunden manuell neu aufzubauen, habe ich mich bisher nicht mit der weiteren Ursachenforschung beschäftigt, warum das Rekeying und Reauth in Phase 1 nicht mit der UTM wie gewünscht funktioniert.

Der in Windows intergriert VPN-Cilent ist nach meinen Feststellungen der Einzige, der auch auf Windows-Geräten mit ARM-CPU problemlos läuft. Der SSL-VPN-Client von Securepoint scheitert leider bei der TAP-Treiber-Installation.

Falls EAP und Benutzerauthentifizierung interessiert: Hier hatte ich letztes Jahr einen Verbesserungswunsch in der Wunschbox eingereicht.

IPSec IKEv2 mit EAP (ähnlich IKEv1 mit XAuth)

horschd
Beiträge: 22
Registriert: Mo 28.06.2021, 11:39

Beitrag von horschd »

Franz hat geschrieben: 1. Nein im Zertifikat muss die IP-Adresse und/oder der DNS-Name enthalten sein, die als Ziel in der VPN-Verbindung angegeben ist.
2. Leider unterstützt die UTM z.Zt. kein EAP, deswegen kann nur das Zertifikat genutzt werden ( kein Benutzername und kein Passwort). Bei WireGuard ist das leider ebenso.

Ich erstelle die VPN-Verbindung unter Windows per PowerShell, das ist einfacher und nur so können die nötigen Parameter für Phase 1 und Phase 2 richtig gesetzt werden. Per GUI sind die nicht zugänglich. Mit einer entsprechenden Vorlage ist das Einrichten inkl. Zertifikatimport in 2 Minuten erledigt. Für die leichtere Handhabung lege ich noch Desktopverküpfungen für das Verbinden und Trennen der Verbindung an (Rasphone).
Super, danke für die Info.

Iwie bekomm ich das von der Syntax noch nicht sauber hin mit der Powershell:
Das tut zwar, aber wie kann ich die Suites anpassen? 3DES, AES, SHA1, SHA256 oÄ?

Code: Alles auswählen

Add-VpnConnection -Name custom_ikev2_zert -ServerAddress some.evil.nsa.server -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -AllUserConnection
3. Wo kann ich nun granular die Cipher-Suites anpassen bzw. ändern?

Es gibt wohl auch noch den Parameter --CustomConfiguration <XmlDocument>    (mit dem man wohl einen custom 3rdParty-Parameter eingeben kann)
4. Bzw. den Parameter  -EncryptionLevel] {NoEncryption | Optional | Required | Maximum | Custom}    (kann man hier mit "Custom" was reißen)? Wenn ja, wie?

horschd
Beiträge: 22
Registriert: Mo 28.06.2021, 11:39

Beitrag von horschd »

*** Update
Vom Regen in die Traufe: Nun komme ich vom Winevent  Winevent 13801 RasClient nun zum Event 13819 
"die Verbindung konnte jedoch nicht hergestellt werden. Der durch den Fehler zurückgegebene
                    Ursachencode lautet: 13819"


Scheinbar nun wieder ein Zert-Fehler?

Reihenfolge:
UTM:
  • Root-CA (cn = root-ca-utm)
  • server-ca-utm (cn = fqhn, z.b. server.mydomain.com), signiert von root-CA
  • client-zert (cn = irgendeinname-client, random), signiert von root-CA
w10 client:
  • root-CA = vertrauenswürdige stammzertifizierungsstellen
  • server-ca-utm = vertrauenswürdige stammzertifizierungsstellen
  • client-zert = eigene zertifikate
Was mache ich noch falsch?

Franz
Beiträge: 357
Registriert: Sa 02.04.2011, 17:52
Wohnort: Westerwald
Kontaktdaten:

Beitrag von Franz »

1. Im Zertifikt des Servers (UTM) muss der FQDN oder die IP des VPN-Servers unter den SAN angegeben werden.
2. Auf dem Client darf kein Serverzertifikat verwendet werden (Verwendungszweck "alle" oder "Clientauthentifizierung")
3. Das p12-Zertifikat in den Speicher "Lokaler Computer" importieren, wenn "-AllUserConnection" gesetzt, oder in "Aktueller Benutzer" importieren, wenn "-AllUserConnection" NICHT gesetzt.

Ich verwende wo immer möglich das PKCS#12-Format für den Zertifikat-Ex und -Import. Unter Windows funktioniert die automatische Auswahl des Zertifikatspeichers.

Hier mal ein Beispiel:

Code: Alles auswählen

$Name                   = "VPN-zur-Firma"
$VpnServerAddress       = "meinefirma.de"
$DnsSuffix              = "ad.meinefirma.de"
$DestinationPrefix1     = "192.168.15.0/24"


Add-VpnConnection $Name -ServerAddress $VpnServerAddress -TunnelType IKEv2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -DnsSuffix $DnsSuffix -SplitTunneling -AllUserConnection 

Set-VpnConnectionIPsecConfiguration -ConnectionName $Name -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -DHGroup Group14 -PfsGroup PFS2048 -AllUserConnection -Force -PassThru

Add-VpnConnectionRoute -ConnectionName $Name -DestinationPrefix $DestinationPrefix1 -PassThru

horschd
Beiträge: 22
Registriert: Mo 28.06.2021, 11:39

Beitrag von horschd »

*** update:
Bekomme es nun zum Laufen =)

Habe alle Zertifikate erneuert (Reihenfolge siehe oben) und das Client-zert via PKSC12 exportiert, damit der Private-Key auch reinkommt (Server- und CA-Zerts via PEM)

Jedoch mit sehr unsicheren Cipher-Suites:

ike phase1:
3des
sha1
modp1024
1h ike lifetime

ike phase2:
3des
sha1
no pfs
8h lifetime


Selbst wenn ich hier auf "lasche"
phase1:
aes128
sha2_256
modp1536

phase2:
aes128
sha2_256
modp1536 pfs
8h lifetime

gehe, kriege ich Verbindungsprobleme Winevent 13868

Mit was für Cipher-Suites kriegt ihr das zum Laufen?

Franz
Beiträge: 357
Registriert: Sa 02.04.2011, 17:52
Wohnort: Westerwald
Kontaktdaten:

Beitrag von Franz »

Per "Set-VpnConnectionIPsecConfiguration" muss die Verbindung den eigenen Wünschen entsprechend angepasst werden.

Ich verwende

Phase1
aes256
sha2_256
modp2048
24h lifetime

Phase1
aes256
sha2_256
modp2048
1h lifetime

Mit der Vorlage aus meinem vorherigen Beitrag sollte es funktionieren..

horschd
Beiträge: 22
Registriert: Mo 28.06.2021, 11:39

Beitrag von horschd »

top, danke!
Läuft bisher einwandfrei; Habe ähnliche Suites...

Weißt du zufällig, warum bei mir die VPN-Verbindung nicht gleich beim Login auftaucht?
Ich kenne das vom alten PPTP-VPN so, dass man gleich vor dem User-Login-Screen neben LAN/WLAN auch noch sich gleich ins VPN einwählen kann...

Franz
Beiträge: 357
Registriert: Sa 02.04.2011, 17:52
Wohnort: Westerwald
Kontaktdaten:

Beitrag von Franz »

Damit das Symbol für die Anmeldung via VPN auf dem Anmeldebildschirm erscheint, muss die VPN-Verbindung mit dem Parameter "-AllUserConnection " angelegt werden UND die Verbindung muss EAP unterstützen. Die Securepoint UTM unterstützt für IKEv2 leider kein EAP (siehe meinen Vorschlag in der Wunschbox: IPSec IKEv2 mit EAP (ähnlich IKEv1 mit XAuth) ). Der Securepoint SSL-VPN-Client unterstützt leider ebenfalls keinen Aufbau einer VPN-Verbindung vor Anmeldung.

Mir fällt momentan keine Möglichkeit ein, wie man deinen Wunsch mit den SP UTM auf heutigem Stand realisieren könnte.

Benutzeravatar
Mario
Securepoint
Beiträge: 653
Registriert: Mi 04.04.2007, 10:47
Wohnort: Bäckerei

Beitrag von Mario »

Alternativ kann man auch den OpenVPN-Client versuchen. Ich bin aber nicht sicher, ob Treiber fuer ARM dort noch Beta sind oder bereits zum Standard-Release gehoeren.
Mit freundlichen Grüßen

Mario Rhein
Support
Tel. 04131/2401-0
Fax 04131/2401-50

Securepoint GmbH
Blecker Landstr. 28
D-21337 Lüneburg
https://www.securepoint.de

Antworten