Friday, September 13, 2013

Site to Site IPSec VPN entre dos Routers Cisco


En la siguiente guía practica vamos a implementar una VPN IPSec Site to Site con la finalidad de comunicar dos localidades a través de la Red Publica (Internet) utilizando dos Routers con Cisco IOS. Esta pequeña guia esta limitada a describir el procedimiento basico a llevar a cabo para lograr el objetivo planteado, por lo cual no me detendre a explicar nada teorico en detalle.

En el siguiente escenario podemos observar que tenemos dos oficinas las cuales queremos interconectar a través de Internet por medio de un Tunnel IPSec:

Click en Imagen para Ampliar


A continuación les dejo la configuración inicial de cada Router:

Central_Office:

  interface fastethernet0/0
   ip address 200.192.1.2 255.255.255.0
   duplex auto
   speed auto

  interface fastethernet0/1
   ip address 192.168.1.1 255.255.255.0
   duplex auto
   speed auto

  ip route 0.0.0.0 0.0.0.0 200.192.1.1

Branch_Office:

   interface fastethernet0/0
    ip address 200.192.2.2 255.255.255.0
    duplex auto
    speed auto

   interface fastethernet0/1
    ip address 192.168.2.1 255.255.255.0
    duplex auto
    speed auto

  ip route 0.0.0.0 0.0.0.0 200.192.2.1

Teniendo esta configuración basica y teniendo comunicación entre Central_Office y Brach_Office a través de las interfaces que van a Internet, procedemos a lograr nuestro objetivo empezando por configurar las politicas IKE (Internet Key Exchange) con el comando "crypto isakmp policy" seguido de el numero de prioridad.

    Central_Office(config)# crypto isakmp policy 10
    Central_Office(config-isakmp)# authentication pre-share
    Central_Office(config-isakmp)#encryption aes
    Central_Office(config-isakmp)#hash sha
    Central_Office(config-isakmp)# group 2

Con estos comandos estamos definiendo una politica con prioridad 10, la cual utilizara el metodo de autenticación "pre-share", el cifrado por aes, el hash en sha, y el Diffie-Hellman group en 2. Por defecto tomará para cifrado "des", para hash "sha" y el Diffie-Hellman group en 1.

Como nuestro metodo de autenticación fue "pre-share" debemos especificar la clave compartida y la IP del Router Remoto con el cual vamos a compartir la llave, en nuestro caso:

    Central_Office(config)# crypto isakmp key 0 VPNpuntoLibre123 address 200.192.2.2

Luego procedemos a crear el Transform Set, el cual define las politicas de seguridad que seran aplicadas al trafico entrando o saliente de la interfaz:

     Central_Office(config)# crypto ipsec transform-set TFPuntoLibre esp-aes esp-sha-hmac

Luego definimos una lista de acceso que va a definir el trafico que se va a cifrar con IPSec, en pocas palabras vamos a definir el trafico desde nuestra Red Local hacia la Red Local de la oficina Remota, en nuestro caso:

     Central_Office(config)# access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

Teniendo esto listo creamos nuestro Crypto Map con un numero de prioridad y metodo de manejo de llaves, y en el especificamos la lista de acceso, el router remoto, y nuestro transform-set:

     Central_Office(config)# crypto map MyCryptoMap1 10 ipsec-isakmp
     Central_Office(config-crypto-map)# match address 100
     Central_Office(config-crypto-map)# set peer 200.2.2
     Central_Office(config-crypto-map)#  set transform-set TFPuntoLibre

Ahora solo bastaria con asignarle el Crypto Map a la interfaz que va a Internet:

     Central_Office(config)# interface fastethernet 0/0
     Central_Office(config-if)# crypto map MyCryptoMap1

Finalmente realizamos el mismo procedimiento en el Router remoto cambiando la dirección del Peer en el Crypto Map y al momento de especificar la llave compartida, como tambien cambiar el orden del Access List. La configuración quedaria de la siguiente manera:

Central_Office:

  interface fastethernet0/0
   ip address 200.192.1.2 255.255.255.0
   duplex auto
   speed auto

  interface fastethernet0/1
   ip address 192.168.1.1 255.255.255.0
   duplex auto
   speed auto

  ip route 0.0.0.0 0.0.0.0 200.192.1.1

  crypto isakmp policy 10
     authentication pre-share
     encryption aes
     hash sha
     group 2

  access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

  crypto isakmp key 0 VPNpuntoLibre123 address 200.192.2.2
  crypto ipsec transform-set TFPuntoLibre esp-aes esp-sha-hmac
  crypto map MyCryptoMap1 10 ipsec-isakmp
  match address 100
  set peer 200.192.2.2
  set transform-set TFPuntoLibre

Branch_Office:

   interface fastethernet0/0
    ip address 200.192.2.2 255.255.255.0
    duplex auto
    speed auto

   interface fastethernet0/1
    ip address 192.168.2.1 255.255.255.0
    duplex auto
    speed auto

  ip route 0.0.0.0 0.0.0.0 200.192.2.1

  crypto isakmp policy 10
     authentication pre-share
     encryption aes
     hash sha
     group 2

  access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

  crypto isakmp key 0 VPNpuntoLibre123 address 200.192.1.2
  crypto ipsec transform-set TFPuntoLibre esp-aes esp-sha-hmac
  crypto map MyCryptoMap1 10 ipsec-isakmp
  match address 100
  set peer 200.192.1.2
  set transform-set TFPuntoLibre

Finalmente con el comando "show crypto isakmp sa" verificamos el estado del Tunnel. Si el estado es "ACTIVE" deberiamos tener comunicación entre las dos localidades.

Cualquier duda o inconveniente estamos a las ordenes!

3 comentarios:

Jonathan Montero said...

Interesante man... pero me gustaría que sustituyas la nube por 1 router de cada lado que haga el papel del ISP con NAT... Ya que sabes que aqui en RD y en muchos otros sitios tenemos esos casos... Es mas para ver como manejas el port forwarding de las peticiones de IPSEC..

Ramphis Che said...

Eso es una orden hermano! Voy a preparar el escenario para otro articulo :D

Jonathan Montero said...

:D

Post a Comment