PfSense 2.5 WireGuard VPN Usuarios Moviles.

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.

Figura 1. Diagrama de Red.

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:

  1. 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”.
  2. 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.

Figura 2.
Figura 3.
Figura 4.

2; Habiltamos la interfaz nueva de WireGuard.

Pfsense->Menu Principal->Interfaces->Assignments.

Figura 5.
Figura 6.
Figura 7.
Figura 8.
Figura 9.

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

Tendrian algo similiar a esto:

Figura 10.

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:

Figura 11.

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.

Figura 12.

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).

Figura 11.
Figura 12.
Figura 13.

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.

Figura 14.

Quedando algo similar a esto.

Figura 15.

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.

Figura 16.

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

Quedando asi:

Figura 17.
Figura 18.
Figura 19.

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”.

Figura 20.

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:

Figura 21.

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:

Figura 22.
Figura 23.
Figura 24.

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

Figura 25.

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

Figura 26.
Figura 27
Figura 28.

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.

Figura 29. Ping con Exito.

8.2 Ping hacia IP de Pfsense Lan 192.168.15.1.

Figura 30. Ping a Lan Pfsense con exito.

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

Figura 31.

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

Figura 32.

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.

Figura 33.

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

Figura 45.
Figura 46.
Figura 47.

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.

Figura 48.

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.

www.wireguard.com/install/

Figura 49.
Figura 50.

La instalacion es rapida.

Figura 51.

Ahora ya con nuestro archivo de configuracion listo, lo importamos.

13; Importación de archivo.

Figura 52.
Figura 53.

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.

Figura 54.

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.

Figura 55.

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.

Figura 56. Ping a Pfsense desde Cliente Windows.

Fluyo la comunicacion.

Pingear el nodo en la red LAN 192.168.15.99.

Figura 57.

Fluyo la comunicacion.

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

Figura 58.

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.

Figura 59. Descargado Pfsense desde cliente remoto.
Figura 60.

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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s