Inleiding
In dit document worden de configuratie stappen beschreven om FlexVPN met een ingebouwde client in Windows 10/11 in te stellen.
Voorwaarden
Vereisten
Cisco raadt u aan deze onderwerpen te kennen:
- Windows-ingebouwde VPN-client
- Cisco IOS® XE FlexVPN-configuratie
- Basisconfiguratie van OpenSSL
Gebruikte componenten
De configuratiehandleiding is gebaseerd op deze hardware- en softwareversies:
- Windows 10 en Windows 11
- Cisco IOS XE 16.12.4
- OpenSSL-certificeringsinstantie (CA) v1.1.0g
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Configureren
CA-vereisten
CA moet u toestaan om het vereiste uitgebreide sleutelgebruik (EKU) in het certificaat in te sluiten. Bijvoorbeeld op de IKEv2 server. Server Auth EKU
vereist is terwijl het clientcertificaat vereist is Client Auth EKU
. Lokale implementaties kunnen gebruik maken van:
- Cisco IOS CA-server - Zelfondertekende certificaten kunnen niet worden gebruikt vanwege Cisco bug-id CSCuc82575.
- OpenSSL CA-server -
openssl.cnf
moet de ExtendedKeyUsage = serverAuth, clientAuth, dit bestand bevindt zich normaal in het pad /etc/ssl/
.
- Microsoft CA-server - In het algemeen is dit de voorkeursoptie omdat deze kan worden geconfigureerd om het certificaat exact zoals gewenst te ondertekenen.
Netwerkdiagram
Topologielab
Configuraties
Een CA configureren
Router als CA
Als u een Cisco IOS CA-server gebruikt, zorg er dan voor dat u de meest recente Cisco IOS-softwarerelease gebruikt, die de EKU toewijst.
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
OpenSSL CA is gebaseerd op het bestand openssl.cnf. Het 'configuratiebestand' voor de OpenSSL-server moet het volgende hebben:
keyUsage = nonRepudiation, digitalSignature, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
Configureer de router IOS XE/IOS
Importeer het pkcs12-certificaat als OpenSSL
Het certificaat moet de EKU-velden ingesteld hebben op 'Serververificatie' voor Cisco IOS en 'Clientverificatie' voor de client. Meestal wordt dezelfde CA gebruikt om zowel de client- als de servercertificaten te ondertekenen. In dit geval zijn zowel 'Serververificatie' als 'Clientverificatie' te zien op respectievelijk het servercertificaat en het clientcertificaat, wat aanvaardbaar is.
Als de CA de certificaten in de Public Key Cryptography Standards (PKCS) #12 formaat op de IKEv2 server uitgeeft aan de clients en de server, en als de certificaatherroepingslijst (CRL) niet bereikbaar of beschikbaar is, moet deze worden geconfigureerd:
crypto pki trustpoint FlexRootCA
revocation-check none
Voer deze opdracht in om het PKCS#12-certificaat te importeren:
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.
U kunt de pkcs12 ook converteren naar base64 in OpenSSL en het certificaat importeren in de terminal:
openssl base64 -in ikev2.p12 -out ikev2.pem
cat ikev2.pem —> de base64-uitvoer kopiëren
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
Certificaat aanvragen met de router als CA-server
Als een Cisco IOS CA-server automatisch certificaten toekent, moet de IKEv2-server worden geconfigureerd met de CA-server-URL om een certificaat te ontvangen zoals in dit voorbeeld:
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
Wanneer het trustpoint wordt geconfigureerd, moet u:
- Verifieer CA met deze opdracht:
crypto pki authenticate FlexRootCA
- Schrijf de IKEv2-server in met de CA met deze opdracht:
crypto pki enroll FlexRootCA
FlexVPN IKEv2 met certificaatverificatie configureren
Dit is een voorbeeld van een IKEv2-configuratie:
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
Het IP-nummer van de virtuele sjabloon moet alles zijn, behalve het lokale adres dat voor de IPsec-verbinding wordt gebruikt. (Als u een hardwareclient gebruikt, zou u het routing-informatie uitwisselen via het IKEv2-configuratieknooppunt en een recursief routing-probleem maken op de hardwareclient).
Opmerking: IOS XE versie 17.06.01a Cisco bug ID CSCwa76260 en Cisco bug-id CSC80474 interfereren met de juiste functionaliteit van de ingebouwde Windows-client omdat deze groep2 als standaard-DH-groep gebruikt. Met een upgrade naar een vaste release, wordt u op de hoogte gesteld van de toekomstige verwijdering van afgeschreven algoritmen, maar ze kunnen nog steeds werken. Aanvullende informatie:
De ingebouwde client voor IKEv2 Windows configureren
Windows 10 ingebouwde client
1. Navigeer naar Settings > Network & Internet > VPN
en klik of selecteer Add a VPN Connection
zoals aangegeven op de afbeelding:
Windows VPN-instellingen
2. Configureer de VPN-provider als Windows (ingebouwd), de verbindingsnaam, de servernaam of het adres, het VPN-type en het type inloginformatie (verificatie) en klik vervolgens op Save
zoals in de afbeelding.
Windows VPN-instellingen toevoegen
3. Klik op adapteropties wijzigen en klik met de rechtermuisknop of selecteer de adapter die wordt genoemd FlexVPN-IOS
. Naar navigeren Properties > Security
en selecteer Use machine certificates
zoals aangegeven op de afbeelding:
Windows-adapteropties
Het FlexVPN-IOS-profiel is nu gereed om verbonden te worden nadat u een certificaat hebt geïmporteerd in het machinecertificaatarchief.
Ingebouwde Windows 11-client
1. Navigeer naar Settings > Network & internet > VPN
en klik of selecteer Add VPN:
Windows 11 VPN-instellingen
2. Configureer de VPN-provider als Windows (ingebouwd), de verbindingsnaam, de servernaam of het adres, het VPN-type en het type inloginformatie (verificatie) en sla vervolgens op:
Windows 11 VPN-verbindingsinstellingen
3. Klik op Network & Internet
klik of selecteer vervolgens Geavanceerde netwerkinstellingen More network adapter options
zoals aangegeven op de afbeelding:
Windows 11-pad naar adapteropties
Klik met de rechtermuisknop of selecteer de adapter die FlexVPN-IOS wordt genoemd en navigeer naar eigenschappen, navigeer naar Security
en selecteer Machinecertificaten gebruiken:
Adapteropties voor Windows 11
Het FlexVPN-IOS-profiel is nu gereed om verbonden te worden nadat u een certificaat hebt geïmporteerd in het machinecertificaatarchief.
Een clientcertificaat verkrijgen
Het certificaat van de klant vereist deze factoren:
- Het clientcertificaat heeft een EKU van 'Clientverificatie'. Bovendien, de CA geeft een PKCS#12 certificaat: client PKCS12 certificaat moet gaan naar de lokale machine Personal Certificate Store
Installatie van Windows PKCS12-certificaten
1. Open het pfx- of p12-certificaat:
Klik of selecteer de lokale machine voor winkellocatie:
Certificaat importeren wizard stap 1
2. Specificeer het pad van de p12 of pfx zoals in de afbeelding.
Certificaat importeren wizard stap 2
3. Typ het wachtwoord voor de persoonlijke sleutel zoals in de afbeelding:
Certificaat importeren wizard stap 3
Opmerking: markeer de toets als exporteerbaar is optioneel.
4. Klik of selecteer Place all certificates in
de persoonlijke winkel:
Certificaat importeren wizard stap 4
De pkcs12 bevat gewoonlijk de volledige keten, CA en tussenliggende certificaten. Als dat het geval is, moet u ervoor zorgen dat de CA is geïnstalleerd in de Trusted Root Certificate Authorities Store.
Installatie van Windows CA-certificaten
Als de CA niet in de Trusted Root Certificate Authorities Store staat, gebruikt u deze stappen om deze te installeren:
1. Open het CA-pem- of -crt-bestand en klik of selecteer Certificaat installeren zoals in de afbeelding.
CA-certificaat
Als de CA niet op het Trusted Root Certificate Authorities Store staat, ziet u dit bericht: "Dit CA Root certificaat is niet vertrouwd...."
2. Klik of selecteer de lokale machine voor opslaglocatie:
CA-wizard Certificaat importeren stap 1
3. Klik of selecteer Place all certificates in the following store
en Trusted Root Certification Authorities
opslaan:
CA-wizard Certificaat importeren stap 2
4. Voltooi de wizard Certificaat importeren:
CA-wizard Certificaat importeren stap 3
De certificaatinstallatie kan altijd worden bevestigd met Windows Key+R
en open mmc.exe
of certlm.msc
.
Belangrijke details
- 'IPSec IKE-intermediair' (OID = 1.3.6.1.5.5.8.2.2) moet als EKU worden gebruikt indien beide verklaringen van toepassing zijn:
- De IKEv2 server is een Windows 2008 server.
- Er is meer dan één Serververificatiecertificaat in gebruik voor IKEv2-verbindingen. Als dit waar is, moet u ofwel de EKU van de 'Serververificatie' en de EKU van de 'IPSec IKE Intermediate' op één certificaat plaatsen, ofwel deze EKU's onder de certificaten verdelen. Zorg ervoor dat ten minste één certificaat 'IPSec IKE Intermediate' EKU bevat.
Raadpleeg Problemen oplossen en IKEv2 VPN-verbindingen voor meer informatie.
- Gebruik in een FlexVPN-implementatie geen 'IPSec IKE Intermediate' in EKU. Als u dit wel doet, neemt de IKEv2-client het IKEv2-servercertificaat niet op. Hierdoor kunnen ze niet reageren op CERTREQ van IOS in het IKE_SA_INIT antwoordbericht en kunnen ze dus geen verbinding maken met een 13806 Error ID.
- Hoewel de alternatieve naam van het onderwerp (SAN) niet vereist is, is het aanvaardbaar als de certificaten één hebben.
- Zorg er in de Windows 10/11 Client Certificate Store voor dat de Machine Trusted Root Certificate Authorities Store het minste aantal certificaten bevat dat mogelijk is. Als dit aantal groter is dan 50, kan Cisco IOS de gehele Cert_Req payload niet lezen, die de certificaatnaam (DN) bevat van alle bekende CA's in het vak Windows 10/11. Dientengevolge, de onderhandeling ontbreekt en u ziet de verbindingstijd op de cliënt.
Verifiëren
Gebruik deze sectie om te controleren of uw configuratie goed werkt.
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:
Problemen oplossen
U kunt de FlexVPN-verbinding en certificaatonderhandeling met deze debugs oplossen:
debug crypto condition peer <remove client public ip>
debug crypto ikev2
debug cry pki messages
debug cry pki transactions
In de Windows-client kunt u de Event Viewer onder de Windows-logbestanden controleren en de toepassing controleren, de VPN-verbindingsgebeurtenissen gebruiken de bron RasClient. Voorbeeld;
Windows EventViewer-logbestanden voor RasClient