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 la configuration d'une tête de réseau FlexVPN pour l'accès via l'authentification IKEv2/EAP Secure Client (AnyConnect) avec une base de données d'utilisateurs locaux.
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, ou authentification globale, permet à un serveur FlexVPN 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 FlexVPN ne fonctionne pas en mode Pass-Through EAP.
Toutes les communications EAP avec le client se terminent sur le serveur FlexVPN et la clé de session requise utilisée pour construire la charge utile AUTH est calculée localement par le serveur FlexVPN.
Le serveur FlexVPN 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 et d'environnements d'accès à distance 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 d'identité approprié, et il ne peut pas utiliser 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 d'autres options, consultez le Guide de configuration de la sécurité et du VPN, IOS XE 17.x, Chapitre : Configuration de l'inscription de certificat pour un document PKI.
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. Reportez-vous à la section suivante pour plus d'informations.
Configurez le profil client à l’aide de l’Éditeur de profil AnyConnect, comme illustré dans l’image :
Cliquez sur Add pour créer une entrée pour la passerelle VPN. Veillez à sélectionner IPsec comme protocole principal. Décochez l'option de 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. Cependant, 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, la version 16.9.1 ou ultérieure est requise. Si une version logicielle plus ancienne est utilisée, la fonctionnalité de téléchargement de profil doit être désactivée sur le client. Référez-vous à la section Désactiver la fonctionnalité de téléchargement d'AnyConnect pour plus d'informations.
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 toujours acvpn.xml. Même si un nom de fichier différent est utilisé, le profil envoyé au PC est nommé acvpn.xml. Il est donc recommandé de ne pas modifier le nom dans la configuration du routeur.
É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 : pour la commande aaa authentication eap / anyconnect-eap, assurez-vous que la méthode d'authentification locale est configurée en tant que rsa-sig avant de configurer la méthode d'authentification distante.
É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 au document Next Generation Encryption Support pour vérifier si le matériel de votre routeur prend en charge les algorithmes NGE (par exemple sha-256, aes-gcm, ecdh, ecdsa). Sinon, l'installation de l'association de sécurité IPSec sur le matériel échoue à la dernière étape de l'établissement du tunnel.
É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 (tunnel complet). Vous pouvez configurer un tunnel partagé, 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
Cet exemple montre comment configurer la fonctionnalité de téléchargement de profil FlexVPN AnyConnect :
Remarque : vous n'avez pas besoin de modifier le fichier de stratégie locale sur l'ordinateur client Anyconnect. Une fois la fonction de téléchargement de profil Anyconnect avec IKEv2 configurée, le module de téléchargement VPN fonctionne correctement - le profil XML requis est automatiquement mis à jour sur le périphérique client en cas de mise à jour du profil XML.
Remarque : vous ne devez pas utiliser simultanément le serveur HTTPS et la stratégie SSL. Avant d'activer la stratégie SSL, supprimez la commande ip http secure-server. Si ces deux fonctionnalités sont activées en même temps et que le périphérique reçoit une connexion VPN SSL entrante, le périphérique peut se bloquer.
no ip http secure-server
crypto ssl policy ssl-policy
pki trustpoint IKEv2-TP sign
ip address local 10.0.0.1 port 443
no shutdown
crypto ssl profile ssl_prof
match policy ssl-policy
Cette étape n'est nécessaire que si une version antérieure à 16.9.1 est utilisée. Avant cette version, la capacité de télécharger le profil XML sur le routeur n'était pas disponible. Par défaut, le client sécurisé (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 l'installation du profil XML sur le PC client est obligatoire pour établir le tunnel IKEv2/IPsec avec la passerelle FlexVPN.
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 dans la liste est spécifié dans le champ Display Name dans AnyConnect Profile Editor -> Server List -> Server List Entry.
Le profil XML peut être placé manuellement dans un répertoire, selon le système d'exploitation client :
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 Quit option :
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 |