Cómo configurar VPN con sede en IPSEC con Strongswan en Debian y Ubuntu

Cómo configurar VPN con sede en IPSEC con Strongswan en Debian y Ubuntu

StrongSwan es una implementación de VPN (red privada virtual) de código abierto, multiplataforma, completa y ampliamente utilizada que se ejecuta en Linux, FreeBSD, OS X, Windows, Android e iOS. Es principalmente un demonio que admite el Intercambio de claves en Internet Protocolos (Ikev1 y IKev2) para establecer asociaciones de seguridad (SA) Entre dos compañeros.

Este artículo describe cómo configurar el sitio al sitio IPSEC VPN puertas de enlace usando Strongswan en Ubuntu y Debian servidor. Por sitio a sitio nos referimos a cada puerta de enlace de seguridad tiene una sub-red detrás de esto. Además, los compañeros se autenticarán mutuamente utilizando una llave previa al intercambio (Psíquico).

Entorno de prueba

Recuerde reemplazar las siguientes IPS con sus IPS del mundo real para configurar su entorno.

Sitio 1 Gateway (Tecmint-Devgateway)

OS 1: Debian o Ubuntu Public IP: 10.20.20.1 IP privada: 192.168.0.101/24 Subred privada: 192.168.0.24/04 

Sitio 2 Gateway (TecMint-Prodgateway)

OS 2: Debian o Ubuntu Public IP: 10.20.20.3 IP privado: 10.0.2.15/24 Subred privada: 10.0.2.24/04 

Paso 1: habilitando el reenvío de paquetes del núcleo

1. Primero, debe configurar el núcleo para habilitar el reenvío de paquetes agregando las variables del sistema apropiadas en /etc/sysctl.confusión Archivo de configuración en ambas puertas de enlace de seguridad.

$ sudo vim /etc /sysctl.confusión 

Busque las siguientes líneas y desenchufarlas y establecer sus valores como se muestra (lea los comentarios en el archivo para obtener más información).

neto.IPv4.ip_forward = 1 net.IPv6.confusión.todo.reenvío = 1 net.IPv4.confusión.todo.Acept_Redirects = 0 net.IPv4.confusión.todo.send_redirects = 0 

2. A continuación, cargue la nueva configuración ejecutando el siguiente comando.

$ sudo sysctl -p 
Cargar Configuración del kernel SYSCTL

3. Si tiene un servicio de firewall UFW habilitado, debe agregar las siguientes reglas al /etc/UFW/antes.normas archivo de configuración justo antes del filtro reglas en cualquier puerta de enlace de seguridad.

Sitio 1 Gateway (Tecmint-Devgateway)

*nat: posterior a aceptar [0: 0] -A POSTROUTING -S 10.0.2.4/24 -D 192.168.0.0/24 -J Masquerade Commit 

Sitio 2 Gateway (TecMint-Prodgateway)

*nat: posterior a Aceptar [0: 0] -A Postrouting -S 192.168.0.4/24 -d 10.0.2.0/24 -J Masquerade Commit 

4. Una vez que se han agregado las reglas del firewall, aplique los nuevos cambios reiniciando UFW como se muestra.

$ sudo UFW DISPLED $ sudo UFW Enable 

Paso 2: Instalación de Strongswan en Debian y Ubuntu

5. Actualice su caché de paquete en ambas puertas de enlace de seguridad e instale el Strongswan Paquete usando el Administrador de paquetes APT.

$ sudo apt actualización $ sudo apt install strongswan 

6. Una vez que se complete la instalación, el script de instalación iniciará el Strongswan servicio y habilitarlo para comenzar automáticamente en el arranque del sistema. Puede verificar su estado y si está habilitado utilizando el siguiente comando.

$ sudo systemctl status strongswan.Servicio $ sudo SystemCTL IS-habilitado StrongSwan.servicio 

Paso 3: Configuración de puertas de enlace de seguridad

7. A continuación, debe configurar las puertas de enlace de seguridad utilizando el /etc/iPsec.confusión archivo de configuración.

Sitio 1 Gateway (Tecmint-Devgateway)

$ sudo cp /etc /iPsec.conf /etc /iPsec.confusión.orig $ sudo nano /etc /iPsec.confusión 

Copie y pegue la siguiente configuración en el archivo.

configuración configuración charondebug = "all" uniqueIDs = yes conn devgateway a-prodgateway type = tunnel Auto = start keyExchange = iKev2 authby = Secret Left = 10.20.20.1 Leftsubnet = 192.168.0.101/24 derecho = 10.20.20.3 Rightsubnet = 10.0.2.15/24 IKE = AES256-SHA1-MODP1024! esp = AES256-SHA1! agresivo = sin keyingtries =%para siempre iKelifetime = 28800S LifeTime = 3600S dpddelay = 30s dpdtimeout = 120s dpdaction = reiniciar 

Sitio 2 Gateway (TecMint-Prodgateway)

$ sudo cp /etc /iPsec.conf /etc /iPsec.confusión.orig $ sudo nano /etc /iPsec.confusión 

Copie y pegue la siguiente configuración en el archivo.

configuración de configuración charondebug = "all" uniqueids = yes conndgateway a-devgateway type = tunnel Auto = start keyExchange = iKev2 authby = Secret Left = 10.20.20.3 Leftsubnet = 10.0.2.15/24 derecho = 10.20.20.1 Rightsubnet = 192.168.0.101/24 IKE = AES256-SHA1-MODP1024! esp = AES256-SHA1! agresivo = sin keyingtries =%para siempre iKelifetime = 28800S LifeTime = 3600S dpddelay = 30s dpdtimeout = 120s dpdaction = reiniciar 

Aquí está el significado de cada parámetro de configuración:

  • configuración de configuración - Especifica la información de configuración general para IPSEC que se aplica a todas las conexiones.
  • charonbug - Define cuánto se debe registrar la salida de depuración de Charon.
  • ÚNICOS - Especifica si una identificación de participante en particular debe mantenerse única.
  • Conn Prodgateway a Devgateway - Define el nombre de la conexión.
  • tipo - Define el tipo de conexión.
  • auto - Cómo manejar la conexión cuando se inicia o reinicie iPsec.
  • intercambio de llaves - Define la versión del protocolo IKE para usar.
  • auténtico - Define cómo los compañeros deben autenticarse entre sí.
  • izquierda - Define la dirección IP de la interfaz de red pública del participante izquierdo.
  • marco de la izquierda - establece la subred privada detrás del participante de la izquierda.
  • bien - Especifica la dirección IP de la interfaz de red pública del participante correcto.
  • Rightsubnet - establece la subred privada detrás del participante de la izquierda.
  • Ike - Define una lista de algoritmos de cifrado/autenticación IKE/ISAKMP SA para ser utilizado. Puede agregar una lista separada por comas.
  • espíritu - Define una lista de algoritmos de cifrado/autenticación de ESP que se utilizarán para la conexión. Puede agregar una lista separada por comas.
  • agresivo - establece si usar el modo agresivo o principal.
  • triunfas - establece el número de intentos que deben hacerse para negociar una conexión.
  • iKelifetime - establece cuánto tiempo debería durar el canal de llave de una conexión antes de ser renegociado.
  • toda la vida - Define cuánto tiempo debería durar una instancia particular de una conexión, desde una negociación exitosa hasta caducidad.
  • dpddelay - Especifica el intervalo de tiempo con el que se envían a los mensajes/intercambios informativos.
  • dpdtimeout - Especifica el intervalo de tiempo de espera, después de lo cual todas las conexiones a un par se eliminan en caso de inactividad.
  • dpdaction - Define cómo usar el protocolo de detección de pares muertos (DPD) para administrar la conexión.

Para obtener más información sobre los parámetros de configuración anteriores, lea el iPsec.confusión página del hombre ejecutando el comando.

$ hombre ipsec.confusión 

Paso 4: Configuración de PSK para la autenticación entre pares

8. Después de configurar ambas puertas de enlace de seguridad, genere una segura Psíquico para ser utilizado por los compañeros utilizando el siguiente comando.

$ head -c 24 /dev /urandom | base64 
Generar la tecla PSK

9. A continuación, agregue el Psíquico en el /etc/iPsec.misterios Archivo en ambas puertas de enlace.

$ sudo vim /etc /iPsec.misterios 

Copiar y pegar la siguiente línea.

------- Sitio 1 Gateway (Tecmint-Devgateway) ------- 10.20.20.1 10.20.20.3: psk "qlgltvqofqvglswp75fetlgtwn3hu0ku6c5hitko6ac =" ------- Sitio 2 Gateway (TecMint-Prodgateway) ------- 10.20.20.3 10.20.20.1: psk "qlgltvqofqvglswp75fetlgtwn3hu0ku6c5hitko6ac =" 

10. Reiniciar el IPsec programa y verifique su estado para ver las conexiones.

$ sudo ipsec reiniciar $ sudo ipsec estado 
Ver estado de conexión IPSEC

11. Finalmente, verifique que pueda acceder a las sub-redes privadas desde cualquier puerta de de seguridad ejecutando un comando de ping.

$ ping 192.168.0.101 $ ping 10.0.2.15 
Verificar la configuración de VPN de sitio a sitio

12. Además, puedes detener y comenzar iPsec como se muestra.

$ sudo ipsec stop $ sudo iPsec inicio 

13. Para saber más sobre los comandos IPSEC para mencionar manualmente las conexiones y más, vea la página de ayuda de IPSEC.

$ ipsec --help 

Eso es todo! En este artículo, hemos descrito cómo configurar una VPN IPSEC de sitio a sitio usando Strongswan en Ubuntu y Debian servidores, donde ambas puertas de enlace de seguridad se configuraron para autenticarse utilizando un Psíquico. Si tiene alguna pregunta o pensamiento para compartir, comuníquese con nosotros a través del formulario de comentarios a continuación.