En ocasiones puedes necesitar conectar tu red de Clouding con tu red local, en este artículo os enseñaremos ha instalar strongswan con xl2tpd y realizar las configuraciones necesarias para configurar una VPN VPN L2TP/IPSec PSK en un Ubuntu 20.04 LTS.
Configuración Firewall Clouding
Para que funcione nuestra VPN crearemos un perfil de firewall con las siguientes reglas:
Requisitos del servidor
Para crear VPN L2TP lo haremos en una máquina con Ubuntu 20.04 con 1 GB de RAM, 0,5 Core y 5 GB de disco. Importante a la hora de crear el servidor seleccionar el perfil de firewall anterior.
Pasos previos
Para que no nos de ningún error de DNS tendremos que introducir los siguientes comandos:
# apt remove unbound
# systemctl stop systemd-resolved.service
# systemctl disable systemd-resolved.service
# rm /etc/resolv.conf
Luego usaremos el comando:
# nano /etc/resolv.conf
Dentro del fichero añadiremos:
nameserver 8.8.8.8
nameserver 8.8.4.4
Instalamos strongswan
# apt install strongswan
Ahora editaremos el fichero de configuración “nano /etc/ipsec.conf” añadir al final y modificaremos las IP’s:
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
auto=add
keyingtries=3
rekey=no
dpddelay=10
dpdtimeout=90
dpdaction=clear
esp=aes128-sha1
ike=aes128-sha-modp1024
ikelifetime=8h
keylife=1h
type=transport
left=85.208.20.174
leftprotoport=17/%any
right=%any
rightprotoport=17/%any
conn L2TP-PSK-noNAT-Private
authby=secret
auto=add
keyingtries=3
rekey=no
dpddelay=10
dpdtimeout=90
dpdaction=clear
esp=aes128-sha1
ike=aes128-sha-modp1024
ikelifetime=8h
keylife=1h
type=transport
left=10.20.10.5
leftprotoport=17/%any
right=%any
rightprotoport=17/%any
Procederemos a especificar PSK Pre Shared Key (clave precompartida) en “nano /etc/ipsec.secrets” añadir al final:
: PSK "Especificar Clave Privada Segura (Contraseña a elegir)"
Instalamos xl2tpd
# apt install xl2tpd
# systemctl enable xl2tpd
Procederemos a configurar Xl2tp en “nano /etc/xl2tpd/xl2tpd.conf” añadir al final:
[global]
listen-addr = 0.0.0.0
auth file = /etc/xl2tpd/l2tp-secrets
ipsec saref = yes
force userspace = yes
[lns default]
ip range = 10.254.254.100-10.254.254.200
local ip = 10.254.254.1
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
bps = 104857600
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
Procederemos a especificar opciones Xl2tp para ello “cp /etc/ppp/options /etc/ppp/options.xl2tpd y nano /etc/ppp/options.xl2tpd” añadir al final:
ipcp-accept-local
ipcp-accept-remote
require-mschap-v2
ms-dns 8.8.8.8
proxyarp
connect-delay 5000
En el mismo documento("/etc/ppp/options.xl2tpd") comentaremos los siguientes módulos ya que actualmente con la versión de los repositorios producen error cuando un usuario intenta conectarse por VPN.
# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
# on the serial port.
#crtscts
# Specifies that pppd should use a UUCP-style lock on the serial device
# to ensure exclusive access to the device.
#lock
# Use the modem control lines. On Ultrix, this option implies hardware
# flow control, as for the crtscts option. (This option is not fully
# implemented.)
#modem
*Si se requiere de estos módulos debe descargar y compilar una versión anterior.
Aquí podemos crear todos los usuarios que queremos que accedan a la VPN “nano /etc/ppp/chap-secrets y nano /etc/xl2tpd/l2tp-secrets” añadir al final:
*/etc/ppp/chap-secrets
userVPN * passVPN *
*/etc/xl2tpd/l2tp-secrets
userVPN passVPN
NOTA: Utilizar contraseñas seguras, esto es un ejemplo.
Instalamos dnsmasq
# apt install dnsmasq
# systemctl enable dnsmasq
Crearemos un fichero de configuración vacío (/etc/dnsmasq.conf) con el siguiente contenido:
dhcp-range=10.254.254.100,10.254.254.200
dhcp-option=121,10.20.10.0/24,10.254.254.1,27.0.172.0/22,10.254.254.1,46.183.112.0/21,10.254.254.1,80.240.126.0/23,10.254.254.1,85.208.20.0/21,10.254.254.1,93.189.88.0/19,10.254.254.1,103.23.60.0/23,10.254.254.1,161.22.40.0/21,10.254.254.1,185.166.212.0/21,10.254.254.1,185.253.152.0/22,10.254.254.1,185.254.204.0/22,10.254.254.1,213.192.233.0/24,10.254.254.1,217.71.200.0/21,10.254.254.1
dhcp-option=249,10.20.10.0/24,10.254.254.1,27.0.172.0/22,10.254.254.1,46.183.112.0/21,10.254.254.1,80.240.126.0/23,10.254.254.1,85.208.20.0/21,10.254.254.1,93.189.88.0/19,10.254.254.1,103.23.60.0/23,10.254.254.1,161.22.40.0/21,10.254.254.1,185.166.212.0/21,10.254.254.1,185.253.152.0/22,10.254.254.1,185.254.204.0/22,10.254.254.1,213.192.233.0/24,10.254.254.1,217.71.200.0/21,10.254.254.1
Los rangos IPs 10.20.10.0/24 (red privada) y 85.208.20.174/21 (red pública) corresponden a Clouding cualquier acceso que hagamos a los servidores de Clouding será con la IP de la VPN.
Se pueden añadir los rangos que se quieran.
Por último ejecutaremos:
# /sbin/sysctl -w net.ipv4.ip_forward=1
# /sbin/iptables -t nat -A POSTROUTING -s 10.254.254.0/24 -j MASQUERADE
# service xl2tpd restart; service dnsmasq restart; ipsec restart
Además añadimos los comandos anteriores a /etc/rc.local así se mantendrás cuando reiniciemos nuestro servidor:
/sbin/sysctl -w net.ipv4.ip_forward=1
/sbin/iptables -t nat -A POSTROUTING -s 10.254.254.0/24 -j MASQUERADE
Configurar VPN en Windows
En el panel de control de Windows en el buscador escribiremos VPN y entraremos en “Cambiar redes privadas virtuales” y pulsaremos en “Agregar una conexión VPN” y rellenaremos los campos con nuestros datos (IP, PSK, usuario y contraseña)
Además cambiaremos que se use la VPN para todo el tráfico, entraremos en la opción derecha de “Cambiar opciones del adaptador” seleccionaremos el adaptador de VPN que hemos creado e iremos a “Propiedades”, pestaña “Funciones de red” haremos doble clic en Protocolo TCP/IPv4 e iremos a “Opciones avanzadas” y desactivaremos “Usar la puerta de enlace predeterminada en la red remota”
Ya podemos empezar a usar nuestra VPN.
Configurar VPN en Android
Para configurar nuestra VPN en Android iremos a Ajustes, más redes y entraremos en la opción VPN y pulsaremos al + 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!