Instale y configure StrongSwan VPN en Ubuntu 20.04 | Ubuntu 20.10

Instale y configure StrongSwan VPN en Ubuntu 20.04 | Ubuntu 20.10

 

Una red privada virtual se utiliza para crear una red privada a partir de una conexión pública a Internet para proteger su identidad. VPN utiliza un túnel encriptado para enviar y recibir los datos de forma segura.

strongSwan es uno de los software VPN más famosos que admite diferentes sistemas operativos, incluidos Linux, OS X, FreeBSD, Windows, Android e iOS. Utiliza el protocolo IKEv1 e IKEv2 para el establecimiento de una conexión segura. Puede ampliar su funcionalidad con complementos integrados.

En este tutorial, explicaremos las instrucciones paso a paso sobre cómo configurar un servidor VPN KEv2 con StrongSwan en Ubuntu 20.04.

Requisito previo

• Dos sistemas que ejecutan el servidor Ubuntu 20.04
• Se configura una contraseña raíz en ambos servidores

Instalar StrongSwan

De forma predeterminada, StrongSwan está disponible en el repositorio predeterminado de Ubuntu 20.04. Puede instalarlo con otros componentes requeridos usando el siguiente comando:

apt-get install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins -y

Después de instalar todos los paquetes, puede proceder a generar un certificado de CA.

Generar un certificado para el servidor VPN

A continuación, deberá generar un certificado y una clave para que el servidor VPN verifique la autenticidad del servidor en el lado del cliente.

Primero, cree una clave privada para la CA raíz con el siguiente comando:

ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/ca.key.pem

A continuación, cree una CA raíz y fírmela con la clave anterior:

ipsec pki --self --in /etc/ipsec.d/private/ca.key.pem --type rsa --dn "CN=My VPN Server CA" --ca --lifetime 3650 --outform pem > /etc/ipsec.d/cacerts/ca.cert.pem

A continuación, cree una clave privada para el servidor VPN con el siguiente comando:

ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/server.key.pem

Finalmente, genere el certificado del servidor usando el siguiente comando:

ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem --dn "CN=vpn.domain.com" --san="vpn.domain.com" --flag serverAuth --flag ikeIntermediate --outform pem > /etc/ipsec.d/certs/server.cert.pem

En este punto, todos los certificados están listos para el servidor VPN.

Configurar StrongSwan VPN

El archivo de configuración predeterminado de strongswan es /etc/ipsec.conf. Podemos hacer una copia de seguridad del archivo de configuración principal y crear un nuevo archivo:

mv /etc/ipsec.conf /etc/ipsec.conf-bak

A continuación, cree un nuevo archivo de configuración:

nano /etc/ipsec.conf

Agregue los siguientes ajustes de configuración y conexión:

config setup
        charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
        strictcrlpolicy=no
        uniqueids=yes
        cachecrls=no

conn ipsec-ikev2-vpn
      auto=add
      compress=no
      type=tunnel
      keyexchange=ikev2
      fragmentation=yes
      forceencaps=yes
      dpdaction=clear
      dpddelay=300s
      rekey=no
      left=%any
      leftid=@vpn.domain.com
      leftcert=server.cert.pem
      leftsendcert=always 
      leftsubnet=0.0.0.0/0
      right=%any
      rightid=%any
      rightauth=eap-mschapv2
      rightsourceip=10.10.10.0/24
      rightdns=8.8.8.8
      rightsendcert=never
      eap_identity=%identity

Guarde y cierre el archivo /etc/ipsec.conf.

A continuación, deberá definir las credenciales de usuario de EAP y las claves privadas de RSA para la autenticación.

Puede configurarlo editando el archivo /etc/ipsec.secrets:

nano /etc/ipsec.secrets

Agregue la siguiente línea:

: RSA "server.key.pem"
vpnsecure : EAP "password"

Luego reinicie el servicio StrongSwan de la siguiente manera:

systemctl restart strongswan-starter

Para permitir que StrongSwan se inicie en el arranque del sistema, escriba:

systemctl enable strongswan-starter

Verifique el estado del servidor VPN, escriba:

systemctl status strongswan-starter

Habilitar el reenvío de paquetes del kernel

A continuación, deberá configurar el kernel para habilitar el reenvío de paquetes editando el archivo /etc/sysctl.conf:

nano /etc/sysctl.conf

Descomenta las siguientes líneas:

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

Guarde y cierre el archivo, luego vuelva a cargar la nueva configuración con el siguiente comando:

sysctl -p

Instalar y configurar el cliente StrongSwan

En esta sección, instalaremos el cliente StrongSwan en la máquina remota y nos conectaremos al servidor VPN.

Primero, instale todos los paquetes necesarios con el siguiente comando:

apt-get install strongswan libcharon-extra-plugins -y

Una vez que todos los paquetes estén instalados, detenga el servicio StrongSwan con el siguiente comando:

systemctl stop strongswan-starter

A continuación, deberá copiar el archivo ca.cert.pem del servidor VPN al directorio /etc/ipsec.d/cacerts/. Puede copiarlo usando el comando SCP como se muestra a continuación:

scp root@vpn.domain.com:/etc/ipsec.d/cacerts/ca.cert.pem /etc/ipsec.d/cacerts/

Para configurar la autenticación del cliente VPN, use el archivo /etc/ipsec.secrets:

nano /etc/ipsec.secrets

Agregue la siguiente línea:

vpnsecure : EAP "password"

Luego edite el archivo de configuración principal de strongSwan:

nano /etc/ipsec.conf

Agregue las siguientes líneas que coincidan con su dominio, la contraseña que especificó en el archivo /etc/ipsec.secrets.

conn ipsec-ikev2-vpn-client
    auto=start
    right=vpn.domain.com
    rightid=vpn.domain.com
    rightsubnet=0.0.0.0/0
    rightauth=pubkey
    leftsourceip=%config
    leftid=vpnsecure
    leftauth=eap-mschapv2
    eap_identity=%identity

Ahora inicie el servicio StrongSwan VPN usando el siguiente comando:

systemctl start strongswan-starter

Luego, verifique el estado de la conexión VPN usando el siguiente comando:

ipsec status

Deberías obtener el siguiente resultado:

Security Associations (1 up, 0 connecting):
ipsec-ikev2-vpn-client[1]: ESTABLISHED 28 seconds ago, 104.245.32.158[vpnsecure]...104.245.33.84[vpn.domain.com]
ipsec-ikev2-vpn-client{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: ca6f451c_i ca9f9ff7_o
ipsec-ikev2-vpn-client{1}: 10.10.10.1/32 === 0.0.0.0/0

El resultado anterior indica que se establece una conexión VPN entre el cliente y el servidor, y la dirección IP 10.10.10.1 se asigna a la máquina cliente.

También puede verificar su nueva dirección IP con el siguiente comando:

ip a

Deberías obtener el siguiente resultado:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:00:68:f5:20:9e brd ff:ff:ff:ff:ff:ff
inet 104.245.32.158/25 brd 104.245.32.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.10.10.1/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::200:68ff:fef5:209e/64 scope link
valid_lft forever preferred_lft forever

Conclusión

En la guía anterior, aprendimos cómo configurar un servidor y cliente VPN StrongSwan en Ubuntu 20.04. Ahora puede proteger su identidad y asegurar sus actividades en línea.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.