GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar y configurar strongSwan VPN en Ubuntu 18.04

Una VPN le permite acceder a Internet de forma segura en una red Wi-Fi pública que no es de confianza. Puede conectarse a servidores VPN remotos mediante la conexión cifrada y navegar por la web de forma anónima.

strongSwan es gratuito, de código abierto y la implementación de red privada virtual basada en IPsec más utilizada, lo que le permite crear un túnel seguro cifrado entre dos o más redes remotas.

strongSwan utiliza el protocolo IKEv2, que permite la tunelización IPSec directa entre el servidor y el cliente. strongSwan significa Strong Secure WAN y admite ambas versiones de intercambio automático de claves en IPsec VPN, IKE V1 y V2.

En este tutorial, le mostraremos cómo instalar y configurar strongSwan VPN en Ubuntu 18.04.

Requisitos

  • Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform.
  • Una contraseña raíz configurada en su servidor.

Paso 1:crear un servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

apt-get update -y

Paso 2:habilite el reenvío de paquetes del kernel

Primero, deberá configurar el kernel para habilitar el reenvío de paquetes para IPv4. Puede configurarlo editando el archivo /etc/sysctl.conf:

nano /etc/sysctl.conf

Agregue las siguientes líneas al final del archivo:

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, ejecute el siguiente comando para volver a cargar la configuración:

sysctl -p

Paso 3:instalar strongSwan

Primero, deberá instalar el demonio strongSwan IPSec en su sistema. Puede instalarlo simplemente ejecutando el siguiente comando:

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

Una vez completada la instalación, puede continuar con el siguiente paso.

Paso 4:Configuración de una autoridad de certificación

Ahora deberá generar el certificado y la clave del servidor VPN para que el cliente VPN verifique la autenticidad del servidor VPN.

Primero, genere una clave privada para autofirmar el certificado de CA usando una utilidad PKI:

ipsec pki --gen --size 4096 --type rsa --outform pem > ca.key.pem

A continuación, cree su autoridad de certificación raíz y use la clave anterior para firmar el certificado raíz:

ipsec pki --self --in ca.key.pem --type rsa --dn "CN=VPN Server CA" --ca --lifetime 3650 --outform pem > ca.cert.pem

A continuación, deberá crear un certificado y una clave para el servidor VPN para que el cliente pueda verificar la autenticidad del servidor utilizando el certificado CA que acabamos de generar.

Primero, cree una clave privada para el servidor VPN con el siguiente comando:

ipsec pki --gen --size 4096 --type rsa --outform pem > server.key.pem

A continuación, genere el certificado del servidor ejecutando el siguiente comando:

ipsec pki --pub --in server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert ca.cert.pem --cakey ca.key.pem --dn "CN=vpn.example.com" --san="vpn.example.com" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem

A continuación, deberá copiar el certificado anterior en los directorios de certificados IPSec respectivos, como se muestra a continuación:

mv ca.cert.pem /etc/ipsec.d/cacerts/
mv server.cert.pem /etc/ipsec.d/certs/
mv ca.key.pem /etc/ipsec.d/private/
mv server.key.pem /etc/ipsec.d/private/

En este punto, tiene todos los certificados listos y ahora puede continuar con el siguiente paso.

Paso 5:configurar strongSwan

strongSwan tiene un archivo de configuración predeterminado ubicado en /etc/ipsec.conf. Se recomienda cambiar el nombre del archivo de configuración predeterminado y crear un nuevo archivo.

Para cambiar el nombre del archivo de configuración predeterminado, ejecute el siguiente comando:

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

A continuación, cree un nuevo archivo de configuración como se muestra a continuación:

nano /etc/ipsec.conf

Agregue las siguientes líneas:

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  # defines the type of connection, tunnel.
      keyexchange=ikev2
      fragmentation=yes
      forceencaps=yes
      dpdaction=clear
      dpddelay=300s
      rekey=no
      left=%any
      [email protected]    # if using IP, define it without the @ sign
      leftcert=server.cert.pem  # reads the VPN server cert in /etc/ipsec.d/certs
      leftsendcert=always
      leftsubnet=0.0.0.0/0
      right=%any
      rightid=%any
      rightauth=eap-mschapv2
      rightsourceip=192.168.0.0/24
      rightdns=8.8.8.8 DNS to be assigned to clients
      rightsendcert=never
      eap_identity=%identity  # defines the identity the client uses to reply to an EAP Identity request.

Guarde y cierre el archivo cuando haya terminado.

Dónde:

configuración de configuración: Especifica 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.
leftid: Especifica el nombre de dominio o la dirección IP del servidor.
leftcert : Especifica el nombre del certificado del servidor.
leftsubnet : Especifica la subred privada detrás del participante izquierdo.
rightsourceip : Grupo de direcciones IP que se asignará a los clientes.
rightdns : DNS para ser asignado a los clientes.

Paso 6:configurar la autenticación

En este punto, su servidor VPN está configurado para aceptar conexiones de clientes. A continuación, deberá configurar las credenciales de autenticación cliente-servidor para definir las claves privadas de RSA para la autenticación y configurar las credenciales de usuario de EAP.

nano /etc/ipsec.secrets

Agregue las siguientes líneas:

: RSA "server.key.pem"
.vpnsecure : EAP "your-secure-password"

Guarde y cierre el archivo. Luego, reinicie el servicio strongSwan y habilítelo para que comience al reiniciar:

systemctl restart strongswan
systemctl enable strongswan

También puede verificar el estado del servicio strongSwan usando el siguiente comando:

systemctl status strongswan

Debería ver el siguiente resultado:

• strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf
   Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-05-08 08:02:08 UTC; 8s ago
 Main PID: 29947 (starter)
    Tasks: 18 (limit: 2359)
   CGroup: /system.slice/strongswan.service
           ├─29947 /usr/lib/ipsec/starter --daemon charon --nofork
           └─29973 /usr/lib/ipsec/charon --debug-ike 2 --debug-knl 2 --debug-cfg 2 --debug-net 2 --debug-esp 2 --debug-dmn 2 --debug-mgr 2

May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG]   eap_identity=%identity
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG]   dpddelay=300
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG]   dpdtimeout=150
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG]   dpdaction=1
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG]   sha256_96=no
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG]   mediation=no
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG]   keyexchange=ikev2
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] adding virtual IP address pool 192.168.0.0/24
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG]   loaded certificate "CN=vpn.example.com" from 'server.cert.pem'
May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] added configuration 'ipsec-ikev2-vpn'

También puede verificar los certificados de strongSwan con el siguiente comando:

ipsec listcerts

Deberías obtener el siguiente resultado:

List of X.509 End Entity Certificates

  subject:  "CN=vpn.example.com"
  issuer:   "CN=VPN Server CA"
  validity:  not before May 08 07:59:18 2020, ok
             not after  Nov 18 07:59:18 2027, ok (expires in 2749 days)
  serial:    7b:f8:ab:dc:ca:64:dd:93
  altNames:  vpn.example.com
  flags:     serverAuth ikeIntermediate
  authkeyId: 12:60:f6:05:15:80:91:61:d6:e9:8f:72:a3:a5:a5:ff:a7:38:1a:32
  subjkeyId: bf:1d:b1:1b:51:a0:f7:63:33:e2:5f:4c:cb:73:4f:64:0f:b9:84:09
  pubkey:    RSA 4096 bits
  keyid:     e4:72:d0:97:20:ec:a5:79:f2:e0:bf:aa:0e:41:a8:ec:67:06:de:ee
  subjkey:   bf:1d:b1:1b:51:a0:f7:63:33:e2:5f:4c:cb:73:4f:64:0f:b9:84:09

En este punto, su servidor VPN strongSwan está instalado y configurado. Ahora puede proceder a instalar y configurar el cliente VPN para conectar el servidor VPN.

Paso 7:instalar y configurar el cliente strongSwan

Inicie sesión en el sistema del cliente y ejecute el siguiente comando para instalar los paquetes del cliente strongSwan:

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

Una vez instalado, deshabilite el servicio strongSwan para que comience en el arranque:

systemctl disable strongswan

Luego, copie el archivo ca.cert.pem del servidor VPN al cliente VPN usando el siguiente comando:

scp [email protected]:/etc/ipsec.d/cacerts/ca.cert.pem /etc/ipsec.d/cacerts/

A continuación, configure la autenticación del cliente VPN editando el archivo /etc/ipsec.secrets:

nano /etc/ipsec.secrets

Agregue la siguiente línea:

vpnsecure : EAP "your-secure-password"

Guarde y cierre el archivo. Luego, edite el archivo de configuración predeterminado de strongSwan:

nano /etc/ipsec.conf

Agregue las siguientes líneas:

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

Guarde y cierre el archivo. Luego, reinicie el servicio strongSwan con el siguiente comando:

systemctl restart strongswan

En el servidor strongSwan, verifique el estado de la conexión VPN usando el siguiente comando:

ipsec status

Debería ver que la IP 192.168.0.5 se asigna al cliente VPN:

Security Associations (1 up, 0 connecting):
ipsec-ikev2-vpn-client[1]: ESTABLISHED 1 minutes ago, [vpnsecure]...192.168.0.1[vpn.example.com]
ipsec-ikev2-vpn-client{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: 74ab87d0db9ea3d5_i 684cb0dbe4d1a70d_r
ipsec-ikev2-vpn-client{1}:   192.168.0.5/32 === 0.0.0.0/0

Conclusión

¡Felicidades! Ha instalado y configurado correctamente el servidor y el cliente VPN de strongSwan en Ubuntu 18.04. Ahora está navegando de forma segura por Internet protegiendo su identidad, ubicación y tráfico de intrusos y censores:¡comience hoy mismo con su servidor Ubuntu alojado en VPS desde Atlantic.Net!

Obtenga más información sobre nuestros servicios de alojamiento VPS y servidores privados virtuales.


Linux
  1. Cómo instalar y configurar el servidor Algo VPN en Ubuntu 20.04

  2. Cómo instalar y configurar el servidor DHCP en Ubuntu 20.04

  3. Cómo instalar y configurar el servidor Redis en Ubuntu

  4. Cómo instalar y configurar MariaDB Galera Cluster en Ubuntu 18.04

  5. Cómo instalar y configurar el servidor OpenVPN en Ubuntu 20.04

Cómo instalar y configurar el servidor LAMP en Ubuntu

Cómo instalar y configurar el servidor OpenLDAP en Ubuntu 16.04

Cómo instalar y configurar VNC en Ubuntu Server 20.04

Cómo instalar y configurar Parse Server en Ubuntu 20.04

Cómo instalar y configurar un servidor TeamSpeak en Ubuntu 18.04

Cómo instalar y configurar un servidor de Minecraft en Ubuntu 18.04