VPN Site to Site, a la “Antigua” (CryptoMaps)

Que es una VPN (Virtual Private Network), básicamente una VPN es una conexión entre 2 puntos no necesariamente conectados directamente, la información que pasa a través es encriptada para proveer protección. Existen varios tipos de VPN, pero los más comunes son: VPN Sitio a Sitio o también conocido como LAN a LAN, VPN Remote Access, Firewall VPN y VPN Usuario a Usuario

 

 

En este artículo aprenderemos a configurar una VPN Sitio a Sitio en Routers, pero antes de conocer el procedimiento, debemos conocer cierta terminología y protocolos con el fin de familiarizarnos:

Modo Transport: Es un tipo de encapsulamiento, donde el paquete IP original es visible a menos que se aplique encriptación. Este tipo de encapsulamiento es más utilizado entre conexión host a host o de un host a un gateway VPN. Entre sus características podemos encontrar: Mayor MTU, seguridad de punto a punto. Desventajas: no es muy escalable e inconvenientes con NAT-T.

Modo Túnel: Es otro tipo de encapsulamiento y es mucho más compatible con los tipos de VPN Gateway, el paquete IP es encapsulado dentro de otro paquete para protegerlo. Desventajas:

ISAKMP: Es un procedimiento establecer el mecanismo de intercambio de llaves y definir el formato de los mensajes, los cuales serán utilizados para las asociaciones de seguridad.

IKE: Encargado de definir la creación y administración de las llaves para usarlas con los métodos de protección.

Grupo Diffie Hellman: Es utilizado para determinar el tamaño de la llave compartida entre ambos equipos. Cada grupo tiene de Diffie Hellman (DH) representa cierta cantidad de bits, y los grupos van del 1 al 5, 7, 14 y 15. No todos los equipos soportan todos los grupos.

IPSec: IP Security, fue creado para proveer protección a los datos por medio de encriptación, Los algoritmos de encriptación soportados por IPSec son: DES, 3DES, AES. IPSec soporta 1 o 2 tipos de protocolos de seguridad ESP (Puerto 51) y AH (Puerto 50).

Pre Shared key: Permite la autenticación de IKE usando una llave compartida.

Algoritmo Hash: Representa el método de criptografía, el cual puede ser SHA-1 o MD5.

Crypto Map: Mecanismo utilizado para asociar ACLs y los parámetros de IPSec, configurado durante la Fase 2.

 

Fase 1: También conocido como ISAKMP/IKE Fase 1, es básicamente el proceso de administración de la VPN donde se verifica que se coincida el tipo de autenticación, grupo DH, algoritmo de encriptación, el hash, lifetime, etc. en los peers de VPN. En esta fase no se transmite ningún tipo de tráfico de usuarios.

Aquí es donde se define la el perfil y la llave.

 

Fase 2: También conocido como ISAKMP/IKE Fase 2, es básicamente utilizado para negociar y establecer un túnel IPSec, una vez establecido el tráfico de los usuarios fluye a través de la VPN.

 

PASOS PARA CREAR UNA VPN SITIO A SITIO

 

 

Fase 1

Basados en el diagrama mostrado anteriormente, procederemos a crear la fase 1:

  • Creamos un perfil ISAKMP en los router R1 y R2

 

R1(config)#  crypto isakmp policy 1

R1(config-isakmp)# encr 3des
R1(config-isakmp)# hash md5
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 2
R1(config-isakmp)# lifetime 86400

Los comandos anteriores definen lo siguiente (en el orden indicado):

3DES – El método de cifrado que se utilizará para la Fase 1.
MD5 – El algoritmo de hashing
Pre-share – Utiliza clave precompartida como método de autenticación
Grupo 2 – Grupo Diffie-Hellman a utilizar
86400 – Tiempo de la clave de sesión. Se expresa en kilobytes (después de x-cantidad de tráfico, cambie la clave) o segundos. El valor establecido es el valor predeterminado.

Debemos tener en cuenta que la política ISAKMP Fase 1 se define globalmente. Esto significa que si tenemos cinco sitios remotos diferentes y hemos configurado cinco diferentes políticas ISAKMP Phase 1 (una para cada enrutador remoto), cuando nuestro enrutador intente negociar un túnel VPN con cada sitio, enviará las cinco políticas y usará el primer es aceptada por ambos extremos.

  • Creamos la llave (que será “seaccna”) y asignamos la dirección IP del peer con el cual se compartirá, podemos colocar 0.0.0.0 en la dirección, el cual representa que se puede intercambiar con cualquier peer.

 

R1(config)# crypto isakmp key seaccna address 1.1.1.2

La clave precompartida de los pares está establecida en seaccna y su dirección IP pública es 1.1.1.2. Cada vez que R1 intenta establecer un túnel VPN con R2 (1.1.1.2), se utilizará esta clave previamente compartida.

Fase 2

Una vez finalizada la configuración para la Fase 1 procederemos con la configuración de la Fase 2, esta involucra:

– Creación de las ACLs para habilitar la comunicación necesaria.
– Configurar los parámetros de encriptación y encapsulamiento de IPSec.
– Creamos un crypto map para asociar la información de IPSec y la ACL.

ACL

El siguiente paso es crear una lista de acceso y definir el tráfico que nos gustaría que el enrutador pasara a través del túnel VPN. En este ejemplo, sería el tráfico de una red a la otra, 10.10.10.0/24 a 20.20.20.0/24. Las listas de acceso que definen el tráfico VPN a veces se denominan lista de acceso criptográfica o lista de acceso de tráfico interesante.

R1(config)# ip access-list extended VPN-TRAFFIC
R1(config-ext-nacl)# permit ip 10.10.10.0 0.0.0.255 20.20.20.0 0.0.0.255

Configuramos los parámetros de IPSec: El siguiente paso es crear el “transform set” utilizado para proteger sus datos. Hemos llamado a este TS.

R1(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac

El comando anterior define lo siguiente:

– ESP-3DES – Método de cifrado
– MD5 – Algoritmo de hash

Ahora creamos el crypto map para asociar nuestros parámetros de la Fase 2:

R1(config)# crypto map CMAP 10 ipsec-isakmp

R1(config-crypto-map)# set peer 1.1.1.2
R1(config-crypto-map)# set transform-set TS
R1(config-crypto-map)# match address VPN-TRAFFIC
Hemos llamado a nuestro mapa de criptografía CMAP. La etiqueta ipsec-isakmp indica al enrutador que este mapa de cifrado es un mapa de cifrado de IPsec. Aunque sólo hay un par declarado en este mapa criptográfico (1.1.1.2), es posible tener varios pares dentro de un mapa criptográfico dado.

 

En el caso que se tengan múltiples proveedores, se puede utilizar el comando crypto map <nombre del crypto map> local-address <usualmente una dirección publica o en ciertos casos loopbacks>, en nuestro caso no utilizaremos el comando ya que no tenemos múltiples conexiones.

Una vez creado los crypto maps los asociamos a las interfaces que conectan a nuestros proveedores, utlizando el comando crypto map <nombre del crypto map>

R1(config)# interface FastEthernet0/1
R1(config- if)# crypto map CMAP

Tenga en cuenta que sólo puede asignar un mapa de cifrado a una interfaz.

Tan pronto como aplicamos el mapa criptográfico en la interfaz, recibimos un mensaje del router que confirma que isakmp está activado: “ISAKMP está activado”.

En este punto, hemos completado la configuración IPSec VPN en el enrutador Site 1.

Ahora nos trasladamos al enrutador Site 2 para completar la configuración VPN. Los ajustes para el Router 2 son idénticos, con la única diferencia de ser las direcciones IP pares y las listas de acceso:

R2(config)# crypto isakmp policy 1

R2(config-isakmp)# encr 3des
R2(config-isakmp)# hash md5
R2(config-isakmp)# authentication pre-share
R2(config-isakmp)# group 2

R2(config-isakmp)# lifetime 86400

 

R2(config)# crypto isakmp key seaccna address 1.1.1.1
R2(config)# ip access-list extended VPN-TRAFFIC
R2(config-ext-nacl)# permit ip 20.20.20.0 0.0.0.255 10.10.10.0 0.0.0.255

 

R2(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac
R2(config)# crypto map CMAP 10 ipsec-isakmp
R2(config-crypto-map)# set peer 1.1.1.1
R2(config-crypto-map)# set transform-set TS

R2(config-crypto-map)# match address VPN-TRAFFIC

 

R2(config)# interface FastEthernet0/1
R2(config- if)# crypto map CMAP

 

TRADUCCIÓN DE DIRECCIÓN DE RED (NAT) Y TÚNELES IPSEC VPN

Es más probable que la traducción de direcciones de red (NAT) esté configurada para proporcionar acceso a Internet a los hosts internos. Al configurar un túnel VPN de sitio a sitio, es imprescindible indicar al router que no realice NAT (denegar NAT) en paquetes destinados a la (s) red (es) VPN remota.

Esto se hace fácilmente insertando una instrucción de denegación al principio de las listas de acceso NAT como se muestra a continuación:

Para el enrutador del Sitio 1:

R1(config)# ip nat inside source list 100 interface fastethernet0/1 overload

R1(config)# access-list 100 remark -=[Define NAT Service]=-
R1(config)# access-list 100 deny ip 10.10.10.0 0.0.0.255 20.20.20.0 0.0.0.255
R1(config)# access-list 100 permit ip 10.10.10.0 0.0.0.255 any
R1(config)# access-list 100 remark
Para el enrutador del Sitio 2:

R2(config)# ip nat inside source list 100 interface fastethernet0/1 overload

R2(config)# access-list 100 remark -=[Define NAT Service]=-
R2(config)# access-list 100 deny ip 20.20.20.0 0.0.0.255 10.10.10.0  0.0.0.255
R2(config)# access-list 100 permit ip 20.20.20.0 0.0.0.255 any
R2(config)# access-list 100 remark

Ok, hemos finalizado la configuración de la VPN, pero solo podremos observar el funcionamiento si existe trafico interesante (interesting traffic en inglés), esto significa que debemos generar tráfico, lo más fácil es haciendo ping entre loopbacks o las redes detrás de los routers.

R1# ping 20.20.20.1 source fastethernet0/0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.20.20.1, timeout is 2 seconds:
Packet sent with a source address of 10.10.10.1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 44/47/48 ms

Los comandos para verificar la fase 1 y 2 son respectivamente:

Comandos de verificación

show crypto session

R1# show crypto session

Crypto session current status
Interface: FastEthernet0/1
Session status: UP-ACTIVE
Peer: 1.1.1.2 port 500
  IKE SA: local 1.1.1.1/500 remote 1.1.1.2/500 Active
  IPSEC FLOW: permit ip 10.10.10.0/255.255.255.0 20.20.20.0/255.255.255.0
        Active SAs: 2, origin: crypto map
Intenta ejecutando ahora:

show crypto isakmp sa

show crypto ipsec sa

Éxito!!!

firewall.cx

 

 

 

Comments

comments