Introduction
Ce document décrit comment connecter un PC à un dispositif de sécurité adaptatif Cisco (ASA) à l'aide d'AnyConnect IPsec (IKEv2) ainsi que de l'authentification par certificat et authentification, autorisation et comptabilité (AAA).
Remarque : l'exemple fourni dans ce document décrit uniquement les parties pertinentes utilisées pour obtenir une connexion IKEv2 entre l'ASA et AnyConnect. Aucun exemple de configuration complète n'est fourni. La traduction d'adresses de réseau (NAT) ou la configuration de la liste d'accès ne sont pas décrites ou requises dans ce document.
Préparation de la connexion
Cette section décrit les préparatifs requis avant de pouvoir connecter votre PC à l'ASA.
Certificats avec EKU approprié
Il est important de noter que même si cela n'est pas nécessaire pour la combinaison ASA et AnyConnect, RFC exige que les certificats aient une utilisation de clé étendue (EKU) :
- Le certificat pour l'ASA doit contenir l'EKU server-auth.
- Le certificat du PC doit contenir l'EKU client-auth.
Remarque : un routeur IOS avec la révision logicielle récente peut placer des unités EKU sur des certificats.
Configuration sur l'ASA
Cette section décrit les configurations ASA requises avant la connexion.
Remarque : Cisco Adaptive Security Device Manager (ASDM) vous permet de créer la configuration de base en quelques clics seulement. Cisco vous recommande de l'utiliser afin d'éviter les erreurs.
Configuration de la carte de chiffrement
Voici un exemple de configuration de crypto-carte :
crypto dynamic-map DYN 1 set pfs group1
crypto dynamic-map DYN 1 set ikev2 ipsec-proposal secure
crypto dynamic-map DYN 1 set reverse-route
crypto map STATIC 65535 ipsec-isakmp dynamic DYN
crypto map STATIC interface outside
Propositions IPsec
Voici un exemple de configuration de proposition IPsec :
crypto ipsec ikev2 ipsec-proposal secure
protocol esp encryption aes 3des
protocol esp integrity sha-1
crypto ipsec ikev2 ipsec-proposal AES256-SHA
protocol esp encryption aes-256
protocol esp integrity sha-1
Stratégies IKEv2
Voici un exemple de configuration de stratégie IKEv2 :
crypto ikev2 policy 1
encryption aes-256
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 10
encryption aes-192
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 20
encryption aes
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 30
encryption 3des
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 40
encryption des
integrity sha
group 5 2
prf sha
lifetime seconds 86400
Services client et certificat
Vous devez activer les services clients et les certificats sur l'interface correcte, qui est l'interface externe dans ce cas. Voici un exemple de configuration :
crypto ikev2 enable outside client-services port 443
crypto ikev2 remote-access trustpoint OUTSIDE
ssl trust-point OUTSIDE outside
Remarque : le même point de confiance est également attribué pour le protocole SSL (Secure Sockets Layer), qui est prévu et requis.
Activer le profil AnyConnect
Vous devez activer le profil AnyConnect sur l'ASA. Voici un exemple de configuration :
webvpn
enable outside
anyconnect image disk0:/anyconnect-win-3.0.5080-k9.pkg 1 regex "Windows NT"
anyconnect profiles Anyconnect disk0:/anyconnect.xml
anyconnect enable
tunnel-group-list enable
Nom d'utilisateur, Stratégie de groupe et Groupe de tunnels
Voici un exemple de configuration pour un nom d'utilisateur de base, une politique de groupe et un groupe de tunnels sur l'ASA :
group-policy GroupPolicy_AC internal
group-policy GroupPolicy_AC attributes
dns-server value 4.2.2.2
vpn-tunnel-protocol ikev1 ikev2 l2tp-ipsec ssl-client ssl-clientless
default-domain value cisco.com
webvpn
anyconnect profiles value Anyconnect type user
username cisco password 3USUcOPFUiMCO4Jk encrypted privilege 15
tunnel-group AC type remote-access
tunnel-group AC general-attributes
address-pool VPN-POOL
default-group-policy GroupPolicy_AC
tunnel-group AC webvpn-attributes
authentication aaa certificate
group-alias AC enable
group-url https://bsns-asa5520-1.cisco.com/AC enable
without-csd
Profil AnyConnect
Voici un exemple de profil avec les articles pertinents affichés en gras :
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
"http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>
<AutomaticCertSelection UserControllable="true">false
</AutomaticCertSelection>
<ShowPreConnectMessage>false</ShowPreConnectMessage>
<CertificateStore>All</CertificateStore>
<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>
<ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin>
<AutoReconnect UserControllable="false">true
<AutoReconnectBehavior UserControllable="false">DisconnectOnSuspend
</AutoReconnectBehavior>
</AutoReconnect>
<AutoUpdate UserControllable="false">true</AutoUpdate>
<RSASecurIDIntegration UserControllable="true">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>
</ClientInitialization>
<ServerList>
<HostEntry>
bsns-asa5520-1
<HostAddress>bsns-asa5520-1.cisco.com</HostAddress>
<UserGroup>AC</UserGroup>
<PrimaryProtocol>IPsec</PrimaryProtocol>
</HostEntry>
</ServerList>
</AnyConnectProfile>
Voici quelques remarques importantes sur cet exemple de configuration :
- Lorsque vous créez le profil, l'adresse hôte doit correspondre au nom du certificat (CN) sur le certificat utilisé pour IKEv2. Entrez la commande crypto ikev2 remote-access trustpoint afin de définir ceci.
- Le UserGroup doit correspondre au nom du groupe de tunnels auquel la connexion IKEv2 appartient. S'ils ne correspondent pas, la connexion échoue souvent et les débogages indiquent une non-correspondance de groupe Diffie-Hellman (DH) ou un faux négatif similaire.
Établir la connexion
Cette section décrit la connexion PC-ASA lorsque le profil est déjà présent.
Remarque : les informations que vous entrez dans l'interface utilisateur graphique pour vous connecter sont la valeur <HostName> configurée dans le profil AnyConnect. Dans ce cas, bsns-asa5520-1 est entré, pas le nom de domaine complet (FQDN) complet.
Lorsque vous tentez de vous connecter pour la première fois via AnyConnect, la passerelle vous invite à sélectionner le certificat (si la sélection automatique de certificat est désactivée) :
Vous devez ensuite saisir le nom d'utilisateur et le mot de passe :
Une fois le nom d’utilisateur et le mot de passe acceptés, la connexion est établie et les statistiques AnyConnect peuvent être vérifiées :
Vérification sur ASA
Entrez cette commande sur l'ASA afin de vérifier que la connexion utilise IKEv2 ainsi que AAA et l'authentification de certificat :
bsns-asa5520-1# show vpn-sessiondb detail anyconnect filter name cisco
Session Type: AnyConnect Detailed
Username : cisco Index : 6
Assigned IP : 172.16.99.5 Public IP : 1.2.3.4
Protocol : IKEv2 IPsecOverNatT AnyConnect-Parent
License : AnyConnect Premium
Encryption : AES256 AES128 Hashing : none SHA1 SHA1
Bytes Tx : 0 Bytes Rx : 960
Pkts Tx : 0 Pkts Rx : 10
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : GroupPolicy_AC Tunnel Group : AC
Login Time : 15:45:41 UTC Tue Aug 28 2012
Duration : 0h:02m:41s
Inactivity : 0h:00m:00s
NAC Result : Unknown
VLAN Mapping : N/A VLAN : none
IKEv2 Tunnels: 1
IPsecOverNatT Tunnels: 1
AnyConnect-Parent Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 6.1
Public IP : 1.2.3.4
Encryption : none Auth Mode : Certificate and userPassword
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Client Type : AnyConnect
Client Ver : 3.0.08057
IKEv2:
Tunnel ID : 6.2
UDP Src Port : 60468 UDP Dst Port : 4500
Rem Auth Mode: Certificate and userPassword
Loc Auth Mode: rsaCertificate
Encryption : AES256 Hashing : SHA1
Rekey Int (T): 86400 Seconds Rekey Left(T): 86238 Seconds
PRF : SHA1 D/H Group : 5
Filter Name :
Client OS : Windows
IPsecOverNatT:
Tunnel ID : 6.3
Local Addr : 0.0.0.0/0.0.0.0/0/0
Remote Addr : 172.16.99.5/255.255.255.255/0/0
Encryption : AES128 Hashing : SHA1\
Encapsulation: Tunnel
Rekey Int (T): 28800 Seconds Rekey Left(T): 28638 Seconds
Rekey Int (D): 4608000 K-Bytes Rekey Left(D): 4608000 K-Bytes
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Bytes Tx : 0 Bytes Rx : 960
Pkts Tx : 0 Pkts Rx : 10
Avertissements connus
Voici les avertissements et les problèmes connus qui sont liés à l'information décrite dans ce document :
- Les points de confiance IKEv2 et SSL doivent être identiques.
- Cisco recommande d'utiliser le nom de domaine complet comme code de connexion pour les certificats côté ASA. Assurez-vous que vous référencez le même nom de domaine complet pour <HostAddress> dans le profil AnyConnect.
- Pensez à insérer la valeur <HostName> du profil AnyConnect lorsque vous vous connectez.
- Même dans la configuration IKEv2, quand AnyConnect se connecte à l'ASA, il télécharge les mises à jour de profil et binaires sur SSL, mais pas sur IPsec.
- La connexion AnyConnect sur IKEv2 à l'ASA utilise EAP-AnyConnect, un mécanisme propriétaire qui permet une mise en oeuvre plus simple.