Configuración VPN¶
Índice
VPN de Opuntia¶
Opuntia es compatible con una amplia variedad de tecnologías de VPN. Las principales opciones para Opuntia son los siguientes tipos de Vpn.
- Wireguard
- OpenVpn
- IPsec
- IPsec/L2TP
Detallaremos cada opción en una sección del presente capítulo del manual de Opuntia.
Wireguard¶
WireGuard es una solución VPN moderna, sencilla y rápida que utiliza la criptografía más avanzada. Está diseñado para reemplazar a las VPN IPsec, pero es más sencillo de configurar. Y también es más eficaz que OpenVpn. El sitio oficial de WireGuard enumera las siguientes ventajas principales de WireGuard.
- Sencillo y fácil de usar
- Criptográficamente sólido
- Superficie de ataque mínima
- Alto desempeño
WireGuard también es muy tolerante a los cambios en la red. Por ejemplo, si un dispositivo cliente está conectado a un sistema Opuntia utilizando WireGuard y la dirección IP pública de los dispositivos cliente cambia debido a la itinerancia a una nueva red; el túnel vpn de WireGuard puede ser restablecido en sólo milisegundos. Esto permite un funcionamiento sin problemas en condiciones de red cambiantes.
Por estas razones WireGuard es la solución VPN preferida para Opuntia.
Generar un par de claves¶
WireGuard requiere un par de claves públicas y privadas. Y todos los dispositivos que se conecten necesitarán conocer la clave pública de la interfaz de WireGuard. Debe haber una clave privada única para cada interfaz de WireGuard. Es posible generar estas claves en otros sistemas y luego utilizarlas en un sistema Opuntia. Pero actualmente no hay una opción integrada para generar un nuevo par de claves desde la GUI Web de Luci. Esta funcionalidad se añadirá en el futuro.
Para generar un nuevo par de claves de WireGuard tendrá que acceder a la CLI de Bash; le sugerimos ver el capítulo Acceso-SSH del manual. Una vez que tenga una consola CLI activa, puede ejecutar los siguientes comandos.
mkdir -p /etc/wireguard
cd /etc/wireguard
wg genkey | tee ./privatekey | wg pubkey > ./publickey
Los dos primeros comandos crean un directorio /etc/wireguard. Sólo la última línea crea efectivamente la clave pública y privada. Las claves resultantes estarán codificadas en Base64. Para el resto de este capítulo utilizaremos las siguientes claves de ejemplo.
privatekey: 4NM0x6/2ndJktcHTfRXnWS3tzlo95QEgPBsen+swjFw=
publickey: 2wGMjbn6FU4+QKk7y1s37LuOfotw5moUR2LlFwXqJQ8=
Interfaz gráfica de usuario web (GUI Web)¶
Para funcionar, una VPN de WireGuard requiere una interfaz de WireGuard y una configuración de pares para cada dispositivo conectado a la VPN.
Para comenzar a crear una nueva interfaz de WireGuard primero navegue a la página de interfaces de la red.
Menú principal - Red –> Interfaces
Luego, haga clic en el botón «Añadir nueva interfaz».

Dé nombre su nueva interfaz y seleccione el protocolo WireGuard VPN.

A continuación, verá los ajustes de configuración de la interfaz de WireGuard. Inicie la configuración añadiendo la clave privada para esta interfaz de WireGuard. La clave privada sólo se utilizará en la configuración de la interfaz. Para permitir
Nota
WireGuard utilizará un puerto de escucha predeterminado de 51820. Si tiene varias interfaces de WireGuard tendrá que especificar diferentes puertos udp para cada interfaz.
Aunque técnicamente no es necesario, le recomendamos que establezca una dirección IP en la interfaz del WireGuard.
IPsec/L2TP¶
IPsec/L2TP es una tecnología VPN muy extendida, ya que el soporte de clientes está integrado en la mayoría de los sistemas operativos. Cuenta con una seguridad robusta de IPsec con la adición del protocolo de túnel L2TP. Esto añade complejidad a la ya enriquecida vpn IPsec. Esto permite asignar un nombre de usuario y una contraseña a cada usuario. A veces también se considera una VPN multifactor (nombre de usuario/contraseña y PSK) que puede cumplir los requisitos de configuración en algunos entornos de seguridad remotos.
Actualmente, a partir de la versión 4.8.17 de Opuntia, esta configuración no ha recibido un menú de configuración de la GUI Web. Vamos a describir el método de CLI para configurar este tipo de VPN. Para configurar correctamente IPsec/L2TP necesitará los siguientes elementos.
- Dirección IP pública
- Clave precompartida
- Nombre de usuario para cada usuario
- Contraseña para cada usuario
Dado que las opciones predeterminadas para IPsec/L2TP es negociar automáticamente la mayoría de las opciones para este tipo de VPN, la configuración total no es tan compleja. Hay cuatro archivos principales que deben ser editados.
El primer archivo que debe ser editado es /etc/ipsec.secrets.
# /etc/ipsec.secrets - strongSwan IPsec secrets file
203.0.113.1 %any : PSK "3dTamd01m"
Este archivo configura su dirección IP pública y la clave precompartida. En este ejemplo, la dirección 203.0.113.1 es su dirección IP pública a la que se conectarán los clientes. El «%any» permite que cualquier dirección IP se conecte a esta VPN. Se puede utilizar para limitar los clientes que se conectan, pero generalmente se establece en «%any» en la mayoría de las configuraciones de VPN.
La clave precompartida en este ejemplo es una cadena de texto corta 3dTamd01m. Esta cadena puede ser cualquier cadena ASCII válida.
El segundo archivo es el archivo principal de configuración de IPsec /etc/ipsec.conf
/etc/ipsec.conf¶# ipsec.conf - strongSwan IPsec configuration file # basic configuration config setup # strictcrlpolicy=yes # uniqueids = no # Add connections here. conn vpnserver type=transport authby=secret rekey=no keyingtries=1 left=203.0.113.1 leftprotoport=udp/l2tp right=%any rightprotoport=udp/%any auto=add
Aquí puede ver la configuración de la clave precompartida IPsec denominada vpnserver. Este define los parámetros IPsec para la conexión. Las opciones especificadas son authby=secret, left=203.0.113.1, right=%any y ambos puertos de protocolo derecho (right) e izquierdo (left).
La configuración authby le dice al subsistema IPsec que use la clave precompartida que establecimos en el archivo /etc/ipsec.secrets. La configuración izquierda define la dirección IP pública que el sistema está utilizando y esta derecha permite que cualquier cliente se conecte. Las dos opciones de protocolport especifican que sólo el puerto UDP 1701 será encriptado usando IPsec.
Esto termina la configuración de IPsec que necesita configurarse.
Los dos siguientes archivos se ocupan de la configuración de L2TP. El primero es el archivo de configuración /etc/xl2tpd/xl2tpd.conf.
/etc/xl2tpd/xl2tpd.conf¶[global] port = 1701 auth file = /etc/xl2tpd/xl2tp-secrets listen-addr = 203.0.113.1 access control = no debug tunnel = no [lns default] exclusive = yes local ip = 192.168.88.1 ip range = 192.168.88.10-192.168.88.200 hidden bit = no length bit = yes require chap = yes refuse pap = yes name = vpn ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd
Este es el archivo de configuración del servidor L2TP. Aquí se ve la dirección IP pública referenciada en el ajuste global listen-addr. El lns (servidor L2TP) predeterminado especifica la dirección IP local que se asignará al router y a los dispositivos cliente.
En este ejemplo, hemos elegido establecer la dirección IP del router en 192.168.88.1 y permitimos a los clientes utilizar un intervalo de 192.168.88.10 a 192.168.88.200. Si está accediendo a otras redes internas, es posible que tenga que añadir una ruta a esta red desde otros dispositivos.
Otro ajuste a tener en cuenta es la opción ppp debug = yes. Esto hará que se generen registros detallados del sistema cuando los clientes se conecten al servicio vpn.
El archivo de configuración final define los usuarios y las contraseñas que los clientes deben proporcionar para acceder a la VPN.
/etc/ppp/chap-secrets¶# Secrets for authentication using CHAP # client server secret IP addresses alice vpn 47roses * bob vpn D3adB33f *
Este archivo tiene el formato estándar de chap-secrets. Aquí tenemos dos usuarios configurados; alice y bob. Vemos que la configuración del servidor es vnp que es el nombre del lns predeterminado establecido en nuestro archivo xl2tpd.conf de ejemplo anteriormente. También vemos las dos contraseñas que han elegido estos usuarios. Esta configuración «*» permite al cliente obtener cualquier dirección IP del grupo que hayamos definido.
Configuración del cortafuegos¶
Por defecto, Opuntia necesita ser configurado para permitir conexiones L2TP entrantes en la zona del firewall wan. Consulte el capítulo de cortafuegos para más información general.
La regla que necesitamos añadir es una regla de aceptación para la zona de entrada Wan que permite el tráfico de los puertos TCP y UDP 1701.
Navegar a la página de configuración del cortafuegos (firewall).
Menú principal - Red –> Firewall –> Reglas de tráfico

Una vez instalada esa regla, verá esto en el resumen del conjunto de reglas del cortafuegos.

Configuración del cliente¶
MacOS Big Sur¶
MacOS soporta clientes IPsec/L2TP de forma nativa. En esta sección detallaremos el proceso de configuración de un cliente MacOS para conectarse a nuestro ejemplo anterior de vpn IPsec/L2TP.

El primer paso es añadir una nueva interfaz en las Preferencias del sistema–>*Red*. Puede crear una nueva interfaz haciendo clic en el signo + de la parte inferior izquierda del menú de la interfaz. Fije el «Tipo de interfaz» a VPN y el «Tipo de VPN» a L2TP sobre IPsec. El «Nombre del Servicio» puede establecerse al nombre preferido para su VPN. En nuestro ejemplo lo fijaremos como L2TP-VPN.

El siguiente paso es configurar la «Dirección del servidor» básica y el «Nombre de la cuenta» para la VPN. La «Dirección del servidor» será la dirección IPv4 pública que establecimos anteriormente; o en este ejemplo 203.0.113.1. El «Nombre de la cuenta» será alice.
Los dos siguientes elementos de configuración se pueden establecer pulsando el botón «Configuración de la autenticación…» .

En el cuadro de diálogo «Configuración de la autenticación…» deberá establecer la contraseña del usuario. En este ejemplo, la contraseña de alice es 47roses y se introduce en el campo «Contraseña» de la sección «Autenticación de usuario».
A continuación, establezca la clave precompartida en el campo «Secreto compartido» (Shared Secret) de la sección «Autenticación de máquina» (Machine Authentication). En nuestro ejemplo sería 3dTamd01m. Esto concluye los ajustes mínimos de configuración para una VPN IPsec/L2TP.
Configuración opcional de MacOS Big Sur
MacOS IPsec/L2TP tiene dos opciones de configuración comunes que se describen a continuación.

Por defecto, MacOS no enruta todo el tráfico a través de la Vpn IPsec/L2TP. Esta es una configuración solicitada con frecuencia. Acceda a la opción de configuración avanzada de vpn. A continuación, en la pestaña Opciones seleccione «Enviar todo el tráfico a través de la conexión VPN».

Al enrutar todo el tráfico a través de la VPN también es necesario definir sus servidores DNS. Acceda a la opción de configuración avanzada de vpn. A continuación, en la pestaña DNS añada un nuevo servidor DNS haciendo clic en el botón «+» en la parte inferior izquierda del cuadro de diálogo. En este ejemplo establecemos los servidores DNS públicos IPv4 de Google.