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.