GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar una VPN basada en IPsec con Strongswan en Debian y Ubuntu

strongSwan es una implementación de VPN (red privada virtual) basada en IPsec, de código abierto, multiplataforma, con todas las funciones y ampliamente utilizada que se ejecuta en Linux, FreeBSD, OS X, Windows, Android e iOS. Es principalmente un demonio de claves que admite el intercambio de claves de Internet. protocolos (IKEv1 y IKEv2 ) para establecer asociaciones de seguridad (SA ) entre dos pares.

Este artículo describe cómo configurar una VPN IPSec de sitio a sitio. puertas de enlace que utilizan strongSwan en Ubuntu y Debian servidores. Por sitio a sitio nos referimos a que cada puerta de enlace de seguridad tiene una subred detrás. Además, los pares se autenticarán entre sí mediante una clave precompartida (PSK ).

Entorno de prueba

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

Puerta de enlace del sitio 1 (tecmint-devgateway)

OS 1: Debian or Ubuntu
Public IP: 10.20.20.1
Private IP: 192.168.0.101/24
Private Subnet: 192.168.0.0/24

Puerta de enlace del sitio 2 (tecmint-prodgateway)

OS 2: Debian or Ubuntu
Public IP:  10.20.20.3
Private IP: 10.0.2.15/24
Private Subnet: 10.0.2.0/24

Paso 1:habilitar el reenvío de paquetes del kernel

1. Primero, debe configurar el kernel para habilitar el reenvío de paquetes agregando las variables de sistema apropiadas en /etc/sysctl.conf archivo de configuración en ambas puertas de enlace de seguridad.

$ sudo vim /etc/sysctl.conf

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

net.ipv4.ip_forward = 1 
net.ipv6.conf.all.forwarding = 1 
net.ipv4.conf.all.accept_redirects = 0 
net.ipv4.conf.all.send_redirects = 0 

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

$ sudo sysctl -p

Cargar la configuración del kernel Sysctl

3. Si tiene habilitado un servicio de firewall UFW, debe agregar las siguientes reglas a /etc/ufw/before.rules archivo de configuración justo antes de las reglas de filtro en cualquiera de las puertas de enlace de seguridad.

Puerta de enlace del sitio 1 (tecmint-devgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24  -d 192.168.0.0/24 -j MASQUERADE
COMMIT

Puerta de enlace del sitio 2 (tecmint-prodgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING  -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE
COMMIT

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

$ sudo ufw disable 
$ sudo ufw enable

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

5. Actualice su caché de paquetes en ambas puertas de enlace de seguridad e instale el strongswan paquete usando el administrador de paquetes APT.

$ sudo apt update
$ sudo apt install strongswan 

6. Una vez completada la instalación, el script del instalador iniciará el strongswan servicio y habilítelo para que se inicie automáticamente al arrancar el sistema. Puede verificar su estado y si está habilitado usando el siguiente comando.

$ sudo systemctl status strongswan.service
$ sudo systemctl is-enabled strongswan.service

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

7. A continuación, debe configurar las puertas de enlace de seguridad utilizando /etc/ipsec.conf archivo de configuración.

Puerta de enlace del sitio 1 (tecmint-devgateway)

$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
$ sudo nano /etc/ipsec.conf 

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

config setup
        charondebug="all"
        uniqueids=yes
conn devgateway-to-prodgateway
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=10.20.20.1
        leftsubnet=192.168.0.101/24
        right=10.20.20.3
        rightsubnet=10.0.2.15/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Puerta de enlace del sitio 2 (tecmint-prodgateway)

$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
$ sudo cp /etc/ipsec.conf 

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

config setup
        charondebug="all"
        uniqueids=yes
conn prodgateway-to-devgateway
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=10.20.20.3
        leftsubnet=10.0.2.15/24
        right=10.20.20.1
        rightsubnet=192.168.0.101/24 
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

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

  • configuración – especifica la información de configuración general para IPSec que se aplica a todas las conexiones.
  • charondebug – define la cantidad de salida de depuración de Charon que se debe registrar.
  • uniqueids – especifica si una ID 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.
  • automático – cómo manejar la conexión cuando se inicia o reinicia IPSec.
  • intercambio de claves – define la versión del protocolo IKE a utilizar.
  • autorización – define cómo los pares deben autenticarse entre sí.
  • izquierda – define la dirección IP de la interfaz de red pública del participante izquierdo.
  • subred izquierda – indica la subred privada detrás del participante izquierdo.
  • correcto – especifica la dirección IP de la interfaz de red pública del participante correcto.
  • subred derecha – indica la subred privada detrás del participante izquierdo.
  • como – define una lista de algoritmos de encriptación/autenticación IKE/ISAKMP SA que se utilizarán. Puede agregar una lista separada por comas.
  • esp – define una lista de algoritmos de encriptación/autenticación 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.
  • intentos de teclado – indica el número de intentos que deben realizarse para negociar una conexión.
  • ikelifetime – establece cuánto debe durar el canal de codificación de una conexión antes de ser renegociado.
  • de por vida – define cuánto tiempo debe durar una instancia particular de una conexión, desde la negociación exitosa hasta el vencimiento.
  • dpddelay – especifica el intervalo de tiempo con el que los mensajes R_U_THERE/intercambios INFORMATIVOS se envían al par.
  • tiempo de espera de dpd – especifica el intervalo de tiempo de espera, después del cual se eliminan todas las conexiones a un par en caso de inactividad.
  • acción de dp – define cómo usar el protocolo Dead Peer Detection (DPD) para administrar la conexión.

Para obtener más información sobre los parámetros de configuración anteriores, lea el ipsec.conf página man ejecutando el comando.

$ man ipsec.conf

Paso 4:Configuración de PSK para la autenticación punto a punto

8. Después de configurar ambas puertas de enlace de seguridad, genere un PSK seguro para ser utilizado por los pares usando el siguiente comando.

$ head -c 24 /dev/urandom | base64

Generar clave PSK

9. A continuación, agregue el PSK en /etc/ipsec.secrets archivo en ambas puertas de enlace.

$ sudo vim /etc/ipsec.secrets

Copie y pegue la siguiente línea.

------- Site 1 Gateway (tecmint-devgateway) ------- 

10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

------- Site 2 Gateway (tecmint-prodgateway) -------

10.20.20.3  10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

10. Reinicie el IPSec programa y verifique su estado para ver las conexiones.

$ sudo ipsec restart
$ sudo ipsec status

Ver estado de conexión IPSec

11. Finalmente, verifique que pueda acceder a las subredes privadas desde cualquiera de las puertas de enlace de seguridad ejecutando un comando ping.

$ ping 192.168.0.101
$ ping 10.0.2.15

Verificar la configuración de VPN de sitio a sitio

12. Además, puede detener e iniciar IPSec como se muestra.

$ sudo ipsec stop
$ sudo ipsec start

13. Para obtener más información sobre los comandos de IPSec para abrir conexiones manualmente y más, consulte 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 entre sí mediante un PSK . Si tiene alguna pregunta o idea para compartir, comuníquese con nosotros a través del formulario de comentarios a continuación.

Compartir es cuidar…
Compartir en FacebookCompartir en TwitterCompartir en LinkedinCompartir en Reddit
Ubuntu
  1. Cómo configurar WireGuard VPN en Ubuntu 20.04

  2. Cómo usar APT con proxy en Ubuntu y Debian

  3. Cómo instalar y configurar Gerbera Media Server en Ubuntu / Debian

  4. Cómo instalar y configurar mysql 8 en Ubuntu 20.04

  5. Cómo configurar un cortafuegos con UFW en Ubuntu \ Debian

Cómo configurar un servidor VPN IKEv2 con StrongSwan en Ubuntu 22.04

Cómo configurar ModSecurity con Nginx en Debian/Ubuntu

Cómo instalar Drupal con Apache en Debian y Ubuntu

Cómo configurar una VPN basada en IPsec con Strongswan en CentOS/RHEL 8

Cómo configurar Mailman con Debian e ISPConfig

Cómo instalar y configurar una VPN con OpenVPN en Ubuntu 18.04