Product SiteDocumentation Site

2.7.7.2. Configuración manual de una conexión IPsec de tipo red-a-red.

Suponga que LAN A (lana.ejemplo.com) y LAN B (lanb.ejemplo.com) quieren conectarse entre ellas mediante un túnel IPsec. La dirección de red para LAN A está en el rango 192.168.1.0/24. mientras qye LAN B utiliza el rango 192.168.2.0/24. La dirección IP de la puerta de enlace es 192.1686.1.254 para LAN A y 192.168.2.254 para LAN B. Los enrutadores IPsec están separados de cada puerta de enlace LAN y utilizan dos dispositivos de red: eth0 está asignado a una dirección IP estática accesible desde el exterior que tiene acceso a Internet, mientras eth1 actúa como un punto de enrutamiento para procesar y transmitir los paquetes LAN de un nodo de red a otro.
La conexión IPsec entre cada red utiliza una clave pre-compartida con el valor de r3dh4tl1nux, y los administradores de A y B están de acuerdo en permitir que racoon genere automáticamente y comparta una clave de autenticación entre cada enrutador IPsec. El administrador de LAN A decide identificar a la conexión IPsec como ipsec0, mientras que el administrador de LAN B decide identificarla como ipsec1.
El siguiente ejemplo muestra los contenidos del archivo ifcfg para una conexión IPsec de tipo red-a-red para LAN A. El único nombre para identificar la conexión en este ejemplo es ipsec0, de modo que el archivo resultante es /etc/sysconfig/network-scripts/ifcfg-ipsec0.
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.1.254
DSTGW=192.168.2.254
SRCNET=192.168.1.0/24
DSTNET=192.168.2.0/24
DST=X.X.X.X
La siguiente lista describe los contenidos de este archivo:
TYPE=IPSEC
Especifica el tipo de conexión.
ONBOOT=yes
Indica que la conexión debería iniciarse en el arranque.
IKE_METHOD=PSK
Indica que la conexión utiliza el método de clave pre-compartida para su autenticación.
SRCGW=192.168.1.254
La dirección IP de la puerta de enlace origen. Para LAN A, es la puerta de enlace de LAN A, y para LAN B, la puerta de enlace LAN B.
DSTGW=192.168.2.254
La dirección IP de la puerta de enlace destino. Para LAN A, es la puerta de enlace de LAN B, y para LAN B, la puerta de enlace de LAN A.
SRCNET=192.168.1.0/24
Indica la red de origen para la conexión IPsec, que en nuestro ejemplo es el rango de red para LAN A.
DSTNET=192.168.2.0/24
Indica la red destino para la conexión IPsec, que en nuestro ejemplo, es el rango de red para LAN B.
DST=X.X.X.X
La dirección IP accesible desde el exterior de LAN B.
El siguiente ejemplo es el contenido del archivo de clave pre-compartida denominado /etc/sysconfig/network-scripts/keys-ipsecX (donde X es 0 para LAN A, y 1 para LAN B), que utilizan ambas redes para autenticarse entre ellas. Los contenidos de este archivo deberían ser idénticos y solo el usuario root debería ser capaz de leer o escribir sobre este archivo.
IKE_PSK=r3dh4tl1nux

Importante

Para modificar el arhivo keys-ipsecX de modo que solo el usuario root pueda leerlo o editarlo, utilice el siguiente comando luego de haberlo creado:
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
Para modificar la clave de autenticación en cualquier momento, edite el archivo keys-ipsecX en ambos enrutadores IPsec. Ambas claves deben ser idénticas para una conexión correcta.
En el siguiente ejemplo se muestran los contenidos del archivo de configuración /etc/racoon/racoon.conf para la conexión IPsec. Fíjese que la línea include al final del archivo es generada automáticamente y solo aparece si el tunel IPsec está ejecutándose.
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
  
sainfo anonymous
{
        pfs_group 2;
        lifetime time 1 hour ;
        encryption_algorithm 3des, blowfish 448, rijndael ;
        authentication_algorithm hmac_sha1, hmac_md5 ;
        compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf"
La siguiente es la configuración específica para la conexión con la red remota. El archivo es denominado X.X.X.X.conf (donde X.X.X.X es la dirección IP del enrutador IPsec remoto). Fíjese que este archivo es automáticamente generado cuando el túnel IPsec es activado y no debería ser editado directamente.
remote X.X.X.X{
        exchange_mode aggressive, main;
        my_identifier address;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2 ;
        }
}
Antes de empezar la conexión IPsec, debería ser habilitado el reenvío de IP en el kernel. Para hacerlo:
  1. Edite el archivo /etc/sysctl.conf y establezca net.ipv4.ip_forward a 1.
  2. Use el siguiente comando para habilitar los cambios:
    [root@myServer ~] # sysctl -p /etc/sysctl.conf
    
Para iniciar la conexión IPsec, utilice el siguiente comando en cada enrutador:
[root@myServer ~] # /sbin/ifup ipsec0
Las conexiones están activas, y tanto LAN A como LAN B son capaces de comunicarse entre ellas. Las rutas fueron creadas automáticamente mediante la inicialización de un programa que fue activado al ejecutarse ifup en la conexión IPsec. Para mostrar una lista de rutas para la red, utilice el siguiente comando:
[root@myServer ~] # /sbin/ip route list
Para verificar la conexión IPsec, ejecute la herramienta tcpdump en el dispositivo enrutable externamente (en nuestro ejemplo, eth0) para ver los paquetes de red que están siendo transferidos entre los equipos (o redes) y verifique que estén encriptados mediante IPsec. Por ejemplo, para verificar la conectividad IPsec de LAN A, utilice el siguiente comando:
[root@myServer ~] # tcpdump -n -i eth0 host lana.ejemplo.com
El paquete debería incluir un encabezado AH y debería mostrarse como paquetes ESP. ESP significa que está encriptado. Por ejemplo (las líneas invertidas indican que la línea continúa):
12:24:26.155529 lanb.ejemplo.com > lana.ejemplo.com: AH(spi=0x021c9834,seq=0x358): \
        lanb.ejemplo.com > lana.ejemplo.com: ESP(spi=0x00c887ad,seq=0x358) (DF) \
        (ipip-proto-4)