El post anterior hablamos de como configurar una VPN con WireGuard el nuevo chico de la cuadra quien viene ya con la ultima version de PfSense como les mencione, es bien sencillo hacerlo, si revisan ese post muchos de los pasos sin similares, es la simplicidad de WireGuard.
Post: WireGuard VPN Punto a Punto con Pfsense Link.
Video YouTube Aqui https://youtu.be/S8n2qYEYU9w
Claro que es un producto que aparece en el 2020 y que esta teniendo mucho desarrollo por que realmente podemos comunicarnos de manera segura sin tener que entender muchos terminos u opciones.
Muchos lo ven como rival de OpenVPN o IPSEC, para mi es una bendicion mas que tenemos a la mano en nuestra cartera de herramientas bajo PfSense.
Entonces hoy toca mostrar como podemos llevar a cabo lo que se conoce como “VPN Road Warriors” o “VPN Home Office” desde que inicio la pandemia cambio el giro. Que no es otra cosa para usuarios que se necesitan conectar a la red de la empresa desde cualquier parte del mundo.
Esto era comun para los vendedores, aquellos que salen a buscar clientes y necesitan acceder a el ERP de la empresa para capturar los datos del nuevo prospecto a cliente, ver precios nuevos o capturar nuevos precios ya que acaban de cerrar un trato con un cliente en China para un material clave para el producto que fabrican, hoy en dia agregamos a los que necesitan trabaja desde casa, pero sin mas preambulos, vayamos a lo que nos interesa saber, como hacerlo con WireGuard.
Veamos el diagrama de la red, una imagen dice mas que mil palabras.

Con la red de la figura 1 es con la que vamos a trabajar, algo sencillo de ahi se desprenden cosas mas complejas.
Para este caso una VPN Movil tiene 2 posibles maneras de acceder a los recursos, tanto OpenVPN como IPSEC tambien las proporcionan:
- Una vez establecido el tunel VPN, acceder a la(s) rede(s) privadas de la organizacion , cuando necesite navegar este cliente remoto usara su propio ISP, a eso se le conoce como “Split Tunnel” o “Tunel Dividido”.
- Una vez establecido el tunel VPN, acceder a la(s) rede(s) privadas de la organizacion , cuando necesite navegar este cliente lo hara atraves del mismo tunel o sea usara el ISP de la organizacion, esto se le conoce como “Full Tunnel” o “Tunel Completo”.
Vamos a mostrar como llevar cabo ambos modos de operacion con Wireguard, viendo la figura 1, el cliente Android sera “Split Tunnel” y el cliente Windows sera “Full Tunel”.
Ahora si vayamos ya a el GUI de PfSense para iniciar.
Configuracion de WireGuard “Split Tunnel” para Android.
1; Pfsense -> Menu Principal -> VPN -> WireGuard.



2; Habiltamos la interfaz nueva de WireGuard.
Pfsense->Menu Principal->Interfaces->Assignments.





Listo, ya habilitamos la interfaz, para verla nos vamos a: Pfsense -> Status -> Interfaces.
Tendrian algo similiar a esto:

3; Vamos a usar la pagina www.wireguardconfig.com para generar las llaves de nuestros equipos moviles.
Vamos a ingresar los parametros de nuestra configuración para generar los datos:

Y obtenemos en la parte baja lo que buscamos.
NOTA: Recuerden que nosotros ya tenemos los datos del servidor(PfSense), tanto llave publica como privada, esta pagina me sirve para crear las llaves tanto publicas como privadas de los clientes, solo para esto, si ustedes desean usar mas informacion de aqui no hay problema.

De lo anterior podemos ver que ya casi nos da el archivo de configuracion listo para usar, solo hacemos los cambios acorde a nuestro nodo, de ahi solo tomare la llave privada y publica de este cliente.
NOTA: No copien las claves, generen sus propias llaves por seguridad, este es solo un ejemplo.
4; Agregamos el nodo para Android.
De nuevo nos vamos a el menu de WireGuard, Pfsense -> VPN -> WireGuard.
NOTA: Tengan a la mano la llave privada de Pfsense(servidor).



Ya con la informacion de la pantalla anterior, mi archivo de configuracion quedaria asi:
[Interface] Address = 10.10.90.3/24 ListenPort = 51821 PrivateKey = f98HgNhRi3S62vP0YQ2ayIlFQTUMxoAhBAcRlJJxJRo= DNS = 192.168.15.1
[Peer] PublicKey = B3is6hCBZKc746zNIOsqdR5bkHoNIbq79n5AecXUrnI= PresharedKey = 1gK5F8bKtG3Kj51HmyBw6kGSXKzM/X72h4rQ8MQrVZk= AllowedIPs = 10.10.90.1/32,192.168.15.0/24 Endpoint = my-dyn-dns o IP estatica:51821
NOTA: No se les pase cambiar el parametro “Endpoint” por la IP de su WAN si es estatica o bien el nombre del dyndns como es mi caso.
Finalizamos salvando la configuracion como indica la siguiente imagen.

Quedando algo similar a esto.

Ya tenemos un nodo dado de alta.
Ya tenemos el archivo de configuracion de este cliente Android, ahora es ver como hacerlo llegar, usare el correo para esto.
5; Abrir trafico en la WAN de Pfsense Port-Forward.
Ahora lo que sigue es abrir la comunicacion para el nodo recien configurado pueda contactar a Pfsense para establecer el tunel.
Pfsense -> Firewall -> NAT->Port Forward.

No importa si hay mas reglas, nosotros vamos a agregar la de Wireguard para este tunel.
Quedando asi:



Listo, ya esta abierto el trafico exterior.
6; Abrir trafico a nive LAN.
Ahora lo que sigue es habilitar que puertos-protocolos vamos a permitir que nuestros usuarios que estan fuera de la organizacion pueda alcanzar atraves del tunel, para nuestros clientes moviles voy habilitar el ping y hacer la prueba. Ya cuando pasemos a el cliente windows vamos habilitar otros puertos.
WireGuard nos muestra en el firewall 2 interfaces, las reglas se deben aplicar en la que dice “WireGuard”.

Recuerden que aqui la regla es de entrada(inbound), entonces el origen son nuestros clientes que estan fuera de la organizacion, como en este caso la red 10.10.90.0/24 usuarios moviles.
Vamos a dar de alta las siguientes reglas:

NOTA: Pueden crear Alias para hacer esto mas limpio si gustan, lo importante es entender como configurar WireGuard.
Que los equipos pueda hacer uso del dns de la empresa, ademas de Ping, VNC, Compartidos de Windows
7; Instalación de WireGuard Android.
Nos vamos a el play Store y buscamos a Wireguard:



Recuerden que vamos a importar un archivo con la configuracion ya lista.

Yo me envie la configuracion por correo, ya la descargue, ahora sigue buscar el archivo.



Si observamos al figura anterior, vemos que tenemos trafico tanto de entrada(rx:) como de salida(tx:). Lo cual me indica que ya esta el telefono hablando con Pfsense.
8; Pruebas de comunicacion.
8.1 Ping desde telefono a interface Pfsense WireGuard 10.10.90.1.

8.2 Ping hacia IP de Pfsense Lan 192.168.15.1.

8.3 Por ultimo, veamos si podemos acceder a el GUI de Pfsense desde nuestro smartphone.

Por ultimo, puede nuestra LAN comunicarse con nuestro equipo remoto atraves del tunnel?

Si las reglas lo permiten, claro que si. :-).
Podemos ver que la VPN “Split Connection”, como puedo saber si es esta la configuración?
Muy sencillo, vayan a una pagina que les diga su ip publico, por ejemplo: https://www.cual-es-mi-ip.net/ y debe darles la IP publica de su proveedor de telefonia celular, asi de simple :-).
Ahora pasemos a la siguiente configuracion con un equipo Windows 10 tipo “Full Tunnel”.
Configuración de WireGuard “Full Tunnel” con Windows 10.
Ya tenemos casi todo listo, empecemos.
9; Configurar otro nodo para el nuevo dispositivo corriendo Windows 10 Pro el cual esta en modo “Home-Office” desde su hogar.
Pfsense -> VPN -> WireGuard.
Abrimos la configuracion actual en modo edicion y agregamos un nuevo nodo.

Vamos a basarnos en el archivo de configuración del cliente android y lo ajustamos a este nuevo cliente con su propia llave privada.



Ahora si, ya tenemos 2 clientes.
Por cada cliente remoto que necesiten dar de alta tiene que repetir estos pasos, si fueran 50, tendrian una lista de 50 Peers, asi funciona WireGuard.
10; Abrir trafico para navegacion web de este cliente.
Como tenemos un cliente con “Full Tunnel” debemos abrir el trafico a nivel firewal para que este equipo pueda navegar atraves de la vpn usando la conexion WAN de Pfsense, solo agregare 2 reglas nuevas para esto, http y https solo para este cliente, quedando asi.

De lado del servidor Pfsense, ya esta listo, pasemos a el equipo Windows 10.
11; Archivo de configuración para Windows.
Adaptamos el archivo que usamos para Android para reutilizarlo para Windows, nueva llave publica y llave privada, su propio llave compartida para ingresarle mas ruido a la comunicacion.
[Interface]
Address = 10.10.90.2/24
ListenPort = 51821
PrivateKey = gArRcBD/WeEdztYin87ZLM7vAzlw6mpkT0iNUcThc28=
DNS = 192.168.15.1
[Peer] PublicKey = B3is6hCBZKc746zNIOsqdR5bkHoNIbq79n5AecXUrnI= PresharedKey = 0IPHbynH24+NsIR29/EeLKDwJ2+5bOc5Qt3wR+PxzL4= AllowedIPs = 0.0.0.0/0 Endpoint = mi-dyndns :51821
NOTA: Aqui esta la clave para el “Full-Tunnel”, el campo “AllowedIPs”, cuando le agregamos la red 0.0.0.0/0 que significa todo los IP’s a nivel Internet, enruta todo el trafico de este cliente por el tunnel, asi de simple.
La llave publica la obtenemos de la pagina que usamos para generar nuestras llaves “Client 1”.
Este archivo lo mando por correo el cliente Windows para hacer el mismo proceso usado en Android.
12; Instalacion y configuracion de WireGuard en Windows.
Ahora nos vamos a la pagina oficial de WireGuard en el equipo Windows, descargamos e instalamos el cliente.


La instalacion es rapida.

Ahora ya con nuestro archivo de configuracion listo, lo importamos.
13; Importación de archivo.


Si tiene oportunidad, deshabiliten el firewall de Windows no vaya ser que les afecte, esto es mientras hacen las pruebas.
14; Activamos la VPN como lo indica la figura anterior y revisamos comunicacion.

En la figura anterior podemos ver que el tunel esta activo, sin embargo no se confien, revisemos la pestaña Log a ver si no vemos nada raro.

No vemo nada raro, recuerden que Wireguard inicia la comunicacion cuando uno de los nodos desea comunicarse, de lo contrario no hay trafico en ningun sentido.
15; Prueba de fuego.
Vamos pingear desde este equipo a el ip de Pfsense en la LAN 192.168.15.1.

Fluyo la comunicacion.
Pingear el nodo en la red LAN 192.168.15.99.

Fluyo la comunicacion.
Ahora veamos si podemos acceder via VNC a ese mismo equipo.

Ya estamos controlando el equipo de la LAN via VNC atraves de la VPN desde el cliente remoto.
Descargemos un archivo, todo debe salir desde Pfsense por el tunel VPN ya que es un “Full Tunnel”.
Vamos la imagen USB de Pfsense.


Como podemos ver, la descarga esta saliendo desde Pfsense y enviadose a el cliente por el tunnel, “Full Tunnel” operando.
Ahora si, si desean ver de donde viene la conexion en su cliente remoto, regrese a el punto 7.3 y desde este equipo Windows ejecuten la pagina ‘cual es mi IP’, les debe dar la IP publica de Pfsense :-).
Resumen.
Hasta terminamos con este post sobre como configurar usuarios Home-Office, Road-Warrios como le gusten llamar atraves de Pfsense con WireGuard, cualquier duda de este post en los comentarios de favor. Nos vemos pronto, saludos!!!
One thought on “PfSense 2.5 WireGuard VPN Usuarios Moviles.”