Einleitung
In diesem Dokument werden die Konfigurationsschritte zum Einrichten von FlexVPN mit einem integrierten Client unter Windows 10/11 beschrieben.
Voraussetzungen
Anforderungen
Cisco empfiehlt Ihnen, sich mit folgenden Themen vertraut zu machen:
- Windows-integrierter VPN-Client
- Cisco IOS® XE FlexVPN-Konfiguration
- OpenSSL-Basiskonfiguration
Verwendete Komponenten
Der Konfigurationsleitfaden basiert auf den folgenden Hardware- und Softwareversionen:
- Windows 10 und Windows 11
- Cisco IOS XE 16, 12, 4
- OpenSSL Certificate Authority (CA) v1.1.0g
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Konfigurieren
CA-Anforderungen
Die Zertifizierungsstelle muss es Ihnen ermöglichen, die erforderliche Extended Key Usage (EKU) in das Zertifikat einzubetten. Auf dem IKEv2-Server Server Auth EKU ist erforderlich, während das Clientzertifikat Client Auth EKU . Lokale Bereitstellungen können Folgendes nutzen:
- Cisco IOS CA-Server - Selbstsignierte Zertifikate können aufgrund der Cisco Bug-ID CSCuc82575 nicht verwendet werden.
- OpenSSL CA-Server -
openssl.cnf muss den Befehl extendedKeyUsage = serverAuth, clientAuth haben. Diese Datei befindet sich normalerweise im Pfad /etc/ssl/ .
- Microsoft-Zertifizierungsstellenserver - Im Allgemeinen ist dies die bevorzugte Option, da sie so konfiguriert werden kann, dass das Zertifikat genau wie gewünscht signiert wird.
Netzwerkdiagramm
Topologielabor
Konfigurationen
Konfigurieren einer Zertifizierungsstelle
Router als CA
Wenn Sie einen Cisco IOS CA-Server verwenden, stellen Sie sicher, dass Sie die neueste Cisco IOS Software-Version verwenden, die die EKU zuweist.
IOS-CA# show run | section crypto pki
crypto pki server IOS-CA
issuer-name cn=IOS-CA.cisco.com,ou=TAC,o=cisco
grant auto
eku server-auth client-auth
OpenSSL als CA
Die OpenSSL-CA basiert auf der Datei openssl.cnf. Die 'config'-Datei für den OpenSSL-Server muss Folgendes aufweisen:
keyUsage = nonRepudiation, digitalSignature, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
Konfigurieren des Routers IOS XE/IOS
pkcs12-Zertifikat bei OpenSSL importieren
Für das Zertifikat müssen die EKU-Felder auf "Server Authentication" für Cisco IOS und "Client Authentication" für den Client eingestellt sein. Normalerweise wird die gleiche Zertifizierungsstelle verwendet, um sowohl das Client- als auch das Serverzertifikat zu signieren. In diesem Fall werden sowohl 'Server Authentication' als auch 'Client Authentication' auf dem Serverzertifikat bzw. dem Clientzertifikat angezeigt, was akzeptabel ist.
Wenn die Zertifizierungsstelle die Zertifikate im Public-Key Cryptography Standards (PKCS) #12-Format auf dem IKEv2-Server an die Clients und den Server ausgibt und die Zertifikatsperrliste (Certificate Revocation List, CRL) nicht erreichbar oder verfügbar ist, muss sie konfiguriert werden:
crypto pki trustpoint FlexRootCA
revocation-check none
Geben Sie den folgenden Befehl ein, um das PKCS#12-Zertifikat zu importieren:
copy ftp://user:***@OpenSSLServer/p12/FlexRootCA.p12* flash:/
crypto pki import FlexRootCA pkcs12 flash:/FlexRootCA.p12 password
!! Note: FlexRootCA.p12 is a pkcs12 format certificate that has CA Certificate bundled in it.
Sie können pkcs12 auch in OpenSSL in base64 konvertieren und das Zertifikat in das Terminal importieren:
openssl base64 -in ikev2.p12 -out ikev2.pem
cat ikev2.pem —> die base64-Ausgabe kopieren
crypto pki trustpoint FlexRootCA
enrollment terminal
revocation-check none
crypto pki import FlexRootCA pkcs12 terminal password
***paste the base64 output from the cat ikev2.pem here***
quit --> when the paste ends you need to type quit to finish
Anfordern des Zertifikats beim Router als CA-Server
Wenn ein Cisco IOS-CA-Server automatisch Zertifikate gewährt, muss der IKEv2-Server mit der URL des CA-Servers konfiguriert werden, damit er ein Zertifikat wie in diesem Beispiel gezeigt erhält:
crypto pki trustpoint FlexRootCA
enrollment url http://
:80
subject-name cn=ikev2.cisco.com,ou=TAC,o=cisco
revocation-check none
eku server-auth client-auth
Wenn der Vertrauenspunkt konfiguriert ist, müssen Sie:
- Authentifizierung der CA mit folgendem Befehl:
crypto pki authenticate FlexRootCA
- Registrieren Sie den IKEv2-Server mit der Zertifizierungsstelle mit dem folgenden Befehl:
crypto pki enroll FlexRootCA
Konfigurieren von FlexVPN IKEv2 mit Zertifikatsauthentifizierung
Dies ist ein Beispiel für eine IKEv2-Konfiguration:
aaa authorization network winclient local
ip local pool mypool 172.16.0.101 172.16.0.250
!! Certificate MAP to match Remote Certificates, in our case the Windows Clients
crypto pki certificate map winclient_map 10
subject-name co ou = tac
!! One of the proposals that Windows 10/11 Built-In Client Likes
crypto ikev2 proposal winclient
encryption aes-cbc-256
integrity sha1
group 2
crypto ikev2 policy winclient
proposal winclient
!! IKEv2 Local Authorization Policy. Split-Tunneling does not work, as was
!! the case in good old l2tp over IPSec.
crypto ikev2 authorization policy winclient_author
pool mypool
crypto ikev2 profile winclient-rsa
match certificate winclient_map
identity local fqdn ikev2.cisco.com
authentication local rsa-sig
authentication remote rsa-sig
pki trustpoint FlexRootCA
aaa authorization group cert list winclient winclient_author
virtual-template 1
crypto ipsec transform-set aes256-sha1 esp-aes 256 esp-sha-hmac
crypto ipsec profile winclient_ikev2
set transform-set aes256-sha1
set ikev2-profile winclient-rsa
interface Virtual-Template1 type tunnel
ip unnumbered Loopback0
tunnel mode ipsec ipv4
tunnel protection ipsec profile winclient_ikev2
Bei der nicht nummerierten IP-Adresse der virtuellen Vorlage muss es sich um eine beliebige Adresse handeln, mit Ausnahme der lokalen Adresse, die für die IPsec-Verbindung verwendet wird. (Wenn Sie einen Hardware-Client verwenden, tauschen Sie Routing-Informationen über den IKEv2-Konfigurationsknoten aus und verursachen auf dem Hardware-Client ein rekursives Routing-Problem.)
Hinweis: IOS XE Version 17.06.01a Cisco Bug-ID CSCwa76260
und die Cisco Bug-ID CSCwa80474 stören die ordnungsgemäße Funktion des integrierten Windows-Clients, da group2 als Standard-dh-Gruppe verwendet wird. Bei einem Upgrade auf eine feste Version werden Sie über das zukünftige Entfernen veralteter Chiffren informiert, diese können jedoch weiterhin funktionieren. Zusätzliche Informationen:
Konfigurieren des integrierten IKEv2-Windows-Clients
Windows 10 - integrierter Client
1. Navigieren Sie zu Settings > Network & Internet > VPN und klicke auf oder wähle Add a VPN Connectionwie in der Abbildung dargestellt:
Windows VPN-Einstellungen
2. Konfigurieren Sie den VPN-Anbieter als Windows (integriert), den Verbindungsnamen, den Servernamen oder die Adresse, den VPN-Typ und den Typ der Anmeldeinformationen (Authentifizierung), und klicken Sie dann auf Savewie im Bild dargestellt.
Windows - VPN-Einstellungen hinzufügen
3. Klicken Sie auf Adapteroptionen ändern, und klicken Sie mit der rechten Maustaste, oder wählen Sie den Adapter aus, der angerufen wurde FlexVPN-IOS . Navigieren Sie zu Properties > Security und wählen Use machine certificateswie in der Abbildung dargestellt:
Windows-Adapteroptionen
Das FlexVPN-IOS-Profil kann jetzt verbunden werden, nachdem Sie ein Zertifikat in den Zertifikatspeicher des Computers importiert haben.
Windows 11 - integrierter Client
1. Navigieren Sie zu Settings > Network & internet > VPN und klicke oder wähle "VPN hinzufügen" aus:
Windows 11 - VPN-Einstellungen
2. Konfigurieren Sie den VPN-Anbieter als Windows (integriert), den Verbindungsnamen, den Servernamen oder die Serveradresse, den VPN-Typ und den Typ der Anmeldeinformationen (Authentifizierung). Anschließend wählen Sie Speichern:
Windows 11 - VPN-Verbindungseinstellungen
3. Klicken Sie Network & Internet und klicken Sie auf Erweiterte Netzwerkeinstellungen, und wählen Sie More network adapter options wie in der Abbildung dargestellt:
Windows 11 - Pfad zu Adapteroptionen
Klicken Sie mit der rechten Maustaste auf den Adapter FlexVPN-IOS, oder wählen Sie ihn aus, und navigieren Sie zu den Eigenschaften. Security und wählen Computerzertifikate verwenden:
Windows 11-Adapteroptionen
Das FlexVPN-IOS-Profil kann jetzt verbunden werden, nachdem Sie ein Zertifikat in den Zertifikatsspeicher des Computers importiert haben.
Holen Sie sich ein Client-Zertifikat
Das Client-Zertifikat erfordert folgende Faktoren:
- Das Clientzertifikat weist die EKU "Client Authentication" auf. Außerdem stellt die Zertifizierungsstelle ein PKCS#12-Zertifikat bereit: Das Client PKCS12-Zertifikat muss in den persönlichen Zertifikatspeicher des lokalen Computers übertragen werden.
Installation des Windows PKCS12-Zertifikats
1. Öffnen Sie das PFX- oder p12-Zertifikat:
Klicken Sie auf oder wählen Sie Speicherort Lokaler Computer:
Assistent für den Zertifikatimport, Schritt 1
2. Geben Sie den Pfad des p12 oder pfx an, wie im Bild dargestellt.
Zertifikatimport-Assistent, Schritt 2
3. Geben Sie das Kennwort für den privaten Schlüssel wie im Bild gezeigt ein:
Zertifikatimport-Assistent, Schritt 3
Hinweis: Markieren Sie den Schlüssel als exportierbar und optional.
4. Klicken oder wählen Place all certificates in im persönlichen Geschäft:
Zertifikatimport-Assistent, Schritt 4
pkcs12 enthält normalerweise das vollständige Kette-, CA- und Zwischenzertifikat. In diesem Fall müssen Sie sicherstellen, dass die Zertifizierungsstelle im Speicher vertrauenswürdiger Stammzertifizierungsstellen installiert ist.
Installation von Windows CA-Zertifikaten
Falls sich die Zertifizierungsstelle nicht im Speicher vertrauenswürdiger Stammzertifizierungsstellen befindet, gehen Sie folgendermaßen vor, um die Zertifizierungsstelle zu installieren:
1. Öffnen Sie die CA-PEM- oder CRT-Datei, und klicken Sie auf Install Certificate (Zertifikat installieren), wie im Abbild dargestellt.
CA-Zertifikat
Wenn sich die Zertifizierungsstelle nicht im Speicher der vertrauenswürdigen Stammzertifizierungsstellen befindet, wird folgende Meldung angezeigt: "Dieses Stammzertifikat der Zertifizierungsstelle ist nicht vertrauenswürdig...."
2. Klicken Sie auf oder wählen Sie den lokalen Computer für den Speicherort aus:
Schritt 1 des Zertifizierungsstellen-Zertifikatimport-Assistenten
3. Klicken oder wählen Place all certificates in the following store und Trusted Root Certification Authorities Geschäft:
Assistent für den Import von Zertifizierungsstellenzertifikaten Schritt 2
4. Schließen Sie den Zertifikatimport-Assistenten ab:
Schritt 3 des CA Certificate Import-Assistenten
Die Zertifikatinstallation kann jederzeit mit Windows Key+R und öffnen mmc.exe Oder certlm.msc .
Wichtige Informationen
- 'IPSec IKE Intermediate' (OID = 1.3.6.1.5.5.8.2.2) muss als EKU verwendet werden, wenn beide Anweisungen zutreffen:
- Der IKEv2-Server ist ein Windows 2008-Server.
- Für IKEv2-Verbindungen wird mehr als ein Serverauthentifizierungszertifikat verwendet. Wenn dies der Fall ist, können Sie entweder die EKU 'Server Authentication' und die EKU 'IPSec IKE Intermediate' in einem Zertifikat platzieren oder diese EKUs unter den Zertifikaten verteilen. Stellen Sie sicher, dass mindestens ein Zertifikat die EKU 'IPSec IKE Intermediate' enthält.
Weitere Informationen finden Sie unter Troubleshooting IKEv2 VPN Connections (Fehlerbehebung bei IKEv2-VPN-Verbindungen).
- Verwenden Sie in einer FlexVPN-Bereitstellung in EKU nicht "IPSec IKE Intermediate". In diesem Fall übernimmt der IKEv2-Client das IKEv2-Serverzertifikat nicht. Daher können sie nicht auf CERTREQ von IOS in der IKE_SA_INIT-Antwortnachricht antworten und stellen daher keine Verbindung mit einer 13806-Fehler-ID her.
- Der alternative Subjektname (SAN) ist nicht erforderlich, es ist jedoch akzeptabel, wenn die Zertifikate einen besitzen.
- Stellen Sie im Windows 10/11-Clientzertifikatsspeicher sicher, dass der maschinenvertrauenswürdige Stammzertifikatsspeicher über die geringstmögliche Anzahl von Zertifikaten verfügt. Wenn mehr als 50 CAs vorhanden sind, kann Cisco IOS möglicherweise nicht die gesamte Payload "Cert_Req" lesen, die den DN (Certificate Distinguished Name) aller bekannten CAs aus dem Windows 10/11-Feld enthält. Daher schlägt die Aushandlung fehl, und Sie sehen auf dem Client ein Timeout für die Verbindung.
Überprüfung
Verwenden Sie diesen Abschnitt, um zu überprüfen, ob Ihre Konfiguration ordnungsgemäß funktioniert.
CSR1Kv# show crypto ikev2 session detail
IPv4 Crypto IKEv2 Session
Session-id:6, Status:UP-ACTIVE, IKE count:1, CHILD count:1
Tunnel-id Local Remote fvrf/ivrf Status
1 10.0.3.1/4500 192.168.56.1/4500 none/none READY
Encr: AES-CBC, keysize: 256, Hash: SHA96, DH Grp:2, Auth sign: RSA, Auth verify: RSA
Life/Active Time: 86400/5s 7 sec
CE id: 1007, Session-id: 6
Status Description: Negotiation done
Local spi: 3A330D1951062E50 Remote spi: 222ED6C38002E26D
Local id: ikev2.cisco.com
Remote id: ou=TAC,o=Cisco,c=BE,cn=Winclient
Local req msg id: 0 Remote req msg id: 2
Local next msg id: 0 Remote next msg id: 2
Local req queued: 0 Remote req queued: 2
Local window: 5 Remote window: 1
DPD configured for 0 seconds, retry 0
NAT-T is not detected
Cisco Trust Security SGT is disabled
Assigned host addr: 172.16.0.105
Initiator of SA : No
Child sa: local selector 0.0.0.0/0 - 255.255.255.255/65535
remote selector 172.16.0.105/0 - 172.16.0.105/65535
ESP spi in/out: 0xB01348F5/0x142CEC36
AH spi in/out: 0x0/0x0
CPI in/out: 0x0/0x0
Encr: AES-CBC, keysize: 128, esp_hmac: SHA96
ah_hmac: None, comp: IPCOMP_NONE, mode tunnel
CSR1Kv#show crypto ipsec sa peer 192.168.56.1
interface: Virtual-Access1
Crypto map tag: Virtual-Access1-head-0, local addr 10.0.3.1
protected vrf: (none)
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (172.16.0.105/255.255.255.255/0/0)
current_peer 192.168.56.1 port 4500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 223, #pkts encrypt: 223, #pkts digest: 223
#pkts decaps: 315, #pkts decrypt: 315, #pkts verify: 315
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 10.0.3.1, remote crypto endpt.: 192.168.56.1
plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet1
current outbound spi: 0x142CEC36(338488374)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xB01348F5(2954053877)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2017, flow_id: CSR:17, sibling_flags FFFFFFFF80000048, crypto map: Virtual-Access1-head-0
sa timing: remaining key lifetime (k/sec): (4607961/2461)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x142CEC36(338488374)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2018, flow_id: CSR:18, sibling_flags FFFFFFFF80000048, crypto map: Virtual-Access1-head-0
sa timing: remaining key lifetime (k/sec): (4607987/2461)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
Fehlerbehebung
Sie können die FlexVPN-Verbindung und die Zertifikataushandlung mithilfe der folgenden Fehlerbehebungsmaßnahmen beheben:
debug crypto condition peer <remove client public ip>
debug crypto ikev2
debug cry pki messages
debug cry pki transactions
Im Windows-Client können Sie die Ereignisanzeige unter den Windows-Protokollen überprüfen und die Anwendung überprüfen. Die VPN-Verbindungsereignisse verwenden den RasClient-Quellcode. Beispiele;
Windows EventViewer-Protokolle für RasClient