Este documento describe cómo configurar un túnel IPSec Internet Key Exchange versión 1 (IKEv1) de sitio a sitio (LAN a LAN) a través de la CLI entre un Cisco Adaptive Security Appliance (ASA) y un router que ejecuta el software Cisco IOS®.
Cisco recomienda que tenga conocimiento sobre estos temas:
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
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. If your network is live, make sure that you understand the potential impact of any command.
Esta sección describe cómo completar las configuraciones CLI del router ASA e IOS.
La información de este documento utiliza esta configuración de red:
Si las interfaces ASA no están configuradas, asegúrese de configurar al menos las direcciones IP, los nombres de interfaz y los niveles de seguridad:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
Para configurar las políticas ISAKMP (Asociación de seguridad de Internet) para las conexiones IKEv1, introduzca el comando crypto ikev1 policy <priority>:
crypto ikev1 policy 10
authentication pre-share
encryption aes
hash sha
group 2
lifetime 86400
Debe habilitar IKEv1 en la interfaz que termina el túnel VPN. Normalmente, esta es la interfaz externa (o pública). Para habilitar IKEv1, ingrese el comando crypto ikev1 enable <interface-name> en el modo de configuración global:
crypto ikev1 enable outside
Para un túnel de LAN a LAN, el tipo de perfil de conexión es ipsec-l2l. Para configurar la clave previamente compartida IKEv1, ingrese el modo de configuración tunnel-group ipsec-Attributes:
tunnel-group 172.17.1.1 type ipsec-l2l
tunnel-group 172.17.1.1 ipsec-attributes
ikev1 pre-shared-key cisco123
El ASA utiliza listas de control de acceso (ACL) para diferenciar el tráfico que debe protegerse con el cifrado IPSec del tráfico que no requiere protección. Protege los paquetes salientes que coinciden con un motor de control de aplicaciones (ACE) de permiso y garantiza que los paquetes entrantes que coinciden con un ACE de permiso tengan protección.
object-group network local-network
network-object 10.10.10.0 255.255.255.0
object-group network remote-network
network-object 10.20.10.0 255.255.255.0
access-list asa-router-vpn extended permit ip object-group local-network
object-group remote-network
Por lo general, no debe realizarse NAT en el tráfico VPN. Para eximir ese tráfico, debe crear una regla NAT de identidad. La regla NAT de identidad simplemente traduce una dirección a la misma dirección.
nat (inside,outside) source static local-network local-network destination static
remote-network remote-network no-proxy-arp route-lookup
Un conjunto de transformación IKEv1 es una combinación de protocolos de seguridad y algoritmos que definen la forma en que ASA protege los datos. Durante las negociaciones de la Asociación de seguridad IPSec (SA), los pares deben identificar un conjunto de transformación o una propuesta que sea la misma para ambos pares. A continuación, ASA aplica el conjunto de transformación o la propuesta coincidentes para crear una SA que proteja los flujos de datos en la lista de acceso para ese mapa criptográfico.
Para configurar el conjunto de transformación IKEv1, ingrese el comando crypto ipsec ikev1 transform-set:
crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac
Un mapa criptográfico define una política IPSec que se negociará en la SA IPSec e incluye:
Aquí tiene un ejemplo:
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 172.17.1.1
crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA
Luego puede aplicar el mapa crypto a la interfaz:
crypto map outside_map interface outside
Esta es la configuración final en el ASA:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
!
object-group network local-network
network-object 10.10.10.0 255.255.255.0
object-group network remote-network
network-object 10.20.10.0 255.255.255.0
!
access-list asa-router-vpn extended permit ip object-group local-network
object-group remote-network
!
nat (inside,outside) source static local-network local-network destination
static remote-network remote-network no-proxy-arp route-lookup
!
crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac
!
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 172.17.1.1
crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA
crypto map outside_map interface outside
Si las interfaces del router IOS aún no están configuradas, al menos las interfaces LAN y WAN deben configurarse. Aquí tiene un ejemplo:
interface GigabitEthernet0/0
ip address 172.17.1.1 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1
ip address 10.20.10.1 255.255.255.0
no shutdown
Asegúrese de que haya conectividad a las redes internas y externas, y especialmente al par remoto que se utilizará para establecer un túnel VPN de sitio a sitio. Puede utilizar un ping para verificar la conectividad básica.
Para configurar las políticas ISAKMP para las conexiones IKEv1, ingrese el comando crypto isakmp policy <priority> en el modo de configuración global. Aquí tiene un ejemplo:
crypto isakmp policy 10
encr aes
authentication pre-share
group 2
Para configurar una clave de autenticación previamente compartida, ingrese el comando crypto isakmp key en el modo de configuración global:
crypto isakmp key cisco123 address 172.16.1.1
Utilice la lista de acceso ampliada o denominada para especificar el tráfico que debe protegerse mediante cifrado. Aquí tiene un ejemplo:
access-list 110 remark Interesting traffic access-list
access-list 110 permit ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
Por lo general, no debe realizarse NAT en el tráfico VPN. Si se utiliza la sobrecarga NAT, se debe utilizar un route-map para eximir el tráfico de interés VPN de la traducción. Observe que en la lista de acceso que se utiliza en el route-map, se debe denegar el tráfico de interés VPN.
access-list 111 remark NAT exemption access-list
access-list 111 deny ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 permit ip 10.20.10.0 0.0.0.255 any
route-map nonat permit 10
match ip address 111
ip nat inside source route-map nonat interface GigabitEthernet0/0 overload
Para definir un conjunto de transformación IPSec (una combinación aceptable de protocolos de seguridad y algoritmos), ingrese el comando crypto ipsec transform-set en el modo de configuración global. Aquí tiene un ejemplo:
crypto ipsec transform-set ESP-AES-SHA esp-aes esp-sha-hmac
mode tunnel
Para crear o modificar una entrada de crypto map e ingresar al modo de configuración de crypto map, ingrese el comando de configuración global crypto map. Para que la entrada de mapa criptográfico se complete, hay algunos aspectos que deben definirse como mínimo:
Aquí tiene un ejemplo:
crypto map outside_map 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set ESP-AES-SHA
match address 110
El paso final es aplicar el conjunto de mapas criptográficos previamente definido a una interfaz. Para aplicar esto, ingrese el comando de configuración de la interfaz crypto map:
interface GigabitEthernet0/0
crypto map outside_map
Esta es la configuración final de CLI del router IOS:
crypto isakmp policy 10
encr aes
authentication pre-share
group 2
crypto isakmp key cisco123 address 172.16.1.1
!
crypto ipsec transform-set ESP-AES-SHA esp-aes esp-sha-hmac
mode tunnel
!
crypto map outside_map 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set ESP-AES-SHA
match address 110
!
interface GigabitEthernet0/0
ip address 172.17.1.1 255.255.255.0
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
crypto map outside_map
!
interface GigabitEthernet0/1
ip address 10.20.10.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
duplex auto
speed auto
!
ip nat inside source route-map nonat interface GigabitEthernet0/0 overload
!
route-map nonat permit 10
match ip address 111
!
access-list 110 remark Interesting traffic access-list
access-list 110 permit ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 remark NAT exemption access-list
access-list 111 deny ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 permit ip 10.20.10.0 0.0.0.255 any
Antes de verificar si el túnel está activo y que pasa el tráfico, debe asegurarse de que el tráfico de interés se envíe hacia el ASA o hacia el router IOS.
Para verificar si IKEv1 Phase 1 está activo en el ASA, ingrese el comando show crypto isakmp sa. La salida esperada es para ver el estado MM_ACTIVE:
ciscoasa# show crypto isakmp sa
IKEv1 SAs:
Active SA: 1
Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 1
1 IKE Peer: 172.17.1.1
Type : L2L Role : responder
Rekey : no State : MM_ACTIVE
There are no IKEv2 SAs
ciscoasa#
Para verificar si la Fase 1 de IKEv1 está activa en el IOS, ingrese el comando show crypto isakmp sa. El resultado esperado es ver el estado ACTIVE:
Router#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id status
172.16.1.1 172.17.1.1 QM_IDLE 1005 ACTIVE
IPv6 Crypto ISAKMP SA
Router#
Para verificar si IKEv1 Phase 2 está activo en el ASA, ingrese el comando show crypto ipsec sa. El resultado esperado es ver el Índice de parámetros de seguridad (SPI) entrante y saliente. Si el tráfico pasa a través del túnel, debería ver que los contadores de encaps/decaps aumentan.
Aquí tiene un ejemplo:
ciscoasa# show crypto ipsec sa peer 172.17.1.1
peer address: 172.17.1.1
Crypto map tag: outside_map, seq num: 10, local addr: 172.16.1.1
access-list asa-router-vpn extended permit ip 10.10.10.0 255.255.255.0
10.20.10.0 255.255.255.0
local ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.20.10.0/255.255.255.0/0/0)
current_peer: 172.17.1.1
#pkts encaps: 1005, #pkts encrypt: 1005, #pkts digest: 1005
#pkts decaps: 1014, #pkts decrypt: 1014, #pkts verify: 1014
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 1005, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
#TFC rcvd: 0, #TFC sent: 0
#Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0
#send errors: 0, #recv errors: 0
local crypto endpt.: 172.16.1.1/0, remote crypto endpt.: 172.17.1.1/0
path mtu 1500, ipsec overhead 74(44), media mtu 1500
PMTU time remaining (sec): 0, DF policy: copy-df
ICMP error validation: disabled, TFC packets: disabled
current outbound spi: 8A9FE619
current inbound spi : D8639BD0
inbound esp sas:
spi: 0xD8639BD0 (3630406608)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 8192, crypto-map: outside_map
sa timing: remaining key lifetime (kB/sec): (3914900/3519)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0xFFFFFFFF 0xFFFFFFFF
outbound esp sas:
spi: 0x8A9FE619 (2325734937)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 8192, crypto-map: outside_map
sa timing: remaining key lifetime (kB/sec): (3914901/3519)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
ciscoasa#
Para verificar si IKEv1 Phase 2 está activo en el IOS, ingrese el comando show crypto ipsec sa. El resultado esperado es ver el SPI entrante y saliente. Si el tráfico pasa a través del túnel, debería ver que los contadores de encaps/decaps aumentan.
Aquí tiene un ejemplo:
Router#show crypto ipsec sa peer 172.16.1.1
interface: GigabitEthernet0/0
Crypto map tag: outside_map, local addr 172.17.1.1
protected vrf: (none)
local ident (addr/mask/prot/port): (10.20.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)
current_peer 172.16.1.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 2024, #pkts encrypt: 2024, #pkts digest: 2024
#pkts decaps: 2015, #pkts decrypt: 2015, #pkts verify: 2015
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 26, #recv errors 0
local crypto endpt.: 172.17.1.1, remote crypto endpt.: 172.16.1.1
path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0
current outbound spi: 0xD8639BD0(3630406608)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0x8A9FE619(2325734937)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2003, flow_id: Onboard VPN:3, sibling_flags 80000046,
crypto map: outside_map
sa timing: remaining key lifetime (k/sec): (4449870/3455)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xD8639BD0(3630406608)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2004, flow_id: Onboard VPN:4, sibling_flags 80000046,
crypto map: outside_map
sa timing: remaining key lifetime (k/sec): (4449868/3455)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
Router#
Esta sección describe los comandos que puede utilizar en ASA o IOS para verificar los detalles de las fases 1 y 2.
Ingrese el comando show vpn-sessiondb en el ASA para la verificación:
ciscoasa# show vpn-sessiondb detail l2l filter ipaddress 172.17.1.1
Session Type: LAN-to-LAN Detailed
Connection : 172.17.1.1
Index : 2 IP Addr : 172.17.1.1
Protocol : IKEv1 IPsec
Encryption : IKEv1: (1)AES128 IPsec: (1)AES128
Hashing : IKEv1: (1)SHA1 IPsec: (1)SHA1
Bytes Tx : 100500 Bytes Rx : 101400
Login Time : 18:06:02 UTC Wed Jul 22 2015
Duration : 0h:05m:07s
IKEv1 Tunnels: 1
IPsec Tunnels: 1
IKEv1:
Tunnel ID : 2.1
UDP Src Port : 500 UDP Dst Port : 500
IKE Neg Mode : Main Auth Mode : preSharedKeys
Encryption : AES128 Hashing : SHA1
Rekey Int (T): 86400 Seconds Rekey Left(T): 86093 Seconds
D/H Group : 2
Filter Name :
IPsec:
Tunnel ID : 2.2
Local Addr : 10.10.10.0/255.255.255.0/0/0
Remote Addr : 10.20.10.0/255.255.255.0/0/0
Encryption : AES128 Hashing : SHA1
Encapsulation: Tunnel
Rekey Int (T): 3600 Seconds Rekey Left(T): 3293 Seconds
Rekey Int (D): 4608000 K-Bytes Rekey Left(D): 4607901 K-Bytes
Idle Time Out: 30 Minutes Idle TO Left : 26 Minutes
Bytes Tx : 100500 Bytes Rx : 101400
Pkts Tx : 1005 Pkts Rx : 1014
NAC:
Reval Int (T): 0 Seconds Reval Left(T): 0 Seconds
SQ Int (T) : 0 Seconds EoU Age(T) : 309 Seconds
Hold Left (T): 0 Seconds Posture Token:
Redirect URL :
ciscoasa#
Ingrese el comando show crypto session en el IOS para la verificación:
Router#show crypto session remote 172.16.1.1 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
Interface: GigabitEthernet0/0
Uptime: 00:03:36
Session status: UP-ACTIVE
Peer: 172.16.1.1 port 500 fvrf: (none) ivrf: (none)
Phase1_id: 172.16.1.1
Desc: (none)
IKE SA: local 172.17.1.1/500 remote 172.16.1.1/500 Active
Capabilities:(none) connid:1005 lifetime:23:56:23
IPSEC FLOW: permit ip 10.20.10.0/255.255.255.0 10.10.10.0/255.255.255.0
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 2015 drop 0 life (KB/Sec) 4449870/3383
Outbound: #pkts enc'ed 2024 drop 26 life (KB/Sec) 4449868/3383
Router#
Esta sección proporciona información que puede utilizar para resolver problemas de su configuración.
Para verificar automáticamente si la configuración de LAN a LAN IPSec entre el ASA y el IOS es válida, puede utilizar la herramienta IPSec LAN a LAN Checker. La herramienta está diseñada para que acepte un comando show tech o show running-config desde un router ASA o IOS. Examina la configuración e intenta detectar si se configura un túnel IPSec basado en mapa criptográfico de LAN a LAN. Si se configura, realiza una verificación multipunto de la configuración y resalta cualquier error de configuración y configuración para el túnel que se negociaría.
Para resolver problemas de negociación de túnel IPSec IKEv1 en un firewall ASA, puede utilizar estos comandos debug:
debug crypto ipsec 127
debug crypto isakmp 127
debug ike-common 10
Para resolver problemas de negociación de túnel IPSec IKEv1 en un router IOS, puede utilizar estos comandos debug:
debug crypto ipsec
debug crypto isakmp