Libreswan

Libreswan es una implementación de IPSec de código abierto basada en FreeS/WAN y Openswan. La mayoría de las distribuciones de Linux incluyen Libreswan o facilitan la instalación. Puede instalarla en hosts de una red local o en una red de proveedor en la nube. Para obtener un ejemplo de configuración de un host Libreswan en otro proveedor en la nube para conectarse a una red virtual en la nube de Oracle Cloud Infrastructure (VCN), consulte Acceso a otras nubes con Libreswan.

En este tema se proporciona la configuración de un CPE que ejecuta Libreswan. La compatibilidad con la interfaz de túnel virtual (VTI) para esta configuración basada en rutas requiere como mínimo la versión 3.18 de Libreswan y un núcleo reciente de Linux 3.x o 4.x. Esta configuración se validó con la versión 3.29 de Libreswan.

Importante

Oracle proporciona instrucciones de configuración para un conjunto probado de proveedores y dispositivos. Utilice la configuración correcta para el proveedor y la versión de software.

Si el dispositivo o la versión de software que Oracle utiliza para verificar que la configuración no coincide exactamente con el dispositivo o el software, puede crear la configuración necesaria en el dispositivo. Consulte la documentación del proveedor y realice los cambios necesarios.

Si el dispositivo proviene de un proveedor que no está en la lista de proveedores y dispositivos verificados o si ya está familiarizado con la configuración del dispositivo para IPSec, consulte la lista de parámetros admitidos de IPSec y consulte la documentación del proveedor para obtener ayuda.

Oracle Cloud Infrastructure ofrece una VPN de sitio a sitio, una conexión IPSec segura entre una red local y una red virtual en la nube (VCN).

El siguiente diagrama muestra una conexión básica de IPSec con Oracle Cloud Infrastructure con túneles redundantes. Las direcciones IP utilizadas en este diagrama son solo ejemplos.

En esta imagen se resume el diseño general de una red local, los túneles de VPN de sitio a sitio IPSec y la VCN.

Mejores prácticas

En esta sección se tratan las mejores prácticas y consideraciones generales para utilizar la VPN de sitio a sitio.

Configuración de todos los túneles para cada conexión de IPSec

Oracle despliega dos cabeceras IPSec para conexiones a fin de proporcionar alta disponibilidad para cargas de trabajo esenciales. En el lado de Oracle, estos dos extremos están en enrutadores diferentes para fines de redundancia. Recomendamos configurar todos los túneles disponibles para obtener la máxima redundancia. Esta es una parte clave de la filosofía "Diseño para fallo".

Disponibilidad de CPE redundantes en ubicaciones de redes locales

Recomendamos que cada sitio que se conecte con IPSec a Oracle Cloud Infrastructure tenga dispositivos perimetrales redundantes (también conocidos como equipos locales de cliente [CPE]). Agregue cada CPE a la consola de Oracle y cree una conexión IPSec independiente entre un gateway de enrutamiento dinámico (DRG) y cada CPE. Para cada conexión de IPSec, Oracle aprovisiona dos túneles en las cabeceras de IPSec geográficamente redundantes. Para obtener más información, consulte la Guía de redundancia de conectividad (PDF).

Consideraciones del protocolo de enrutamiento

Al crear una conexión IPSec de VPN de sitio a sitio, esta tiene dos túneles IPSec redundantes. Oracle recomienda configurar el CPE para que utilice ambos túneles (si el CPE lo soporta). En el pasado Oracle creaba conexiones IPSec con hasta cuatro túneles de IPSec.

Están disponibles los tres tipos siguientes de enrutamiento y puede seleccionar el tipo de enrutamiento por separado para cada túnel de la VPN de sitio a sitio:

  • Enrutamiento dinámico de BGP: las rutas disponibles se aprenden de forma dinámica mediante BGP. DRG obtiene de forma dinámica las rutas de la red local. En el lado de Oracle, DRG anuncia las subredes de la VCN.
  • Envío estático: al configurar la conexión IPSec con DRG, debe especificar las rutas específicas a la red local de la que desea que se conozca la VCN. También debe configurar el dispositivo CPE con rutas estáticas a las subredes de la VCN. Estas rutas no se aprenden dinámicamente.
  • Enrutamiento basado en política: al configurar la conexión IPSec con DRG, debe especificar las rutas específicas a la red local de la que desea que se conozca la VCN. También debe configurar el dispositivo CPE con rutas estáticas a las subredes de la VCN. Estas rutas no se aprenden dinámicamente.

Para obtener más información sobre el enrutamiento con la VPN de sitio a sitio, incluidas las recomendaciones de Oracle sobre cómo manipular el algoritmo de selección de la mejor ruta de acceso de BGP, consulte Envío de la VPN de sitio a sitio.

Otras configuraciones importantes de CPE

Asegúrese de que las listas de acceso de CPE estén configuradas correctamente para no bloquear el tráfico necesario desde o hasta Oracle Cloud Infrastructure.

Si tiene varios túneles activos simultáneamente, puede que experimente un enrutamiento asimétrico. Para tener en cuenta el enrutamiento asimétrico, asegúrese de que el CPE esté configurado para gestionar el tráfico que procede de la VCN en cualquiera de los túneles. Por ejemplo, debe desactivar la inspección ICMP y configurar la omisión del estado TCP. Para obtener más información sobre la configuración adecuada, póngase en contacto con el soporte del proveedor de CPE. Para configurar el enrutamiento para que sea simétrico, consulte Routing for Site-to-Site VPN.

Advertencias y limitaciones

En esta sección se tratan las características y las limitaciones importantes generales de la VPN de sitio a sitio que deben tenerse en cuenta. Consulte la sección Límites de servicio para obtener una lista de límites aplicables e instrucciones para solicitar un aumento del límite.

Enrutamiento asimétrico

Oracle utiliza el enrutamiento asimétrico en los túneles que forman la conexión IPSec. Configure firewalls teniendo esto en cuenta. De lo contrario, las pruebas de ping o el tráfico de aplicaciones a través de la conexión no funcionan de forma fiable.

Al utilizar varios túneles con Oracle Cloud Infrastructure, recomendamos configurar el enrutamiento para enrutar de manera determinista el tráfico a través del túnel preferido. Para utilizar un túnel IPSec como principal y otro como de copia de seguridad, configure más rutas específicas para el túnel principal (BGP) y rutas menos específicas (resumen o ruta predeterminada) para el túnel de copia de seguridad (BGP/static). De lo contrario, si anuncia la misma ruta (por ejemplo, una ruta por defecto) a través de todos los túneles, el tráfico devuelto de una VCN a una red local se enrutará a cualquiera de los túneles disponibles. Esto se debe a que Oracle utiliza el enrutamiento asimétrico.

Para obtener recomendaciones específicas de enrutamiento de Oracle sobre cómo forzar un enrutamiento simétrico, consulte Enrutamiento de la VPN de sitio a sitio.

VPN de sitio a sitio basada en rutas o en políticas

El protocolo IPSec utiliza asociaciones de seguridad (SA) para decidir cómo cifrar los paquetes. Dentro de cada SA, se definen dominios de cifrado para asignar el tipo de protocolo y la dirección IP de origen y destino de un paquete a una entrada de la base de datos de SA para definir cómo cifrar o descifrar un paquete.

Nota

Otros proveedores o documentación del sector pueden utilizar el término ID de servidor proxy, índice de parámetros de seguridad (SPI) o selector de tráfico al hacer referencia a dominios de cifrado o SA.

Existen dos métodos generales para implantar túneles de IPSec:

  • Túneles basados en rutas: también denominados túneles basados en el próximo salto. Se realiza una consulta de tabla de rutas en la dirección IP de destino de un paquete. Si la interfaz de salida de esa ruta es un túnel de IPSec, el paquete se cifra y se envía al otro extremo del túnel.
  • Túneles basados en políticas: la dirección IP de origen y de destino del paquete coincide con una lista de sentencias de política. Si se encuentra una coincidencia, el paquete se cifra según las reglas de esa sentencia de política.

Los extremos de la VPN de sitio a sitio de Oracle utilizan túneles basados en rutas, pero pueden trabajar con túneles basados en políticas con algunas advertencias que se enumeran en las siguientes secciones.

Caveat de Libreswan 3.25

Si un dispositivo CPE utiliza Libreswan 3.25 o una versión anterior e intenta configurar una conexión IKEv1 con un CPE como responsable de respuesta, debe definir explícitamente el parámetro de fase 2 en una configuración CPE para que se active el túnel IPSec. Por ejemplo, con el algoritmo de cifrado recomendado actual AES-256-gcm y PFS group5, debe configurar el parámetro de fase 2 phase2alg="aes_gcm256;modp1536" en el dispositivo CPE.

Este problema no se ve en las versiones posteriores de Libreswan.

Dominio de cifrado para túneles basados en rutas

Si el CPE admite túneles basados en rutas, utilice ese método para configurar el túnel. Esta es la configuración más simple con la mayor interoperabilidad con el encabezado de VPN de Oracle.

IPSec basado en rutas utiliza un dominio de cifrado con los siguientes valores:

  • Dirección IP de origen: cualquiera (0.0.0.0/0)
  • Dirección IP de destino: cualquiera (0.0.0.0/0)
  • Protocolo: IPv4

Si necesita ser más específico, puede utilizar una única ruta de resumen para los valores de dominio de cifrado en lugar de una ruta predeterminada.

Dominio de cifrado para túneles basados en políticas

Al utilizar túneles basados en políticas, cada entrada de política (un bloque de CIDR en un lado de la conexión IPSec) que defina genera una asociación de seguridad (SA) IPSec con cada entrada elegible en el otro extremo del túnel. Este par se conoce como dominio de cifrado.

En este diagrama, el extremo de Oracle DRG del túnel IPSec tiene entradas de política para tres bloques de CIDR IPv4 y un bloque de CIDR IPv6. El extremo de CPE local del túnel tiene entradas de política con dos bloques de CIDR IPv4 y dos bloques de CIDR IPv6. Cada entrada genera un dominio de cifrado con todas las entradas posibles en el otro extremo del túnel. Ambos lados de un par de SA deben usar la misma versión de IP. El resultado es un total de ocho dominios de cifrado.

Diagrama que muestra varios dominios de cifrado y cómo encontrar su número.
Importante

Si el CPE solo soporta túneles basados en políticas, tenga en cuenta las siguientes restricciones.

  • La VPN de sitio a sitio soporta varios dominios de cifrado, pero tiene un límite superior de 50 dominios de cifrado.
  • Si tuvo una situación similar al ejemplo anterior y solo configuró tres de los seis posibles dominios de cifrado IPv4 en el lado del CPE, el enlace se mostraría en el estado "Activo parcial", porque todos los posibles dominios de cifrado siempre se crean en el lado del DRG.
  • En función de cuándo se haya creado un túnel, es posible que no pueda editar un túnel existente para utilizar el enrutamiento basado en políticas y que necesite sustituir el túnel por un nuevo túnel IPSec.
  • Los bloques de CIDR que se utilizan en el extremo de Oracle DRG del túnel no pueden solapar los bloques de CIDR que se utilizan en el extremo del CPE local del túnel.
  • Debe haber siempre un dominio de cifrado entre dos bloques de CIDR de la misma versión IP.

Si el CPE está detrás de un dispositivo NAT

En general, el identificador IKE de CPE configurado en el extremo local de la conexión debe coincidir con el identificador IKE de CPE que utiliza Oracle. De manera predeterminada, Oracle utiliza la dirección IP pública de CPE, que se proporciona al crear el objeto CPE en la consola de Oracle. Sin embargo, si un CPE está detrás de un dispositivo NAT, el identificador IKE de CPE configurado en el extremo local puede ser la dirección IP privada del CPE, como se muestra en el diagrama siguiente.

En esta imagen se muestra el CPE que se encuentra detrás de un dispositivo NAT, las direcciones IP públicas y privadas y el identificador IKE de CPE.
Nota

Algunas plataformas de CPE no permiten cambiar el identificador IKE local. Si no puede, debe cambiar el ID de IKE remoto en la consola de Oracle para que coincida con el ID de IKE local de CPE. Puede proporcionar el valor al configurar la conexión de IPSec o más tarde, editando la conexión de IPSec. Oracle espera que el valor sea una dirección IP o un nombre de dominio completo (FQDN), como cpe.example.com. Para obtener instrucciones, consulte Cambio del identificador IKE de CPE que Oracle utiliza.

Parámetros de IPSec admitidos

Para obtener una lista neutra de proveedores de los parámetros de IPSec admitidos para todas las regiones, consulte Parámetros de IPSec admitidos.

El ASN de BGP de Oracle para el dominio de nube comercial es 31898. Si configura la VPN de sitio a sitio para la nube del Gobierno de EE. UU., consulte Parámetros de VPN de sitio a sitio necesarios para Government Cloud y también ASN de BGP de Oracle. En el caso de la nube del Gobierno del Reino Unido, consulte Regiones.

Configuración de CPE

Importante

Oracle Cloud Infrastructure proporciona las instrucciones de configuración de esta sección para este CPE. Si necesita soporte o ayuda adicional, póngase en contacto directamente con el soporte del proveedor de CPE.

En la siguiente figura se muestra el diseño básico de la conexión de IPSec.

En esta imagen se resume el diseño general de la conexión y los túneles de IPSec.

Archivos de configuración por defecto de Libreswan

La instalación por defecto de Libreswan crea los siguientes archivos:

  • etc/ipsec.conf: raíz de la configuración de Libreswan.
  • /etc/ipsec.secrets: raíz de la ubicación en la que Libreswan busca secrets (las claves del túnel compartidas previamente).
  • /etc/ipsec.d/: directorio para almacenar los archivos .conf y .secrets de los túneles de Oracle Cloud Infrastructure (por ejemplo: oci-ipsec.conf y oci-ipsec.secrets). Libreswan le recomienda crear estos archivos en esta carpeta.

El archivo etc/ipsec.conf por defecto incluye esta línea:

include /etc/ipsec.d/*.conf

El archivo etc/ipsec.secrets por defecto incluye esta línea:

include /etc/ipsec.d/*.secrets

Las líneas anteriores fusionan automáticamente todos los archivos .conf y .secrets del directorio /etc/ipsec.d en los archivos secretos y de configuración principal que utiliza Libreswan.

Acerca del uso de IKEv2

Oracle admite la versión 1 (IKEv1) y la versión 2 (IKEv2) de Internet Key Exchange. Si configura la conexión IPSec en la consola para utilizar IKEv2, debe configurar el CPE para que utilice solo IKEv2 y los parámetros de cifrado IKEv2 relacionados que admite el CPE. Para obtener una lista de los parámetros admitidos por Oracle para IKEv1 o IKEv2, consulte Parámetros de IPSec admitidos.

La versión de IKE se especifica al configurar el archivo de configuración de IPSec en la tarea 3 de la siguiente sección. En ese archivo de ejemplo se muestra un comentario que muestra cómo configurar IKEv1 en comparación con IKEv2.

Proceso de configuración

Libreswan admite túneles basados en políticas y en rutas. Los tipos de túnel pueden coexistir sin interferir entre sí. Las cabeceras de VPN de Oracle utilizan túneles basados en rutas. Recomendamos configurar Libreswan con la sintaxis de configuración de la interfaz de túnel virtual (VTI).

Para obtener más información sobre los parámetros específicos utilizados en este documento, consulte Parámetros de IPSec admitidos.

Tarea 1: Preparar la Instancia de Libreswan

En función de la distribución de Linux que esté utilizando, es posible que necesite activar el reenvío IP en una interfaz para que los clientes puedan enviar y recibir tráfico a través de Libreswan. En el archivo /etc/sysctl.conf, defina los siguientes valores y aplique las actualizaciones con sudo sysctl -p.

Si utiliza una interfaz que no sea eth0, cambie eth0 en el siguiente ejemplo a la interfaz (líneas 5 y 7).

net.ipv4.ip_forward=1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
Tarea 2: Decidir los valores de configuración necesarios

La configuración de Libreswan utiliza las siguientes variables. Decida los valores antes de continuar con la configuración.

  • ${cpeLocalIP}: dirección IP del dispositivo Libreswan.
  • ${cpePublicIpAddress}: dirección IP pública de Libreswan. Esta es la dirección IP de la interfaz externa. Según la topología de red, el valor puede ser diferente de ${cpeLocalIP}.
  • ${oracleHeadend1}: para el primer túnel, el punto final de IP pública de Oracle obtenido de la consola de Oracle.
  • ${oracleHeadend2}: para el segundo túnel, el punto final de IP pública de Oracle obtenido de la consola de Oracle.
  • ${vti1}: nombre de la primera VTI utilizada. Por ejemplo, vti1.
  • ${vti2}: nombre de la segunda VTI utilizada. Por ejemplo, vti2.
  • ${sharedSecret1}: clave compartida previamente para el primer túnel. Puede utilizar la clave compartida previamente y proporcionada por Oracle por defecto o proporcionar una al configurar la conexión IPSec en la consola de Oracle.
  • ${sharedSecret2}: clave compartida previamente para el segundo túnel. Puede utilizar la clave compartida previamente y proporcionada por Oracle por defecto o proporcionar una al configurar la conexión IPSec en la consola de Oracle.
  • ${vcnCidrNetwork}: rango de IP de las VCN.
Tarea 3: Configuración del archivo de configuración

La configuración de Libreswan utiliza el concepto de izquierda y derecha para definir los parámetros de configuración para un dispositivo CPE local y el gateway remoto. Cualquiera de los lados de la conexión (la conexión en la configuración de Libreswan) puede estar a la izquierda o a la derecha, pero la configuración de dicha conexión debe ser coherente. En este ejemplo:

  • izquierda: el CPE local de Libreswan
  • derecha: la cabecera de VPN de Oracle

Utilice la siguiente plantilla para el archivo /etc/ipsec.d/oci-ipsec.conf. El archivo define los dos túneles que crea Oracle al configurar la conexión IPSec.

Importante

Si el CPE está detrás de un dispositivo NAT 1-1, quite el comentario del parámetro leftid y configúrelo igual que ${cpePublicIpAddress}.

conn oracle-tunnel-1
     left=${cpeLocalIP}
     # leftid=${cpePublicIpAddress} # See preceding note about 1-1 NAT device
     right=${oracleHeadend1}
     authby=secret
     leftsubnet=0.0.0.0/0 
     rightsubnet=0.0.0.0/0
     auto=start
     mark=5/0xffffffff # Needs to be unique across all tunnels
     vti-interface=${vti1}
     vti-routing=no
     ikev2=no # To use IKEv2, change to ikev2=insist 
     ike=aes_cbc256-sha2_384;modp1536
     phase2alg=aes_gcm256;modp1536
     encapsulation=yes
     ikelifetime=28800s
     salifetime=3600s
conn oracle-tunnel-2
     left=${cpeLocalIP}
     # leftid=${cpePublicIpAddress} # See preceding note about 1-1 NAT device
     right=${oracleHeadend2}
     authby=secret
     leftsubnet=0.0.0.0/0
     rightsubnet=0.0.0.0/0
     auto=start
     mark=6/0xffffffff # Needs to be unique across all tunnels
     vti-interface=${vti2}
     vti-routing=no
     ikev2=no # To use IKEv2, change to ikev2=insist 
     ike=aes_cbc256-sha2_384;modp1536
     phase2alg=aes_gcm256;modp1536 
     encapsulation=yes
     ikelifetime=28800s
     salifetime=3600s
Tarea 4: Configuración del archivo secrets

Utilice la siguiente plantilla para el archivo /etc/ipsec.d/oci-ipsec.secrets. Contiene dos líneas por conexión IPSec (una línea por túnel).

${cpePublicIpAddress} ${oracleHeadend1}: PSK "${sharedSecret1}"
${cpePublicIpAddress} ${oracleHeadend2}: PSK "${sharedSecret2}"
Tarea 5: reiniciar la configuración de Libreswan

Después de configurar los archivos secret y de configuración, debe reiniciar el servicio Libreswan.

Importante

El reinicio del servicio de Libreswan puede afectar a los túneles existentes.

El siguiente comando vuelve a leer el archivo de configuración y reinicia el servicio de Libreswan.

service ipsec restart
Tarea 6: configurar el enrutamiento IP

Utilice el siguiente comando ip para crear rutas estáticas que envíen tráfico a una VCN a través de los túneles IPSec. Si está conectado con una cuenta de usuario sin privilegios, puede que tenga que utilizar sudo antes del comando.

Importante

Las rutas estáticas creadas con el comando ip route no persisten durante un reinicio. Para decidir cómo hacer que las rutas persistan, consulte la documentación de la distribución de Linux de su elección.
ip route add ${VcnCidrBlock} nexthop dev ${vti1} nexthop dev ${vti2}
ip route show

Verificación

Un servicio de control también está disponible en Oracle Cloud Infrastructure para supervisar de forma activa y pasiva los recursos en la nube. Para obtener información sobre la supervisión de una VPN de sitio a sitio, consulte Métricas de VPN de sitio a sitio.

Si tiene alguna incidencia, consulte Solución de problemas de VPN de sitio a sitio.

Verificación del estado de Libreswan

Verifique el estado actual de los túneles de Libreswan con el siguiente comando.

ipsec status

El túnel se establece si ve una línea que incluye lo siguiente:

STATE_MAIN_I4: ISAKMP SA established

Si utiliza IKEv2, verá lo siguiente:

STATE_V2_IPSEC_I (IPsec SA established)

En el futuro, si necesita abrir un ticket de soporte con Oracle para un túnel de Libreswan, incluya la salida del comando ipsec status anterior.

Verificación del estado de la interfaz de túnel

Verifique que las interfaces del túnel virtual estén activas o inactivas mediante el comando ifconfig o el comando ip link show. También puede utilizar aplicaciones como tcpdump con las interfaces.

A continuación, se muestra un ejemplo de la salida de ifconfig con una implementación de trabajo de Libreswan que muestra las VTI disponibles.

ifconfig
<output trimmed>
				
vti01: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 8980
     inet6 fe80::5efe:a00:2 prefixlen 64 scopeid 0x20<link>
     tunnel txqueuelen 1000 (IPIP Tunnel)
     RX packets 0 bytes 0 (0.0 B)
     RX errors 0 dropped 0 overruns 0 frame 0
     TX packets 0 bytes 0 (0.0 B)
     TX errors 10 dropped 0 overruns 0 carrier 10 collisions 0

vti02: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 8980
     inet6 fe80::5efe:a00:2 prefixlen 64 scopeid 0x20<link>
     tunnel txqueuelen 1000 (IPIP Tunnel)
     RX packets 0 bytes 0 (0.0 B)
     RX errors 0 dropped 0 overruns 0 frame 0
     TX packets 0 bytes 0 (0.0 B)
     TX errors 40 dropped 0 overruns 0 carrier 40 collisions 0

A continuación, se muestra un ejemplo de la salida de ip link show:

ip link show
<output trimmed>

9: vti01@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 8980 qdisc noqueue
state UNKNOWN mode DEFAULT group default qlen 1000
   link/ipip 10.0.0.2 peer 129.213.240.52

10: vti02@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 8980 qdisc noqueue
state UNKNOWN mode DEFAULT group default qlen 1000
   link/ipip 10.0.0.2 peer 129.213.240.51

Además, en la consola de Oracle, cada túnel de IPSec debe estar ahora en estado ACTIVO.