Configuración de VPN Site-to-Site con IPSec y ISAKMP en Routers Cisco

La seguridad en las redes de comunicación es un pilar fundamental en el entorno empresarial actual. Para establecer conexiones seguras entre redes separadas geográficamente a través de medios inseguros como Internet, se recurre a las Redes Privadas Virtuales (VPN). Una de las implementaciones más robustas y ampliamente utilizadas para este propósito es IPSec (Internet Protocol Security). Este artículo detalla el proceso de configuración de una VPN Site-to-Site (S2S) utilizando el framework IPSec y el protocolo ISAKMP (Internet Security Association and Key Management Protocol) en routers Cisco, enfocándose en la versión IKEv1.

Diagrama conceptual de una VPN Site-to-Site

Fundamentos de IPSec y la Tríada CIA

IPSec es un conjunto de protocolos que opera en la capa de red (Capa 3) para asegurar la comunicación IP. Su principal objetivo es implementar la tríada CIA: Confidencialidad, Integridad y Autenticación.

  • Confidencialidad: Asegura que la información transmitida no pueda ser leída por partes no autorizadas. Esto se logra mediante el cifrado de los datos.
  • Integridad: Garantiza que los datos no hayan sido alterados durante su transmisión. Esto se verifica mediante funciones hash.
  • Autenticación: Confirma la identidad de los participantes en la comunicación, asegurando que los datos provienen de la fuente esperada.

Además de la tríada CIA, IPSec permite implementar no repudio, lo que significa que el emisor no puede negar haber enviado los datos, especialmente cuando se utilizan certificados digitales. También proporciona anti-replay, impidiendo que mensajes antiguos o duplicados sean aceptados y procesados.

El Rol de ISAKMP y IKE en el Establecimiento de Túneles VPN

Para establecer conexiones seguras, IPSec se apoya en protocolos de gestión de claves e intercambio de asociaciones de seguridad. Aquí es donde entran en juego ISAKMP e IKE (Internet Key Exchange).

  • ISAKMP (Internet Security Association and Key Management Protocol): Es un framework que proporciona la infraestructura para la autenticación de pares y el intercambio de claves criptográficas. Define un conjunto de procedimientos y formatos de mensajes para establecer y gestionar las Asociaciones de Seguridad (SA) de IPSec.
  • IKE (Internet Key Exchange): Es un protocolo híbrido que implementa mecanismos como Oakley y SKEME (Secure Key Exchange Mechanism) para el intercambio de claves. IKE opera sobre ISAKMP y se encarga de negociar los parámetros de seguridad y generar las claves criptográficas necesarias para los túneles IPSec. Existen dos versiones principales: IKEv1 (RFC 2409) e IKEv2 (RFC 5996). Para este laboratorio, nos centraremos en IKEv1.

VPN Sitio a Sitio con S-VTI, IKEv2 & PSK

Fases de IKEv1

IKEv1, al igual que su sucesor, opera en dos fases para establecer una conexión segura:

Fase 1: Establecimiento del Canal de Comunicación Seguro (ISAKMP SA)

El objetivo principal de la Fase 1 es crear un canal de comunicación seguro y bidireccional entre los dos routers (peers) que formarán el túnel VPN. Este canal, conocido como ISAKMP Security Association (SA), autentica y cifra las comunicaciones entre los peers. Los atributos negociados en esta fase incluyen:

  • Cifrado: Algoritmos como DES (64 bits), 3DES (168 bits) o AES (128, 192, 256 bits) pueden ser utilizados para proteger los datos de la negociación.
  • Hashing: Funciones de resumen como MD5 o SHA se emplean para verificar la integridad de los mensajes.
  • Intercambio de Llaves: Se utiliza un grupo Diffie-Hellman (DH) para permitir que los peers intercambien claves de forma segura sin necesidad de enviarlas directamente por la red.
  • Método de Autenticación: Puede ser mediante una Pre-Shared Key (PSK), que es una contraseña compartida entre los routers, o a través de certificados digitales, que ofrecen un nivel de seguridad y escalabilidad superior.
  • Atributos específicos de vendor: Algunas opciones de configuración pueden variar entre fabricantes.

Es crucial permitir el tráfico en el puerto UDP 500, ya que es el puerto estándar utilizado por IKE para sus comunicaciones.

La Fase 1 puede operar en dos modos:

  • Main Mode: Este modo intercambia 6 paquetes en tres rondas de ida y vuelta. Ofrece protección de identidad solo si se utiliza una PSK.
  • Aggressive Mode: Este modo es más rápido, intercambiando solo 3 paquetes. Proporciona protección de identidad si se utilizan certificados digitales.

Fase 2: Negociación de la Asociación de Seguridad IPSec (IPSec SA)

Una vez que el canal seguro de la Fase 1 está establecido, la Fase 2 se encarga de negociar los parámetros específicos para el túnel IPSec. En esta fase, se crean dos IPSec SA: una para el tráfico de entrada y otra para el tráfico de salida. Cada SA está identificada por un Security Parameter Index (SPI) único, asignado por el iniciador y el respondedor.

La Fase 2 utiliza un modo llamado Quick Mode. Durante Quick Mode, se negocian los parámetros necesarios para establecer el canal seguro entre los pares, y lo más importante, se define el tráfico interesante de la VPN, es decir, qué tipo de tráfico será encapsulado y enviado a través del túnel. Todas las negociaciones de la Fase 2 están protegidas por la seguridad establecida en la Fase 1.

Los elementos negociados en Quick Mode incluyen:

  • Tipo de Cifrado y Funciones Hash: Se seleccionan los algoritmos específicos para proteger los datos que transitan por el túnel IPSec.
  • Modos de Operación:
    • Transport Mode: Utilizado en comunicaciones de extremo a extremo (end-to-end). Solo cifra el payload del paquete, sin modificar la cabecera de Capa 3.
    • Tunnel Mode: Este es el modo por defecto en los routers Cisco para VPN S2S. Cifra el paquete IP original en su totalidad y añade una nueva cabecera IP. Es ideal para comunicaciones entre gateways VPN.
  • Protocolo de Seguridad:
    • AH (Authentication Header - Protocolo 51): Proporciona integridad de datos, autenticación de origen y protección anti-replay. Sin embargo, no ofrece confidencialidad ya que no cifra los datos.
    • ESP (Encapsulating Security Payload - Protocolo 50): Ofrece confidencialidad (cifrado), integridad de datos, autenticación de origen y protección anti-replay. Es el protocolo más comúnmente utilizado en VPNs IPSec.

Comparativa entre Tunnel Mode y Transport Mode

NAT Traversal (NAT-T)

Un desafío común en las implementaciones de VPN IPSec surge cuando se utilizan dispositivos de traducción de direcciones de red (NAT). Dado que ESP opera en Capa 3 y no utiliza números de puerto específicos como ISAKMP (UDP 500), su funcionamiento puede verse afectado por el NAT.

Para superar este obstáculo, se implementa NAT Traversal (NAT-T). Durante la Fase 1 (específicamente en Main Mode), los routers detectan si ambos extremos de la VPN soportan NAT-T y si están utilizando NAT. Si es así, los paquetes de la Fase 2 se encapsulan dentro de datagramas UDP utilizando el puerto UDP 4500. Esto permite que el tráfico IPSec atraviese los dispositivos NAT sin problemas.

Configuración Paso a Paso

La configuración de una VPN IPSec S2S en routers Cisco implica varios pasos clave. Es fundamental que los parámetros configurados en ambos routers (peers) sean idénticos para que la VPN pueda establecerse correctamente.

1. Habilitar la Funcionalidad de Criptografía (Licencia)

En muchos routers Cisco, especialmente los modelos más recientes, se requiere una licencia específica para habilitar funcionalidades de seguridad avanzadas, como IPSec. El comando para habilitar la licencia de securityk9 se muestra a continuación. Tras la activación, se debe aceptar el Acuerdo de Licencia de Usuario Final (EULA).

Router(config)# license boot module technology-package securityk9Router(config)# exitRouter# write memory

Al ingresar a la interfaz de línea de comandos del software, se solicitará la aceptación del EULA:

POR FAVOR, LEA ATENTAMENTE LOS SIGUIENTES TÉRMINOS. INSTALACIÓN DE LA LICENCIA OCLAVE DE LICENCIA PROPORCIONADA PARA CUALQUIER CARACTERÍSTICA DEL PRODUCTO CISCO O EL USO DE DICHALA CARACTERÍSTICA DEL PRODUCTO CONSTITUYE SU PLENA ACEPTACIÓN DE LO SIGUIENTE:LETRA CHICA. NO DEBE CONTINUAR SI NO ESTÁ DISPUESTO A ESTAR OBLIGADOPOR TODOS LOS TÉRMINOS AQUÍ ESTABLECIDOS.El uso de esta función del producto requiere una licencia adicional de Cisco,junto con un pago adicional. Puede utilizar esta función del productosobre una base de evaluación, sin pago a Cisco, durante 60 días. Después de laPeríodo de evaluación de 60 días, su uso de la función del producto seráregido únicamente por el acuerdo de licencia de usuario final de Cisco (enlace anterior),junto con cualquier suplemento relacionado con dicha característica del producto. ElLo anterior se aplica incluso si la licencia de evaluación no es automáticaterminado y no recibe ningún aviso de la expiración de laperíodo de evaluación. Es su responsabilidad determinar cuándo elEl período de evaluación está completo y debe realizar el pago aCisco para su uso de la función del producto más allá del período de evaluación.Su aceptación de este acuerdo para las funciones de software en unoEl producto se considerará su aceptación con respecto a todos lossoftware en todos los productos Cisco que compre que incluya el mismosoftware. (No obstante lo anterior, debe comprar una licenciapara cada función de software que utilice después del período de evaluación de 60 días,de modo que si habilita una función de software en 1000 dispositivos, debecomprar 1000 licencias para su uso después del período de evaluación de 60 días).La activación de la interfaz de línea de comandos del software será evidencia desu aceptación de este acuerdo.¿ACEPTAR? [sí/no]: sí% Utilice el comando 'Write' para que la configuración de arranque de la licencia surta efecto en el siguiente arranque%LICENSE-6-EULA_ACCEPTED: se ha aceptado el EULA para la característica securityk9 1.0.

2. Configurar ISAKMP (Fase 1)

En esta sección, definimos los parámetros para la Fase 1 de IKEv1.

  • Habilitar ISAKMP: crypto isakmp enable

  • Definir la clave pre-compartida (PSK) y el peer remoto: Se crea una PSK para autenticar al router remoto. Es crucial que la PSK sea idéntica en ambos extremos.

    crypto isakmp policy 10 authentication pre-share encryption aes 256 hash sha256 group 5 lifetime 86400exitcrypto isakmp key <tu_psk_secreta> address <ip_del_peer_remoto>
    • policy 10: Define una política de ISAKMP con prioridad 10.
    • authentication pre-share: Especifica el método de autenticación.
    • encryption aes 256: Selecciona AES de 256 bits para el cifrado en Fase 1.
    • hash sha256: Utiliza SHA-256 para la función hash.
    • group 5: Selecciona el grupo Diffie-Hellman 5 para el intercambio de claves.
    • lifetime 86400: Establece la duración de la ISAKMP SA a 86400 segundos (24 horas).
  • Configurar el puerto UDP 500 (si es necesario): Por defecto, IKE utiliza el puerto UDP 500. Si hay firewalls intermedios, asegúrate de que este puerto esté permitido.

3. Configurar IPSec (Fase 2)

Aquí se definen los parámetros para la Fase 2 de IPSec.

  • Definir el Transform Set: Un transform set agrupa los algoritmos de cifrado y hash que se utilizarán en la Fase 2.ciscocrypto ipsec transform-set MY_TRANSFORM_SET esp-aes 256 esp-sha256-hmac mode tunnelexit
    • MY_TRANSFORM_SET: Nombre descriptivo para el conjunto de transformación.
    • esp-aes 256: Especifica AES de 256 bits para el cifrado ESP.
    • esp-sha256-hmac: Especifica SHA-256 con HMAC para la integridad y autenticación.
    • mode tunnel: Configura el modo túnel, que es el predeterminado para VPN S2S.

4. Definir el Tráfico Interesante (Access List)

Una lista de acceso (ACL) se utiliza para identificar el tráfico que debe ser encriptado y enviado a través del túnel VPN. Este tráfico se conoce como "tráfico interesante".

ip access-list VPN_TRAFFIC permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255exit
  • VPN_TRAFFIC: Nombre de la lista de acceso.
  • permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255: Permite el tráfico IP desde la red local 192.168.1.0/24 hacia la red remota 192.168.2.0/24. Asegúrate de que estas direcciones IP y máscaras de subred coincidan con las redes de tus dos sitios.

5. Crear el Crypto Map

El crypto map une todos los componentes anteriores: la ACL que define el tráfico interesante, la dirección IP del peer remoto y el transform set.

crypto map MY_CRYPTO_MAP 10 ipsec-isakmp set peer <ip_del_peer_remoto> set transform-set MY_TRANSFORM_SET match address VPN_TRAFFICexit
  • MY_CRYPTO_MAP: Nombre descriptivo para el crypto map.
  • 10: Número de secuencia dentro del crypto map.
  • ipsec-isakmp: Indica que se utilizará IPSec con ISAKMP.
  • set peer <ip_del_peer_remoto>: Especifica la dirección IP pública del router VPN remoto.
  • set transform-set MY_TRANSFORM_SET: Vincula el transform set definido previamente.
  • match address VPN_TRAFFIC: Vincula la lista de acceso que define el tráfico interesante.

6. Aplicar el Crypto Map a la Interfaz WAN

Finalmente, el crypto map se aplica a la interfaz WAN (la interfaz que está conectada a Internet) del router. Solo se puede aplicar un crypto map por interfaz.

interface <nombre_de_la_interfaz_wan> crypto map MY_CRYPTO_MAPexit
  • <nombre_de_la_interfaz_wan>: Reemplaza esto con el nombre real de tu interfaz WAN (por ejemplo, GigabitEthernet0/1).

7. Configurar Rutas

Para que el tráfico destinado a la red remota sea enrutado a través del túnel VPN, es necesario tener una ruta configurada. Esto se puede lograr de dos maneras:

  • Ruta Estática: Configurar una ruta estática que apunte a la red remota.ciscoip route 192.168.2.0 255.255.255.0 <ip_del_siguiente_salto_o_interfaz_local>
  • Ruta Inversa (Proxy Route): Inyectar una ruta inversa que funcione como un proxy. Esto es especialmente útil cuando se utilizan NAT en el lado interno.

La configuración de rutas es fundamental para que el tráfico interesante sea dirigido hacia el proceso de encriptación de IPSec.

8. Generar Tráfico para Levantar el Túnel

Una vez configurados ambos routers, el túnel VPN no se establecerá hasta que se genere tráfico que coincida con la definición de "tráfico interesante" (definido en la ACL). Un ping entre un host de la red local y un host de la red remota es una forma común de iniciar este proceso.

Por ejemplo, desde un host en la red 192.168.1.0/24, intentar hacer ping a un host en 192.168.2.0/24.

Verificación y Troubleshooting

Una vez aplicada la configuración, es crucial verificar el estado del túnel VPN y, en caso de problemas, realizar troubleshooting.

Comandos de Verificación

  • Verificar el estado de la Fase 1 (ISAKMP SA):

    show crypto isakmp sa

    Si la Fase 1 se ha establecido correctamente, verás una entrada con el estado QM_IDLE. Esto indica que la autenticación se completó con éxito y que el túnel está listo para la Fase 2 (Quick Mode).

  • Verificar el estado de la Fase 2 (IPSec SA):

    show crypto ipsec sa

    Este comando proporciona detalles exhaustivos sobre las SA de IPSec, incluyendo:

    • El crypto map utilizado y su aplicación.
    • El tráfico interesante que se espera que pase por el túnel.
    • Los datos del peer remoto.
    • El tráfico que ha pasado por el túnel (contadores de paquetes encriptados/desencriptados).
    • Los SPIs generados. Notarás que el SPI de entrada de un router es idéntico al SPI de salida del otro.
  • Verificar la configuración del Crypto Map:ciscoshow crypto map

Captura de Paquetes (Fase 1 y Fase 2)

Analizar las capturas de paquetes puede ser muy útil para entender el flujo de negociación.

  • Captura de mensajes de Fase 1: Muestra los 6 mensajes intercambiados en Main Mode (o 3 en Aggressive Mode) que establecen la ISAKMP SA.
  • Captura de mensajes de Fase 2: Muestra los mensajes intercambiados en Quick Mode para negociar la IPSec SA.

Captura de tráfico de Fase 1 y Fase 2 de IKE

Comandos de Troubleshooting

Si el túnel no se establece, se pueden utilizar comandos de debug para obtener información detallada sobre el proceso de negociación.

  • Debug de Fase 1:

    debug crypto isakmp

    ¡Precaución! Estos comandos generan una gran cantidad de información. Úsalos con cuidado y desactívalos (undebug all o no debug crypto isakmp) una vez que hayas recopilado la información necesaria.

  • Debug de Fase 2:ciscodebug crypto ipsec

Consideraciones Adicionales

  • Consistencia de la Configuración: Asegúrate de que todos los parámetros (algoritmos de cifrado, hash, grupo DH, PSK, lifetime) sean idénticos en ambos routers.
  • ACLs y Rutas: Verifica que la ACL que define el tráfico interesante sea correcta y que las rutas necesarias estén configuradas para dirigir el tráfico hacia el túnel.
  • Firewalls: Comprueba que los firewalls intermedios permitan el tráfico UDP en los puertos 500 y 4500 (para NAT-T), así como el protocolo ESP (Protocolo 50) o AH (Protocolo 51) si se utilizan.

La configuración de VPNs IPSec puede ser compleja, pero siguiendo estos pasos y comprendiendo el funcionamiento de ISAKMP e IKE, se puede establecer una conexión segura y confiable entre redes. Los comandos de verificación y debugging son herramientas esenciales para asegurar la correcta operación del túnel.

tags: #habilitar #isakmp #en #router