Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment configurer une tête de réseau Cisco IOS®/ XE pour l'accès via l'authentification AnyConnect IKEv2 / EAP avec la base de données locale des utilisateurs.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
AnyConnect-EAP, également connu sous le nom d'authentification globale, permet à un serveur Flex d'authentifier le client AnyConnect via la méthode propriétaire AnyConnect-EAP de Cisco.
Contrairement aux méthodes EAP (Extensible Authentication Protocol) basées sur la norme, telles que EAP-GTC (Generic Token Card), EAP-MD5 (Message Digest 5), etc., le serveur Flex Server ne fonctionne pas en mode d'intercommunication EAP.
Toutes les communications EAP avec le client se terminent sur le serveur Flex et la clé de session requise utilisée pour construire la charge utile AUTH est calculée localement par le serveur Flex.
Le serveur Flex Server doit s'authentifier auprès du client à l'aide des certificats requis par la RFC IKEv2.
L'authentification des utilisateurs locaux est désormais prise en charge sur le serveur Flex Server et l'authentification à distance est facultative.
Cette solution est idéale pour les déploiements à petite échelle avec moins d'utilisateurs d'accès à distance et dans les environnements sans accès à un serveur AAA (Authentication, Authorization, and Accounting) externe.
Cependant, pour les déploiements à grande échelle et dans les scénarios où les attributs par utilisateur sont souhaités, il est toujours recommandé d'utiliser un serveur AAA externe pour l'authentification et l'autorisation.
L'implémentation AnyConnect-EAP permet l'utilisation de Radius pour l'authentification, l'autorisation et la comptabilité à distance.
Remarque : pour authentifier les utilisateurs par rapport à la base de données locale sur le routeur, EAP doit être utilisé. Cependant, pour utiliser EAP, la méthode d'authentification locale doit être rsa-sig, de sorte que le routeur a besoin d'un certificat approprié installé dessus, et il ne peut pas s'agir d'un certificat auto-signé.
Exemple de configuration qui utilise l'authentification des utilisateurs locaux, l'autorisation des utilisateurs et des groupes distants et la comptabilité à distance.
Étape 1. Activez AAA, configurez les listes d'authentification, d'autorisation et de gestion des comptes et ajoutez un nom d'utilisateur à la base de données locale :
aaa new-model
!
aaa authentication login a-eap-authen-local local
aaa authorization network a-eap-author-grp local
!
username test password cisco123
Étape 2. Configurez un point de confiance destiné à contenir le certificat du routeur. L'importation de fichiers PKCS12 est utilisée dans cet exemple. Pour connaître les autres options, consultez le guide de configuration PKI (Public Key Infrastructure) :
Router(config)# crypto pki import IKEv2-TP pkcs12 bootflash:IKEv2-TP.p12 password cisco123
Étape 3. Définissez un pool local IP pour attribuer des adresses aux clients VPN AnyConnect :
ip local pool ACPOOL 192.168.10.5 192.168.10.10
Étape 4. Créez une stratégie d'autorisation locale IKEv2 :
crypto ikev2 authorization policy ikev2-auth-policy
pool ACPOOL
dns 10.0.1.1
Étape 5 (facultatif). Créez la proposition et la stratégie IKEv2 souhaitées. S'ils ne sont pas configurés, les paramètres Smart par défaut sont utilisés :
crypto ikev2 proposal IKEv2-prop1
encryption aes-cbc-256
integrity sha256
group 14
!
crypto ikev2 policy IKEv2-pol
proposal IKEv2-prop1
Étape 6. Créer un profil AnyConnect
Remarque : le profil AnyConnect doit être fourni à l'ordinateur client. Pour plus d'informations, reportez-vous à la section suivante.
Configurez le profil client à l’aide de l’Éditeur de profil AnyConnect, comme illustré dans l’image :
Cliquez sur Ajouter pour créer une entrée pour la passerelle VPN. Assurez-vous de sélectionner « IPsec » comme « Primary Protocol ». Décochez l'option « Passerelle ASA ».
Enregistrez le profil : File -> Save As. L'équivalent XML du profil :
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>
<AutomaticCertSelection UserControllable="true">false</AutomaticCertSelection>
<ShowPreConnectMessage>false</ShowPreConnectMessage>
<CertificateStore>All</CertificateStore>
<CertificateStoreMac>All</CertificateStoreMac>
<CertificateStoreOverride>false</CertificateStoreOverride>
<ProxySettings>Native</ProxySettings>
<AllowLocalProxyConnections>true</AllowLocalProxyConnections>
<AuthenticationTimeout>12</AuthenticationTimeout>
<AutoConnectOnStart UserControllable="true">false</AutoConnectOnStart>
<MinimizeOnConnect UserControllable="true">true</MinimizeOnConnect>
<LocalLanAccess UserControllable="true">false</LocalLanAccess>
<DisableCaptivePortalDetection UserControllable="true">false</DisableCaptivePortalDetection>
<ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin>
<IPProtocolSupport>IPv4,IPv6</IPProtocolSupport>
<AutoReconnect UserControllable="false">true
<AutoReconnectBehavior UserControllable="false">ReconnectAfterResume</AutoReconnectBehavior>
</AutoReconnect>
<AutoUpdate UserControllable="false">true</AutoUpdate>
<RSASecurIDIntegration UserControllable="false">Automatic</RSASecurIDIntegration>
<WindowsLogonEnforcement>SingleLocalLogon</WindowsLogonEnforcement>
<WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment>
<AutomaticVPNPolicy>false</AutomaticVPNPolicy>
<PPPExclusion UserControllable="false">Disable
<PPPExclusionServerIP UserControllable="false"></PPPExclusionServerIP>
</PPPExclusion>
<EnableScripting UserControllable="false">false</EnableScripting>
<EnableAutomaticServerSelection UserControllable="false">false
<AutoServerSelectionImprovement>20</AutoServerSelectionImprovement>
<AutoServerSelectionSuspendTime>4</AutoServerSelectionSuspendTime>
</EnableAutomaticServerSelection>
<RetainVpnOnLogoff>false
</RetainVpnOnLogoff>
<AllowManualHostInput>true</AllowManualHostInput>
</ClientInitialization>
<ServerList>
<HostEntry>
<HostName>VPN IOS-XE</HostName>
<HostAddress>vpn.example.com</HostAddress>
<PrimaryProtocol>IPsec
<StandardAuthenticationOnly>true
<AuthMethodDuringIKENegotiation>EAP-AnyConnect</AuthMethodDuringIKENegotiation>
</StandardAuthenticationOnly>
</PrimaryProtocol>
</HostEntry>
</ServerList>
</AnyConnectProfile>
Remarque : AnyConnect utilise '*$AnyConnectClient$*' comme identité IKE par défaut de type key-id. Toutefois, cette identité peut être modifiée manuellement dans le profil AnyConnect pour correspondre aux besoins de déploiement.
Remarque : pour télécharger le profil XML sur le routeur, Cisco IOS® XE version 16.9.1 ou ultérieure est requis. Si une version plus ancienne du logiciel Cisco IOS® XE est utilisée, la fonctionnalité de téléchargement de profil doit être désactivée sur le client. Pour plus d'informations, reportez-vous à la section « Désactiver le téléchargeur AnyConnect ».
Téléchargez le profil XML créé dans la mémoire flash du routeur et définissez le profil :
crypto vpn anyconnect profile acvpn bootflash:/acvpn.xml
Remarque : le nom de fichier utilisé pour le profil XML AnyConnect est acvpn.xml.
Étape 7. Créez un profil IKEv2 pour la méthode AnyConnect-EAP d'authentification client.
crypto ikev2 profile AnyConnect-EAP
match identity remote key-id *$AnyConnectClient$*
authentication local rsa-sig
authentication remote anyconnect-eap aggregate
pki trustpoint IKEv2-TP
aaa authentication anyconnect-eap a-eap-authen-local
aaa authorization group anyconnect-eap list a-eap-author-grp ikev2-auth-policy
aaa authorization user anyconnect-eap cached
virtual-template 100
anyconnect profile acvpn
Remarque : la configuration de la méthode d'authentification distante avant la méthode d'authentification locale est acceptée par l'interface de ligne de commande. mais elle n'est pas prise en compte sur les versions qui n'ont pas le correctif pour la demande d'amélioration ID de bogue Cisco CSCvb29701, si la méthode d'authentification distante est eap. Pour ces versions, lorsque la configuration eap est utilisée comme méthode d'authentification distante, assurez-vous que la méthode d'authentification locale est configurée en tant que rsa-sig en premier. Ce problème ne se produit pas avec une autre méthode d'authentification à distance.
Remarque : sur les versions de code affectées par l'ID de bogue Cisco CSCvb24236 , une fois que l'authentification à distance est configurée avant l'authentification locale, la méthode d'authentification à distance ne peut plus être configurée sur ce périphérique. Effectuez une mise à niveau vers une version contenant le correctif pour ce code.
Étape 8. Désactivez la recherche de certificat basée sur HTTP-URL et le serveur HTTP sur le routeur :
no crypto ikev2 http-url cert
no ip http server
no ip http secure-server
Remarque : reportez-vous à ce document pour confirmer si votre matériel de routeur prend en charge les algorithmes de cryptage NGE (l'exemple précédent comporte des algorithmes NGE), sinon, l'installation de l'association de sécurité IPSec sur le matériel échoue à la dernière étape de la négociation.
Étape 9. Définir les algorithmes de chiffrement et de hachage utilisés pour protéger les données
crypto ipsec transform-set TS esp-aes 256 esp-sha256-hmac
mode tunnel
Étape 10. Créer un profil IPSec :
crypto ipsec profile AnyConnect-EAP
set transform-set TS
set ikev2-profile AnyConnect-EAP
Étape 11. Configurez une interface de bouclage avec une adresse IP factice. Les interfaces d'accès virtuel lui empruntent l'adresse IP.
interface loopback100
ip address 10.0.0.1 255.255.255.255
Étape 12. Configurer un modèle virtuel (associer le modèle dans le profil IKEv2)
interface Virtual-Template100 type tunnel
ip unnumbered Loopback100
ip mtu 1400
tunnel mode ipsec ipv4
tunnel protection ipsec profile AnyConnect-EAP
Étape 13 (facultatif). Par défaut, tout le trafic provenant du client est envoyé via le tunnel. Vous pouvez configurer le split tunnel, qui permet uniquement au trafic sélectionné de traverser le tunnel.
ip access-list standard split_tunnel
permit 10.0.0.0 0.255.255.255
!
crypto ikev2 authorization policy ikev2-auth-policy
route set access-list split_tunnel
Étape 14 (facultatif). Si tout le trafic doit passer par le tunnel, configurez NAT afin d'autoriser la connectivité Internet pour les clients distants.
ip access-list extended NAT
permit ip 192.168.10.0 0.0.0.255 any
!
ip nat inside source list NAT interface GigabitEthernet1 overload
!
interface GigabitEthernet1
ip nat outside
!
interface Virtual-Template 100
ip nat inside
Cette étape n'est nécessaire que si la version du logiciel Cisco IOS® XE antérieure à 16.9.1 est utilisée. Avant Cisco IOS® XE 16.9.1, la capacité de télécharger le profil XML vers le routeur n'était pas disponible. Par défaut, le client AnyConnect tente d'effectuer le téléchargement du profil XML après une connexion réussie. Si le profil n'est pas disponible, la connexion échoue. Pour contourner ce problème, il est possible de désactiver la fonctionnalité de téléchargement de profil AnyConnect sur le client lui-même. Pour ce faire, ce fichier peut être modifié :
For Windows:
C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\AnyConnectLocalPolicy.xml
For MAC OS:
/opt/cisco/anyconnect/AnyConnectLocalPolicy.xml
L'option "BypassDownloader" est définie sur "true", par exemple :
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectLocalPolicy xmlns="http://schemas.xmlsoap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap/encoding/ AnyConnectLocalPolicy.xsd" acversion="4.6.03049">
<BypassDownloader>true</BypassDownloader>
<EnableCRLCheck>false</EnableCRLCheck>
<ExcludeFirefoxNSSCertStore>false</ExcludeFirefoxNSSCertStore>
<ExcludeMacNativeCertStore>false</ExcludeMacNativeCertStore>
<ExcludePemFileCertStore>false</ExcludePemFileCertStore>
<ExcludeWinNativeCertStore>false</ExcludeWinNativeCertStore>
<FipsMode>false</FipsMode>
<RestrictPreferenceCaching>false</RestrictPreferenceCaching>
<RestrictTunnelProtocols>false</RestrictTunnelProtocols>
<RestrictWebLaunch>false</RestrictWebLaunch>
<StrictCertificateTrust>false</StrictCertificateTrust>
<UpdatePolicy>
<AllowComplianceModuleUpdatesFromAnyServer>true</AllowComplianceModuleUpdatesFromAnyServer>
<AllowISEProfileUpdatesFromAnyServer>true</AllowISEProfileUpdatesFromAnyServer>
<AllowServiceProfileUpdatesFromAnyServer>true</AllowServiceProfileUpdatesFromAnyServer>
<AllowSoftwareUpdatesFromAnyServer>true</AllowSoftwareUpdatesFromAnyServer>
<AllowVPNProfileUpdatesFromAnyServer>true</AllowVPNProfileUpdatesFromAnyServer></UpdatePolicy>
</AnyConnectLocalPolicy>
Après la modification, le client AnyConnect doit être redémarré.
Avec la nouvelle installation d'AnyConnect (sans ajout de profils XML), l'utilisateur peut entrer manuellement le nom de domaine complet de la passerelle VPN dans la barre d'adresse du client AnyConnect. Il en résulte une connexion SSL à la passerelle. Par défaut, le client AnyConnect ne tente pas d’établir le tunnel VPN avec les protocoles IKEv2/IPsec. C'est la raison pour laquelle le profil XML est installé sur le client et est obligatoire pour établir le tunnel IKEv2/IPsec avec la passerelle VPN Cisco IOS® XE.
Le profil est utilisé lorsqu’il est sélectionné dans la liste déroulante de la barre d’adresses AnyConnect.
Le nom qui apparaît est le même que celui spécifié dans « Nom d'affichage » dans l'éditeur de profil AnyConnect.
Le profil XML peut être placé manuellement dans ce répertoire :
For Windows:
C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile
For MAC OS:
/opt/cisco/anyconnect/profile
Le client AnyConnect doit être redémarré pour que le profil soit visible dans l’interface utilisateur graphique. Il ne suffit pas de fermer la fenêtre AnyConnect. Vous pouvez redémarrer le processus en cliquant avec le bouton droit sur l'icône AnyConnect dans la barre d'état système de Windows et en sélectionnant l'option « Quitter » :
Utilisez cette section pour confirmer que votre configuration fonctionne correctement.
! Check IKEv2 SA parameters
Router# show crypto ikev2 sa detailed
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 192.0.2.1/4500 192.0.2.100/50899 none/none READY
Encr: AES-CBC, keysize: 256, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: RSA, Auth verify: AnyConnect-EAP
Life/Active Time: 86400/758 sec
CE id: 1004, Session-id: 4
Status Description: Negotiation done
Local spi: 413112E83D493428 Remote spi: 696FA78292A21EA5
Local id: 192.0.2.1
Remote id: *$AnyConnectClient$*
Remote EAP id: test <------ username
Local req msg id: 0 Remote req msg id: 31
Local next msg id: 0 Remote next msg id: 31
Local req queued: 0 Remote req queued: 31
Local window: 5 Remote window: 1
DPD configured for 0 seconds, retry 0
Fragmentation not configured.
Dynamic Route Update: disabled
Extended Authentication not configured.
NAT-T is detected outside
Cisco Trust Security SGT is disabled
Assigned host addr: 192.168.10.8. <---- Assigned IP
Initiator of SA : No
! Check the crypto session information
Router# show crypto session detail
Crypto session current status
Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, T - cTCP encapsulation
X - IKE Extended Authentication, F - IKE Fragmentation
R - IKE Auto Reconnect, U - IKE Dynamic Route Update
S - SIP VPN
Interface: Virtual-Access1. <----- Virtual interface associated with the client
Profile: AnyConnect-EAP
Uptime: 00:14:54
Session status: UP-ACTIVE
Peer: 192.0.2.100 port 50899 fvrf: (none) ivrf: (none). <----- Public IP of the remote client
Phase1_id: *$AnyConnectClient$*
Desc: (none)
Session ID: 8
IKEv2 SA: local 192.0.2.1/4500 remote 192.0.2.100/50899 Active
Capabilities:N connid:1 lifetime:23:45:06
IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 host 192.168.10.8
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 89 drop 0 life (KB/Sec) 4607990/2705. <------ Packets received from the client
Outbound: #pkts enc'ed 2 drop 0 life (KB/Sec) 4607999/2705. <------ Packets sent to the client
! Check the actual configuration applied for the Virtual-Acces interface associated with client
Router# show derived-config interface virtual-access 1.
Building configuration...
Derived configuration : 258 bytes
!
interface Virtual-Access1
ip unnumbered Loopback100
ip mtu 1400
ip nat inside
tunnel source 192.0.2.1
tunnel mode ipsec ipv4
tunnel destination 192.0.2.100
tunnel protection ipsec profile AnyConnect-EAP
no tunnel protection ipsec initiate
end
Cette section fournit des informations que vous pouvez utiliser pour dépanner votre configuration.
debug crypto ikev2
debug crypto ikev2 packet
debug crypto ikev2 error
debug aaa authorization
debug aaa authentication
Révision | Date de publication | Commentaires |
---|---|---|
2.0 |
24-Apr-2023 |
Recertification |
1.0 |
08-Jul-2016 |
Première publication |