En esta guía vamos a ver un caso práctico sobre cómo configurar una VPN Cliente-Servidor con OPNSense utilizando WireGuard.
También trataremos paso a paso cómo configurar el cliente para conectarnos al servidor.
Para más información de como configurar un router OPNSense en su proyecto de Soax, visite: OPNSense
Para configurar el servidor de VPN nos dirigiremos a la pantalla "VPN > WireGuard > Instances" desde el router OPNSense. Desde allí, podremos añadir una nueva instancia.
En el formulario de creación definiremos el nombre de la instancia, generaremos un par de claves (pulsando en el engranaje), el puerto de escucha (51820) y el rango de IPs que van a asociarse a los clientes.
El campo "Tunnel address" tiene que ser una IP y subred distintas a las redes configuradas en el router. La subred viene definida por la máscara (/24) y debe tener un tamaño adecuado que incluya a todos los clientes que utilizarán el túnel.
Tras guardar la configuración, habilitaremos WireGuard y puslaremos "Apply".
Tras aplicar la configuración, habremos creado correctamente la instancia del servidor.
Antes de añadir el cliente, es necesario realizar ciertas configuraciones de red que permitan la conexión de los clientes que se crearán posteriormente.
Lo primero que haremos será crear una interfaz para la VPN creada. Para ello, simplemente nos dirigiremos a la pantalla "Interfaces > Assignments" y observamos que el campo "Device" ya está seleccionada la interfaz de la VPN y simplemente tendremos que definir el nombre (Description) y añadirla.
Una vez añadida, procedemos a habilitarla desde "Interfaces > WireGuardVPN". Es importante configura el valor de la MTU a 1280, ya que mejora el rendimiento.
El nombre de la pantalla de configuración variará en función del nombre asociado a la interfaz de WireGuard.
Tras habilitarla y definir la MTU, habremos creado correctamente la interfaz asociada a la VPN.
A continuación, tendremos que definir ciertas reglas en varias interfaces para permitir que el servicio pueda funcionar correctamente.
Desde la pantalla "Firewall > Rules > WAN" crearemos una regla que permita el tráfico UDP al puerto 51820. Esta regla se define para permitir la conexión de los clientes a la hora de establecer el túnel.
En este ejemplo se permite el tráfico de cualquier origen, pero es recomendable acotar el origen únicamente a las IPs o rangos que se vayan a conectar. De esta forma podemos evitar posibles problemas de seguridad.
En la reglas de la interfaz WireGuardVPN definimos una regla para el tráfico que tenga como origen la propia red (WireGuardVPN net) para permitir el tráfico a través del túnel.
Es recomendable crear reglas de normalización para asegurar que el tráfico puede pasar a través del túnel de WireGuard sin ser fragmentado, lo cual puede causar problemas.
Añadiremos esta regla desde el apartado "Detailed Settings" en la pantalla "Firewall > Settings > Normalization":
Crearemos una regla que permita cualquier tráfico en la interfaz "WireGuard (Group)"
Es importante asegurar en el campo interfaz seleccionamos el grupo (Group) asociado a WireGuard no el nombre de la interfaz.
Tras crear la regla, aplicaremos los cambios para guardar la configuración.
Podemos crear el cliente desde la pantalla "VPN > WireGuard > Peer Generator". Una vez allí, nos encontraremos un formulario con algunos de los campos ya completados automáticamente con la información del servidor.
Para terminar la configuración, añadiremos el endpoint (<IP_interfaz_WAN> : <puerto_Wireguard>), crearemos una clave precompartida para mayor seguridad y definiremos los servidores DNS.
Una vez completado este proceso, copiaremos el contenido del apartado "Config" para utilizarlo posteriormente en nuestro cliente de Wireguard.
Por último, descargaremos el cliente de WireGuard en el ordenador que vayamos a utilizar como cliente para conectar al servidor.
Una vez instalado, añadiremos un túnel vacio y copiaremos el contenido del apartado "Config" obtenido en el paso anterior.
Si no ha copiado el contenido puede eliminar el cliente y repetir el proceso de creación.
Tras guardar la configuración, podremos activar el túnel y conectarnos correctamente con el servidor creado en OPNSense.
Puede consultar más información acerca de la configuración en la documentación oficial de OPNSense: WireGuard Setup