En ocasiones puedes necesitar conectar tu servidor o red de Clouding con tu equipo local, en este artículo explicará cómo instalar strongswan con xl2tpd y realizar las configuraciones necesarias para configurar una VPN VPN L2TP/IPSec PSK en un Ubuntu 24.04 LTS.
Configuración Firewall Clouding
Para que funcione la VPN crea y asigna un perfil de firewall con las siguientes reglas para el servidor:
Pasos previos
Para que no de ningún error de DNS tendrás que ejecutar los siguientes comandos:
# apt remove unbound -y && systemctl stop systemd-resolved.service && systemctl disable systemd-resolved.service && rm /etc/resolv.conf
Luego utiliza el siguiente comando:
# nano /etc/resolv.conf
Y únicamente deja lo siguiente:
nameserver 8.8.8.8
nameserver 8.8.4.4
Instalación de Strongswan
# apt-get update && apt upgrade -y && apt-get install strongswan -y
Ahora edita el fichero de configuración para el IPSec:
# nano /etc/ipsec.conf
En la parte final añade la conexión:
config setup
charondebug="ike 2, knl 2, cfg 2, net 2, esp 3, dmn 2, mgr 2"
conn L2TP
authby=secret
ike=aes256-sha1-ecp384!
keyexchange=ikev1
left=%any
right=%any
auto=add
type=transport
leftprotoport=17/1701
rightprotoport=17/1701
rekey=no
Posteriormente, habrá que especificar un clave precompartida:
# nano /etc/ipsec.secrets
Añade lo siguiente al final (edita la llave de ejemplo):
: PSK "MiClaveSecreta"
Instalación de xl2tpd
# apt install xl2tpd -y && systemctl enable xl2tpd
Una vez instalado, edita el archivo de configuración del xl2tp con el comando:
# nano /etc/xl2tpd/xl2tpd.conf
Y añade al final:
[global]
listen-addr = 0.0.0.0 ; Escucha en todas las interfaces de red
auth file = /etc/xl2tpd/l2tp-secrets ; Archivo de autenticación de usuarios
ipsec saref = yes ; Habilita la referencia de seguridad de IPsec para optimizar el tráfico
force userspace = yes ; Para que cada User utilice su propia conexión
debug tunnel = yes ; Habilita logs detallados del túnel L2TP
debug avp = yes ; Registra paquetes AVP (Attribute-Value Pair)
debug network = yes ; Logs del tráfico de red
debug state = yes ; Depuración del estado de las conexiones
[lns default]
ip range = 10.30.10.5-10.30.10.200 ; Rango de IP VPN para los clientes L2TP
local ip = 10.30.10.1 ; IP VPN del servidor
refuse chap = yes ; Rechazar autenticación CHAP
refuse pap = yes ; Rechazar autenticación PAP (menos seguro que CHAP)
require authentication = yes ; Obliga a autenticación antes de establecer la conexión
bps = 104857600 ; Límite de velocidad en bits por segundo (~100 Mbps)
ppp debug = yes ; Habilita el modo de depuración de PPP (útil para diagnóstico)
pppoptfile = /etc/ppp/options.xl2tpd ; Archivo con opciones de configuración de PPP
length bit = yes ; Indica que el bit de longitud está presente en los paquetes PPP
Luego copia y edita el archivo para las opciones de xl2tp:
# cp /etc/ppp/options /etc/ppp/options.xl2tpd && nano /etc/ppp/options.xl2tpd
Deberás añadir al final lo siguiente:
ipcp-accept-local # Acepta la dirección IP local propuesta por el servidor durante la negociación IPCP (IP Control Protocol)
ipcp-accept-remote # Acepta la dirección IP remota propuesta por el cliente durante la negociación IPCP
require-mschap-v2 # Obliga a usar MSCHAPv2 para autenticación, más seguro que PAP y CHAP
ms-dns 8.8.8.8 # Especifica un servidor DNS para los clientes VPN (en este caso, Google DNS)
proxyarp # Habilita Proxy ARP para permitir que el servidor responda a solicitudes ARP en nombre de los clientes VPN
connect-delay 5000 # Retrasa la conexión PPP en 5000 ms (5 segundos) para evitar problemas de sincronización en la autenticaciónconnect-delay 5000
nodefaultroute
mtu 1410
mru 1410
debug
Aquí puedes crear todos los usuarios que necesites que accedan a la VPN:
# nano /etc/ppp/chap-secrets
Añade al final del archivo, con la contraseña y usuario de CHAP:
userVPN * passVPN *
Luego para añadir la contraseña y usuario de L2TP:
# nano /etc/xl2tpd/l2tp-secrets
Añade al final el usuario:
* userVPN passVPN
NOTA: Utilizar contraseñas seguras, esto es un ejemplo.
Instalación de dnsmasq
# apt install dnsmasq -y && systemctl enable dnsmasq
Crea y edita el archivo de configuración:
# nano /etc/dnsmasq.conf
Y añade siguiente contenido:
dhcp-range=10.30.10.5,10.30.10.200
dhcp-option=6,8.8.4.4,8.8.8.8
#dhcp-option=121,10.30.10.0/24,10.30.10.1
#dhcp-option=249,10.30.10.0/24,10.30.10.1
Por defecto, se utilizará el propio servidor VPN como puerta de enlace y no es necesario añadir rutas, pero se puede descomentar y añadir las rutas activas necesarias.
Posteriormente, ejecuta lo siguiente para activar el enrutamiento y aplicarlo de forma permanente:
# echo 'net.ipv4.ip_forward=1' | tee -a /etc/sysctl.conf && sysctl -p
Ahora reinicia los servicios para efectuar los cambios realizados en ellos:
# service xl2tpd restart && service dnsmasq restart && ipsec restart
Por último, ejecuta lo siguiente para enmascarar el tráfico de la VPN (no es necesario en caso de rutas estáticas):
# iptables -A FORWARD -i ppp0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Además añade el comando a /etc/rc.local así se mantendrá cuando se reinicie el servidor:
# nano /etc/rc.local
Añade al final:
/sbin/iptables -A FORWARD -i ppp0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Cómo configurar VPN L2TP en Windows
En el panel de control de Windows en el buscador escribe VPN y entra en “Cambiar redes privadas virtuales” y pulsa en “Agregar una conexión VPN”, una vez aquí rellena los campos con los datos de la VPN (IP, PSK, usuario y contraseña):
Ya podrás empezar a usar la VPN.
Cómo configurar VPN L2TP en Android
Para configurar la VPN en Android en Ajustes, más redes y entra en la opción VPN y pulsa + para crear una VPN:
Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites, consúltanos!