Hoy os quiero dejar un tutorial de cómo instalar WireGuard en pfSense. Muchos usuarios se quejan de la lentitud de OpenVPN en las conexiones cuando enrutamos todo el tráfico a través del túnel, y con esta solución conseguimos una mayor velocidad con la misma seguridad.

Instalar Wireguard En Pfsense

Descargar e Instalar WireGuard en pfSense

Primeramente, debemos instalar el paquete de WireGuard en nuestro firewall, ya que, aunque en alguna versión anterior estaba integrado en pfSense, a día de hoy no está, y debemos instalarlo, para ello hacemos lo siguiente:

  • Vamos a System -> Package Manager
  • Available Packages
  • Buscamos el paquete de WireGuard y lo instalamos
  • Esperamos que termine y ya lo tendríamos instalado

Ahora vamos a Proceder con la configuración

Nos vamos a VPN y Wireguard ahí tenemos que hacer lo siguiente:

Entramos en Settings

Habilitamos WireGuard y Guardamos

Configurar un Tuunel

Yo aquí, os recomiendo que uséis esta página: https://www.wireguardconfig.com/, ya que os da las configuraciones tanto de los túneles como de los peers.

  • Listen Port: 51820
  • Número de Clientes a vustra elección, tantos como necesitéis
  • CIDR, la red que vais a usar para el túnel VPN por ejemplo 192.168.10.1/24
  • Client Allowed IP: Aqui temenos dos opciones
    • Si queremos hacer un túnel completo, en que nuestros clientes salga toda su navegación por nuestro firewall, debemos de usar la siguiente IP: 0.0.0.0/0, ::/0
    • Si por el contrario, queremos que accedan a los recursos de nuestra red, pero todo lo que sea fuera vaya por su propia conecion, debemos establecer las redes de nuestro firewall a las que queremos que tenga acceso, por ejemplo 192.168.0.0/24, 192.168.3.0/24, etc.
  • Endpoint: debéis de poner la IP pública del firewall seguido del puerto 0.0.0.0:51820
  • DNS: Poner el DNS que use el firewall y en definitiva se use en la red.
  • Post-Up rule se deja en blanco
  • Post-Down rule se deja en blanco
  • Marcar la opción de Use Pre-Shared Keys (Enhanced Security), para darle un punto más de seguridad
  • Dar a Generate Config y voila, ya tienes las configuraciones
  • Descárgate el archivo ZIP y guárdalo en un lugar seguro.

Ahora volvemos a nuestro pfSense y vamos a VPN -> WireGuard -> Tunnels

  • Add Tunnel
  • Le ponemos el nombre
  • Listen Port, dejamos el 51820 o usamos el que deseemos y hayamos usado en el paso de la creación de las claves
  • Private KEY, tenemos que copiar el private key de la opción Server y nos genera automáticamente la Public Key
  • Inteface Adress, le ponemos la IP de la red que hayamos elegido y su mascara por ejemplo 192.168.10.1/24
  • Le damos a Save Tunnel y ya tenemos el túnel creado, ahora a por el siguiente paso

Creación de los Peers

Ahora nos vamos a Peers

Add Peer, este paso deberás repetirlo tantas veces como clientes hayas creado

  • Tunnel: Seleccionamos el tunnel que hemos creado anteriormente
  • Descripción, yo recomiendo poner el nombre del usuario
  • Keep Alive dejarlo en blanco
  • Public Key, copiamos y pegamos el Public Key generado para este usuario Client 1
  • Pre-shared Key, copiamos y pegamos la que se ha generado para Client 1
  • Allowed IPs copiamos la IP que se ha generado para Client 1
  • Guardamos y salimos

Añadir la Interface de WireGuard

Ahora, debemos agregar la nueva interface de WireGuard, para ello:

  • Vamos a Interfaces -> Assigments
  • Available network ports, desplegamos y añadimos tun_wg0 y le damos +Add
  • Entramos en la nueva Interface creada la habilitamos y le ponemos un nombre
  • IPv4 Configuration Type -> Static IPv4
  • IPv4 Adrees, le ponemos la IP de la red que hayamos elegido en el paso 3 al configurar el tunnel con su mascara 192.168.10.1/24
  • Guardamos y ya tenemos generada la Interface

Configurar Outbound

Para que nuestra VPN Wireguard funcione correctamente tenemos que tener bien configurado el Outbound del NAT, para ello, hacemos lo siguiente:

  • Vamos a Firewall -> NAT -> Outbound
  • Outbound Mode, lo ponemos en Hybrido
  • Y añadimos una nueva regla
    • Interface WAN
    • IPv4
    • Protocolo any
  • Source elegimos Network y ponemos la red que hayamos asignado en la configuración del servidor de WireGuard por ejemplo 192.168.10.0/24
  • El destino lo dejamos en Any y guardamos

Generar reglas

Ahora toca generar las reglas del firewall, yo os recomiendo que primeramente hasta que consigáis conectar, dejéis todo any -> any y una vez que ya estéis seguros de que está funcionando correctamente el túnel, securizar bien la salida de esta nueva interface al igual que tenéis las demás interfaces configuradas, una buena opción es usar las reglar flotantes para aplicarlas a todas las interfaces.

Para agregar la regla:

  • Firewall -> Rules
  • Vamos a la interface de WireGuard
  • Le damos a Add
  • Protocol ANY
  • Guardar

Esto es la regla Any -> Any de la que antes os comentaba, cuando llegues al final, y veas que todo funciona correctamente, recuerda securizar bien esta nueva interface.

Abrir puerto de WireGuard

Ahora vamos a proceder a abrir el puerto que hayamos elegido en la configuración del Tunnel para que nuestros clientes puedan conectar a nuestro servidor VPN WireGuard.

  • Firewall NAT
  • ADD
  • Inteface WAN
  • Destination WAN Address
  • Redirect Target Port: El puerto elegido para el túnel
  • Guardamos y aplicamos cambios

Probar dispositivos

Para configurar los dispositivos, es muy sencillo, solo tienes que bajarte la aplicación de WireGuard, para tu dispositivo, abajo dejamos los enlaces y o bien capturar el QR del cliente que desees, o enviar el archivo de configuración creado en la página de WireGuard, le das a conectar y comprueba en: VPN -> WireGuard -> Status que los peers se conectan correctamente.

Descargas:

  • Windows
  • MAC
  • Linux
    • Ubuntu: $ sudo apt install wireguard
    • Debian: # apt install wireguard
    • Fedora: $ sudo dnf install wireguard-tools
  • Android
  • iOS

Recomendaciones de Seguridad

Como siempre que instalamos un nuevo servicio en nuestro Firewall, es recomendable adaptarlo a la seguridad del mismo, por ello es importante realizar las siguientes acciones:

  • Configura las reglas como tengas configuradas las de las de mas interfaces
  • Recuerda agregar WireGuard a pfBlocker, Squid, Snort, Suricata, etc…
  • Comparte cada clave con quien vaya a usarla
  • Elimina aquellos peers que ya no se utilicen
  • Habilitar GEOIP para que solo sea accesible desde los países que deseemos

¿Por qué confiar en DCSeguridad?

Si estas interesado en instalar un firewall en tu empresa, y securizar el mismo puedes ponerte en contacto con nosotros a través del apartado contacto de nuestra web.