Introducción
Este documento describe cómo conectar una PC a un Cisco Adaptive Security Appliance (ASA) con el uso de AnyConnect IPsec (IKEv2), así como el certificado y la autenticación, autorización y contabilidad (AAA).
Nota: El ejemplo que se proporciona en este documento describe solamente las partes relevantes que se utilizan para obtener una conexión IKEv2 entre ASA y AnyConnect. No se proporciona un ejemplo de configuración completo. La traducción de direcciones de red (NAT) o la configuración de la lista de acceso no se describen o requieren en este documento.
Preparación de la conexión
En esta sección se describen los preparativos necesarios para poder conectar el PC al ASA.
Certificados con EKU adecuada
Es importante tener en cuenta que, aunque no es necesario para la combinación ASA y AnyConnect, RFC requiere que los certificados tengan un uso de clave ampliada (EKU):
- El certificado para el ASA debe contener la EKU de autenticación de servidor.
- El certificado para la PC debe contener la EKU client-auth.
Nota: Un router IOS con la revisión de software reciente puede colocar EKUs en los certificados.
Configuración en ASA
En esta sección se describen las configuraciones de ASA que se requieren antes de que se produzca la conexión.
Nota: el administrador adaptable de dispositivos de seguridad de Cisco (ASDM) permite crear la configuración básica con solo unos clics. Cisco recomienda que lo utilice para evitar errores.
Configuración de mapa criptográfico
Este es un ejemplo de configuración de mapa criptográfico:
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
Propuestas IPSec
Este es un ejemplo de configuración de la propuesta 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
Políticas IKEv2
A continuación se muestra un ejemplo de configuración de la política 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
Servicios de cliente y certificado
Debe habilitar los servicios de cliente y los certificados en la interfaz correcta, que es la interfaz externa en este caso. Aquí hay un ejemplo de configuración:
crypto ikev2 enable outside client-services port 443
crypto ikev2 remote-access trustpoint OUTSIDE
ssl trust-point OUTSIDE outside
Nota: El mismo punto de confianza también se asigna para Secure Sockets Layer (SSL), que es intencionado y requerido.
Habilitar perfil de AnyConnect
Debe habilitar el perfil de AnyConnect en ASA. Aquí hay un ejemplo de configuración:
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
Nombre de usuario, Política de grupo y Grupo de túnel
Aquí hay un ejemplo de configuración para un nombre de usuario básico, política de grupo y grupo de túnel en 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
Perfil de AnyConnect
A continuación se muestra un ejemplo de perfil con las partes relevantes en negrita:
<?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>
A continuación, se incluyen algunas notas importantes sobre este ejemplo de configuración:
- Al crear el perfil, la dirección de host debe coincidir con el nombre de certificado (CN) del certificado que se utiliza para IKEv2. Ingrese el comando crypto ikev2 remote-access trustpoint para definir esto.
- El grupo de usuarios debe coincidir con el nombre del grupo de túneles al que pertenece la conexión IKEv2. Si no coinciden, la conexión a menudo falla y las depuraciones indican una discordancia de grupo Diffie-Hellman (DH) o un falso negativo similar.
Establecer la conexión
Esta sección describe la conexión de PC a ASA cuando el perfil ya está presente.
Nota: La información que ingresa en la GUI para conectarse es el valor <HostName> configurado en el perfil de AnyConnect. En este caso, se introduce bsns-asa5520-1, no el nombre de dominio completo (FQDN) completo.
La primera vez que intente conectarse a través de AnyConnect, la puerta de enlace le pedirá que seleccione el certificado (si la selección automática de certificados está desactivada):
A continuación, debe introducir el nombre de usuario y la contraseña:
Una vez aceptados el nombre de usuario y la contraseña, la conexión se realiza correctamente y se pueden verificar las estadísticas de AnyConnect:
Verificación en ASA
Ingrese este comando en el ASA para verificar que la conexión utiliza IKEv2, así como AAA y autenticación de certificado:
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
Advertencias conocidas
Estas son las advertencias y problemas conocidos relacionados con la información que se describe en este documento:
- Los puntos de confianza IKEv2 y SSL deben ser iguales.
- Cisco recomienda que utilice el FQDN como el CN para los certificados del lado de ASA. Asegúrese de hacer referencia al mismo FQDN para la <dirección de host> en el perfil de AnyConnect.
- Recuerde insertar el valor <HostName> del perfil de AnyConnect cuando se conecte.
- Incluso en la configuración IKEv2, cuando AnyConnect se conecta al ASA, descarga las actualizaciones de perfil y binarias a través de SSL, pero no IPsec.
- La conexión de AnyConnect a través de IKEv2 con ASA utiliza EAP-AnyConnect, un mecanismo patentado que permite una implementación más sencilla.