En el artículo de hoy vamos a explicar cómo configurar una VPN
(Virtual Private Network) Site To Site en
Cisco IOS.
Primeramente, ¿qué es un VPN?
Una VPN es
una conexión virtual entre dos dispositivos que permite el envío de
información de manera segura a través de un medio inseguro como lo es Internet.
Con una
VPN podemos desarrollar toda una infraestructura de red
WAN (Wide Area Network) de forma más rápida y económica en comparación con la contratación del servicio de línea de fijas
Frame Relay,
ATM u otro tipo de tecnologías.
Nuestra configuración de
VPN Site to Site es realizada utilizando el protocolo
IPSec (Internet Protocol Security).
IPSec es un protocolo de capa 3 del modelo OSI que permite desarrollar
VPNs brindando las siguientes ventajas:
- Confidentiality
- Data integrity
- Authentication
Confidentiality (confidencialidad) significa que la información enviada a través del VPN no
podrá ser leída por un usuario o dispositivo tercero que no participe
en la comunicación. En otras palabras, la información enviada por la
VPN
no podrá se accedida por ninguna entidad no autorizada. La
confidencialidad se logra en la práctica a través de la implementación
de técnicas de cifrado de datos. Para los no entendidos en la materia,
el cifrado de información logra convertir un texto original en un
formato no entendible (texto cifrado) para todo aquel que no conozca:
(1) el algoritmo de cifrado y (2) la llave secreta. En
IPSec podemos implementar cifrado de datos utilizando algoritmos simétricos tales como
3DES y
AES.
Data integrity (Integridad de la información) significa que la información enviada entre dos dispositivos en una VPN debe de llegar tal cual fue enviada por el dispositivo emisor. En otras palabras,
IPSec garantiza
que la información, mientras esté en tránsito, no será modificada
nivalterada. La integridad de la información en la práctica se logra a
través de la implementación de técnicas de
Hashing. Un
Hash
es una función matemática que no tiene inversa, por lo tanto, va partir
del resultado no es posible —matemáticamente hablando — conseguir la
información original. En
IPSec podemos implementar
Hashing utilizando algoritmos tales como
MD5,
SHA-1 y
SHA-2.
Authentication (Autenticación) consiste en establecer
mecanismos de seguridad para validar la identidad de los dispositivos
envueltos en la transmisión de información a través de una VPN. En
IPSec tenemos la opción utilizar diferentes mecanismos de autenticación como son: (1)
Pre-share Key y (2)
Digital Signature.
En la práctica, la implementación de
IPSec como protocolo de
VPN no es muy
user-friendly. Requiere
a priori un entendimiento muy detallado por parte del ingeniero de la
intríngulis técnica de este protocolo que, de por sí, es complejo.
Una
VPN IPSec requiere del establecimiento de dos túneles. El primero llamado
IKE Phase 1 (Internet Key Exchange Fase 1) que es utilizado para que los
routers
se comuniquen directamente entre ellos. Este túnel no es utilizado para
el envío de paquetes IP de los usuarios, sino más bien, para el
intercambio información de control. Para que el túnel
IKE Phase 1 pueda establecerse con éxito, ambos
routers deben de estar de acuerdo en las siguientes variables:
- Hash algorithm
- Encryption algorithm
- Diffie-Hellman DH group
- Authentication method
- Lifetime
Después que ambos
routers agotan con éxito la primera fase del
IPSec —
IKE Phase 1 —, sí y solo sí se establece la segunda fase —
IKE Phase 2 — donde se establece el túnel por donde viaja la información de los usuarios de manera encriptada.
Entonces teniendo como trasfondo la información anterior, vamos a explicar cómo podemos configurar una VPN Site to Site entre dos routers Cisco utilizando IPSec.
Para
hacer el proceso de configuración un poco más fácil de entender, vamos a
dividir el proceso de configuración en dos etapas: (1)
ISAKMP 1; (2)
ISAKMP 2 tanto para
R1 como para
R2. A los túneles
IKE también se les llama
ISAKMP.
Vamos a comenzar con la configuración de
R1.
IKE ISAKMP Phase 1
Paso 1: configuración de ISAKMP Policy.
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
Paso 2: definir la contraseña a utilizar entre los R1 y R2 como pre-share key.
R1(config)#crypto isakmp key cisco address 1.1.1.2
Paso 3: configuración de ACL
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
IKE ISAKMP Phase 2
Paso 4: configurando IPSec Transform
R1(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac
Paso 5: configuración de CRYPTO MAP
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
Paso 6: aplicando Crypto MAP a una interface pública
R1(config)# interface Fastethernet 0/1
R1(config-if)#crypto map CMAP
El mismo procedimiento de configuración que aplicamos a
R1 lo hacemos en
R2 con ciertas modificaciones en cuanto a las direcciones IP.
Vamos a comenzar con la configuración de
R2.
IKE ISAKMP Phase 1
Paso 1: configuración de ISAKMP Policy.
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
Paso 2: definir la contraseña a utilizer entre los R1 y R2 como pre-share key.
R2(config)#crypto isakmp key cisco address 1.1.1.1
Paso 3: configuración de ACL
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
IKE ISAKMP Phase 2
Paso 4: configurando IPSec Transform
R2(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac
Paso 5: configuración de CRYPTO MAP
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
Paso 6: aplicando Crypto MAP a una interface pública
R2(config)# interface Fastethernet 0/1
R2(config-if)#crypto map CMAP
Al aplicar esta configuración en
R1 y
R2 una
VPN IPSec debe de funcionar perfectamente. Para comprobar que los paquetes IP provenientes de ambas redes
LAN se envían a través del
VPN debemos de ejecutar los siguientes comandos.
R1#ping 20.20.20.1 source FastEthernet 0/0
R1#show crypto session
Ahora en
R2:
R2#ping 10.10.10.1 source FastEthernet 0/0
R2#show crypto session
Tomado de: http://blog.capacityacademy.com/2014/09/12/ccna-security-como-configurar-vpn-ipsec-site-to-site-en-cisco-router/