OpenSwan: Conectando contra un Cisco ASA de la Serie 5500 con IPSec

Imagen de iknaxio
AdjuntoTamaño
Image icon Esquema-red-openswan.png24.63 KB

Tema: 

Nota de Descargo:
La siguiente entrada está basada en unas Notas que tomé durante una Implementación VPN con IPSec, por lo que el nombre de Tutorial sería demasiado ostentoso :P

Las configuraciones son realizadas en un CentOS 5.7, usando el paquete OpenSwan 2.6 con Claves Pre-Compartidas (PSK).

Escenario:
Un partner de Filadelfia solicita establecer una VPN con nosotros por lo que me envia una hoja de configuración que contiene la siguiente información:

Gateway: Cisco ASA 5510, IOS 8.2
IP Address: 66.x.y.45

Propiedades del Tunel
Fase 1:
Authentication: Pre-Shared key
Key: GYEFiladelfia2012
Encryption Protocol: IPSEC
Diffie-Hellman Group: Group 2
Encryption Algorithm: 3DES
Hashing Algorithm: SHA1
Mode (Main o Aggressive): Main Mode
Lifetime: 86400

Fase 2:
Encapsulation (ESP o AH): ESP
Encryption Algorithm: 3DES
Authentication Algorithm: SHA1
Perfect Forward Secrecy (PFS) or DH: Disabled
Lifetime: 3600 seconds

Tenía experiencia previa en establecer VPN pero usando OpenVPN, por lo que me tocó documentarme primeramente como trabajar con IPSec bajo Linux, descubrí que necesitaba usar OpenSwan, busqué tutoriales en internet, pero también caí en cuenta de que para implementar cualquier cosa se tiene primero que tener en claro los conceptos de la tecnología a usar, de nada sirven los tutoriales sino se conoce como funcionan las cosas, así que tocó leer ;)

Una vez que ya estaba mejor informado diagramé mi esquema de red:

De donde se detalla:

Guayaquil:

  • 10.10.56.16: Cliente desde donde se va acceder a Filadelfia.
  • 10.10.56.1: IP de la Interfaz del FW a la Red de Producción
  • 10.10.36.1: IP de la Interfaz del FW a la DMZ
  • 10.10.36.10: Servidor VPN con CentOS 5.7 que se encuentra dentro de una DMZ y cuya IP pública es 200.x.y.10

Philadelphia:

  • 66.x.y.45: Servidor VPN implementado en un equipo Cisco ASA 5510
  • 192.168.1.23: Servidor de Aplicaciones

Y me puse manos a la obra:

Instalación del paquete

yum install openswan

Cambiamos algunos parámetros del kernel, entre ellos activamos el bit forward.


nano /etc/sysctl.conf


net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

Aplicamos los cambios en el kernel:


sysctl -p

Editamos el archivo de configuración de IPSec:


nano /etc/ipsec.conf

Y aparte de la configuración general, agregamos la sección respectiva del tunel que en este caso hemos denominado net-filadelfia:


config setup
protostack=netkey
nat_traversal=no
virtual_private=
oe=off
nhelpers=0

conn net-filadelfia
left=10.10.36.10
leftsubnet=10.10.56.16/32
leftnexthop=%defaultroute
right=66.x.y.45
rightsubnet=192.168.1.23/32
rightnexthop=%defaultroute
authby=secret
rekey=yes
keyingtries=5
keyexchange=ike
ike=3des-sha1
ikelifetime=86400s
phase2=esp
phase2alg=3des-sha1;modp1024
keylife=3600s
pfs=no
auto=start

Nota: todas la líneas referentes a una conexión necesitan un tabulado.

El detalle de cada parámetro puede ser revisado, ingresando a la página de manual respectiva:


man ipsec.conf

Editamos el archivo que almacena los 'claves' para la comunicación entre los servidores VPN:


nano /etc/ipsec.d/net-filadelfia.secrets

Y colocamos el host origen, el host destino y la clave pre-compartida que utilizarán para comunicarse.


10.10.36.10 66.x.y.45 : PSK "GYEFiladelfia2012"

  • Configuración en Firewall
    Para permitir el flujo de tráfico a través del FW de Guayaquil, tuve que realizar la siguiente configuración adicional:

    • Rutas:
      Se debe agregar una ruta para que todo el tráfico que tenga como destino el host 192.168.1.23 tenga como gateway la 10.10.36.10
    • Reglas:
      Se debe agregar reglas para que los 2 Servidores VPN (CentOS/OpenSwan y Cisco/ASA) intercambien tráfico por el puerto 50 de ESP y UDP 500 para IKE. Y para que el cliente en Guayaquil acceda a los puertos específicos del Servidor de Aplicaciones de Filadelfia.

Finalmente Iniciamos el Servicio:


service ipsec start

Los logs pueden ser revisados en:


tail -f /var/log/secure
tail -f /var/log/messages

Para comprobar que todo va bien:


ipsec verify
ipsec auto --status

Como se pueden crear varios túneles, también existe la manera de subir/bajar dichos túneles bajo demanda:

Para subir un túnel:

ipsec auto --up net-filadelfia

Para bajar un túnel:

ipsec auto --down net-filadelfia

Finalmente, algunas pruebas de conectividad que realice:

ping 66.x.y.45
traceroute 192.168.1.23
tcpdump -i eth0 | grep 192.168.1.23

Espero que les sea de utilidad ;).

Referencias:

Comentarios

Instalacion del Openswan

Amigo instale el Openswan en ubuntu, pero nunca logre que funcione :S siempre me daba error, nunca levantaba el tunel,
estoy bajando centOS me imagino que existe una gran diferencia entre ubuntu y centOS sera por eso que no lo levante?

E leeido varias configuraciones se debe instalar ipsec tool? o algun otro paquete?
la otra pregunta es:

cuando dices:

Cambiamos algunos parámetros del kernel, entre ellos activamos el bit forward.
nano /etc/sysctl.conf

esa parte nunca la pude hacer me meti en la configuracion pero por ningun lado vi el bit forward, que valor le pongo al bit forward :S

Saludos y gracias