IPSec - Configuración

IPSec crea un túnel VPN cifrado sitio a sitio entre dos routers a través de una red no confiable (Internet), protegiendo el tráfico entre las LAN de cada extremo. Se configura en dos fases: la Fase 1 (ISAKMP/IKE) que establece un canal seguro de gestión, y la Fase 2 (IPSec) que cifra los datos. La validación está en IPSec - Verificación y el diagnóstico en IPSec - Troubleshooting. Cuando se necesita enrutamiento dinámico o multicast por el túnel, se combina con GRE (ver GRE over IPSec - Configuración); para VPN de muchos sitios ver DMVPN - Configuración.


Prerrequisitos

  • Conectividad IP entre las direcciones públicas de ambos peers (a través del ISP).
  • Saber qué tráfico “interesante” cifrar (normalmente LAN de un sitio hacia LAN del otro).
  • Parámetros acordados idénticos en ambos extremos (cifrado, hash, grupo DH, clave).

Conceptos previos (mínimos)

  • Fase 1 (IKE/ISAKMP): negocia un canal seguro entre los peers. Define autenticación, cifrado, hashing, grupo Diffie-Hellman y lifetime.
  • Fase 2 (IPSec): protege los datos reales. Usa un transform-set (protocolo ESP/AH + cifrado + hash) y una ACL de cifrado que define el tráfico interesante.
  • ESP cifra y autentica; AH solo autentica. Casi siempre se usa ESP.
  • Crypto map: une todo (peer + transform-set + ACL) y se aplica a la interfaz de salida hacia Internet.
  • Modo tunnel (por defecto, cifra todo el paquete IP original) vs modo transport (cifra solo el payload; se usa cuando GRE ya encapsuló).

Pasos de configuración (en cada router):

  1. Fase 1: crypto isakmp policy + clave pre-compartida (crypto isakmp key).
  2. Fase 2: crypto ipsec transform-set.
  3. ACL de cifrado: qué tráfico proteger.
  4. Crypto map: peer + transform-set + ACL.
  5. Aplicar el crypto map a la interfaz pública.

Comandos de configuración

Fase 1 — política ISAKMP y clave pre-compartida (de tus diapositivas):

R1(config)# crypto isakmp policy 10
R1(config-isakmp)# encryption aes 192
R1(config-isakmp)# hash sha256
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 14
R1(config-isakmp)# lifetime 86400
R1(config-isakmp)# exit
R1(config)# crypto isakmp key cisco123 address 10.10.20.1
  • crypto isakmp policy <n>: crea la política de Fase 1 (menor número = mayor prioridad).
  • encryption <aes|3des|des> [128|192|256]: algoritmo de cifrado del canal.
  • hash <sha256|sha|md5>: algoritmo de integridad.
  • authentication <pre-share|rsa-sig|rsa-encr>: método de autenticación de los peers.
  • group <14|...>: grupo Diffie-Hellman (14 = 2048 bits).
  • lifetime <seg>: duración de la SA de Fase 1 (86400 = 1 día).
  • crypto isakmp key <clave> address <ip-peer>: la contraseña pre-compartida, ligada a la IP del peer.

Fase 2 — transform-set (de tus diapositivas):

R1(config)# crypto ipsec transform-set ESP_AES_SHA256 esp-aes 192 esp-sha256-hmac
R1(cfg-crypto-trans)# mode tunnel
R1(cfg-crypto-trans)# exit
  • crypto ipsec transform-set <nombre> <transform-cifrado> <transform-hash>: define cómo se protegen los datos.
    • esp-aes 192 (cifrado ESP con AES-192), esp-sha256-hmac (integridad).
    • Otros: esp-3des, esp-gcm, ah-sha-hmac, etc.
  • mode <tunnel|transport>: tunnel cifra el paquete IP completo (site-to-site); transport solo el payload (para GRE over IPSec).

ACL de cifrado (tráfico interesante) y crypto map (de tus diapositivas):

R1(config)# ip access-list extended R1_R2
R1(config-ext-nacl)# permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
R1(config-ext-nacl)# exit
R1(config)# crypto map CRYPTO1 10 ipsec-isakmp
R1(config-crypto-map)# set peer 60.60.60.2
R1(config-crypto-map)# set transform-set ESP_AES_SHA256
R1(config-crypto-map)# match address R1_R2
R1(config-crypto-map)# exit
R1(config)# interface fastEthernet 1/0
R1(config-if)# crypto map CRYPTO1
  • La ACL define el tráfico a cifrar (LAN local → LAN remota). Es simétrica en el otro extremo (invertida).
  • crypto map <nombre> <seq> ipsec-isakmp: crea la entrada del crypto map.
  • set peer <ip-pública-remota>: el otro extremo del túnel.
  • set transform-set <nombre>: cómo cifrar.
  • match address <acl>: qué cifrar.
  • crypto map <nombre> en la interfaz: activa IPSec en la interfaz pública (hacia Internet).

Añadido pro: el crypto map permanece deshabilitado hasta que tenga peer y ACL válidos (el IOS lo avisa). La ACL de ambos extremos debe ser un espejo: en R2, permit ip 192.168.30.0 ... 192.168.10.0 ....


Dos ejemplos completos de configuración

Topología: R1 (oficina central, LAN 192.168.10.0/24, público 80.80.80.2) — Internet — R2 (sucursal, LAN 192.168.30.0/24, público 60.60.60.2). Peers apuntan a la IP pública del otro.

Ejemplo 1 — R1 (oficina central)

R1# configure terminal

! Fase 1
R1(config)# crypto isakmp policy 10
R1(config-isakmp)# encryption aes 192
R1(config-isakmp)# hash sha256
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 14
R1(config-isakmp)# lifetime 86400
R1(config-isakmp)# exit
R1(config)# crypto isakmp key cisco123 address 60.60.60.2

! Fase 2
R1(config)# crypto ipsec transform-set ESP_AES_SHA256 esp-aes 192 esp-sha256-hmac
R1(cfg-crypto-trans)# mode tunnel
R1(cfg-crypto-trans)# exit

! ACL de tráfico interesante (LAN R1 -> LAN R2)
R1(config)# ip access-list extended R1_R2
R1(config-ext-nacl)# permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
R1(config-ext-nacl)# exit

! Crypto map y aplicación a la interfaz pública
R1(config)# crypto map CRYPTO1 10 ipsec-isakmp
R1(config-crypto-map)# set peer 60.60.60.2
R1(config-crypto-map)# set transform-set ESP_AES_SHA256
R1(config-crypto-map)# match address R1_R2
R1(config-crypto-map)# exit
R1(config)# interface fastEthernet 1/0
R1(config-if)# crypto map CRYPTO1
R1(config-if)# end
R1# copy running-config startup-config

Ejemplo 2 — R2 (sucursal, configuración espejo)

R2# configure terminal

! Fase 1 (idéntica)
R2(config)# crypto isakmp policy 10
R2(config-isakmp)# encryption aes 192
R2(config-isakmp)# hash sha256
R2(config-isakmp)# authentication pre-share
R2(config-isakmp)# group 14
R2(config-isakmp)# lifetime 86400
R2(config-isakmp)# exit
R2(config)# crypto isakmp key cisco123 address 80.80.80.2

! Fase 2 (idéntica)
R2(config)# crypto ipsec transform-set ESP_AES_SHA256 esp-aes 192 esp-sha256-hmac
R2(cfg-crypto-trans)# mode tunnel
R2(cfg-crypto-trans)# exit

! ACL espejo (LAN R2 -> LAN R1)
R2(config)# ip access-list extended R2_R1
R2(config-ext-nacl)# permit ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255
R2(config-ext-nacl)# exit

! Crypto map apuntando a R1
R2(config)# crypto map CRYPTO1 10 ipsec-isakmp
R2(config-crypto-map)# set peer 80.80.80.2
R2(config-crypto-map)# set transform-set ESP_AES_SHA256
R2(config-crypto-map)# match address R2_R1
R2(config-crypto-map)# exit
R2(config)# interface fastEthernet 1/0
R2(config-if)# crypto map CRYPTO1
R2(config-if)# end
R2# write memory

Los parámetros de ambos extremos deben coincidir: Fase 1 (pre-shared, AES, SHA, DH 14, lifetime 86400, clave cisco123) y Fase 2 (ESP, AES, SHA, proxy identities 192.168.10.0/24 ↔ 192.168.30.0/24).


Verificación rápida (comprobar que quedó bien)

La validación detallada está en IPSec - Verificación.

! Estado de la Fase 1 (IKE)
R1# show crypto isakmp sa

! Estado de la Fase 2 (IPSec) y paquetes cifrados/descifrados
R1# show crypto ipsec sa

! Crypto map aplicado
R1# show crypto map

Qué deberías ver:

  • En show crypto isakmp sa, el peer con estado QM_IDLE (Fase 1 establecida).
  • En show crypto ipsec sa, contadores de pkts encaps/pkts decaps subiendo cuando pasa tráfico interesante.

Todos los comandos de tus diapositivas están incluidos (crypto isakmp policy con encryption/hash/authentication/group/lifetime, crypto isakmp key address, crypto ipsec transform-set con mode tunnel/transport, ACL de cifrado, crypto map ipsec-isakmp con set peer/set transform-set/match address, y su aplicación a la interfaz). Las tablas de Fase 1/Fase 2 de tu diapositiva se reflejan en los parámetros. Si quieres que quite algo, dime.