Configuración VPN IPsec en routers Cisco (con preshared keys)

En este artículo voy a explicar cómo configurar una VPN entre routers (y en general, cualquier equipo que incluya en su IOS el módulo de criptografía) de la marca Cisco.

No voy a entrar en detalles en este artículo sobre qué es una VPN, qué pasos son necesarios para una VPN IPsec, etc. (es posible que en algún artículo posterior lo haga).

Aquí, lo que voy a mostrar, es la secuencia de pasos a seguir para configurar una VPN IPsec entre equipos Cisco. Primero veremos los pasos necesarios para configurar la parte concerniente a IKE y luego los correspondientes a la parte IPsec propiamente dicha.

1.- IKE

1.1.- Asegurarse de que las listas de acceso permiten el tráfico del puerto UDP 500, que es el que usa IKE para negociar.

1.2.- Definir la política IKE (hay que definir una como mínimo -se pueden definir más; se usará la que coincida con la definida en el otro extremo-). Para ello hay que definir 5 parámetros:

1.2.1.- El tiempo de vida de la conexión IKE.
1.2.2.- El algoritmo hash, el algoritmo de cifrado.
1.2.3.- El método de autenticación.
1.2.4.- El identificador de grupo.
1.2.5.- Diffie-Hellman (que puede ser 1 -768 bits- ó 2 -1024 bits).

No es necesario definir explícitamente todos los parámetros. En este caso, los valores que no declaramos específicamente los toma de los valores por defecto (que para la mayoría de los casos nos pueden valer perfectamente). Ejemplo:

# crypto isakmp policy PRIORIDAD
 hash md5
 authentication pre-share
 lifetime 28800

donde PRIORIDAD es un número. Es la prioridad que le damos a la política IKE. Si definimos varias, querremos que primero se pruebe una, si no puede ser (no la tiene el otro extremo) que se pruebe otra, y así sucesivamente.

1.3.- Definir la identidad (ISAKMP) del peer:

# crypto isakmp identity (DIRECCION_IP | NOMBRE_HOST)

Es opcional. Si no la ponemos, por defecto coge la
IP. Lo normal es no ponerlo y que coja la IP.

1.4.- Configuración de las claves precompartidas (preshared keys).

# crypto isakmp key CLAVE address DIRECCION_IP

2.- IPsec

2.1.- Asegurarse de que las listas de acceso permiten el paso
de los protocolos 50 y 51, que son los que usa IPSec.

2.2.- Definir el tiempo de vida de las asociaciones de seguridad.

# crypto ipsec security-association lifetime seconds SEGUNDOS

o bien

# crypto ipsec security-association lifetime kilobytes KILOBYTES

Podemos omitir este paso. En tal caso, usará los valores
que tiene definidos por defecto.

2.3.- Creación de lista de acceso criptográfica. Especifica
qué tráfico debe enviarse cifrado con IPSec:

# access-list NUMERO_LISTA_ACCESO (deny | permit) protocolo...

o bien

# ip access-list extended NOMBRE

(En un artículo posterior hablaré de cómo configurar listas de acceso en routers Cisco).

2.4.- Definición del conjunto de transformadas

# crypto ipsec transform-set NOMBRE_CONJUNTO_TRANSFORMADAS transformada1 [transformada2... mode (tunnel | transport)

Poner lo de mode es opcional. Por defecto es modo tunnel.

2.5.- Definición de entradas del mapa criptográfico

# crypto map NOMBRE_MAP NUM_SEC ipsec-isakmp
 match address ID_LISTA_ACCESO
 set peer (NOMBRE_HOST | DIRECCION_IP)
 set transform-set NOMBRE_CONJUNTO_TRANSFORMADAS1 [NOMBRE_CONJUNTO_TRANSFORMADAS2...]
 [set security-association lifetime seconds SEGUNDOS ] o bien
 [set security-association lifetime kilobytes KILOBYTES ]

La orden «match…» sirve para indicar la lista de
acceso donde se especifica el tráfico «interesante».

La orden «set peer…» indica el peer con el que nos
vamos a comunicar. Podemos poner tantos como queramos.

La orden «set transform-set…» especifica el conjunto
(o conjuntos) de transformadas a usar.

La orden «set security-association…» especifica vidas
de SA diferentes a las especificadas en el modo de
configuración global (definidas en el paso 2.2). Este
paso es opcional.
2.6.- Aplicación de los conjuntos de mapas criptográficos a interfaces.

Router (config-if)# crypto map NOMBRE_MAP

Espero que os sea útil.