WireGuard es una solución moderna de VPN (Red Privada Virtual) que se destaca por su simplicidad, alta eficiencia y fuerte enfoque en la seguridad. A diferencia de otras soluciones de VPN como OpenVPN o IPSec, WireGuard está diseñado para ser fácil de configurar y utilizar, al mismo tiempo que ofrece un rendimiento superior. Integrar WireGuard en pfSense, una plataforma de firewall de código abierto y enrutador altamente flexible, puede mejorar significativamente la seguridad y la eficiencia de tu red.
Paso 1: Instalación del Paquete WireGuard en pfSense
- Accede a la interfaz web de pfSense. Abre tu navegador web y dirígete a la dirección IP de tu firewall pfSense.
- Inicia sesión con tus credenciales administrativas.
- Dirígete a System > Package Manager:
- En la parte superior del menú principal, selecciona «System».
- Luego, en el menú desplegable, selecciona «Package Manager».
- Instala WireGuard:
- Haz clic en la pestaña «Available Packages».
- En el campo de búsqueda, escribe «WireGuard» y presiona Enter.
- Busca el paquete WireGuard en la lista y haz clic en «Install».
- Confirma la instalación y espera a que se complete. Verás un mensaje de éxito cuando se haya instalado correctamente.

Paso 2: Crear un Túnel de WireGuard
- Ve a VPN > WireGuard:
- En el menú principal, selecciona «VPN».
- Luego, selecciona «WireGuard».
- Añadir un nuevo túnel:
- Haz clic en «Add Tunnel» para agregar un nuevo túnel.
- Configura el túnel:
- Enable: Marca esta casilla para habilitar el túnel.
- Name: Asigna un nombre descriptivo al túnel (por ejemplo, «VPN_WireGuard»).
- Description: (Opcional) Puedes añadir una descripción para identificar fácilmente el túnel.
- Interface: Selecciona una interfaz (normalmente se usa
wg0
para el primer túnel). - Listen Port: Introduce el puerto en el que WireGuard escuchará (por ejemplo,
51820
).
- Generar claves:
- Private Key: Haz clic en «Generate» para crear una clave privada.
- Public Key: Este campo se completará automáticamente basado en la clave privada generada.
- Guarda los cambios:
- Haz clic en «Save».

Paso 3: Configurar los Peers (Pares)
- Añadir un Peer:
- Dentro de la configuración del túnel que acabas de crear, desplázate hasta la sección «Peers».
- Haz clic en «Add Peer».
- Configurar el Peer:
- Enable: Marca esta casilla para habilitar el peer.
- Public Key: Introduce la clave pública del peer remoto (cliente).
- Preshared Key: (Opcional) Si decides usar una clave precompartida, introdúcela aquí.
- Allowed IPs: Especifica las IPs permitidas para este peer. Por ejemplo,
10.0.0.2/32
para un único cliente. - Endpoint: (Opcional) Especifica la dirección y el puerto del peer remoto si lo conoces (por ejemplo,
peer.example.com:51820
). - Keep Alive: (Opcional) Configura un intervalo de keep-alive, si es necesario, por ejemplo,
25
segundos.
- Guarda los cambios:
- Haz clic en «Save».

Paso 4: Configurar una Interfaz de Red para WireGuard
- Asignar la interfaz de WireGuard:
- Ve a «Interfaces > Assignments».
- En la sección «Available network ports», selecciona la interfaz de WireGuard (por ejemplo,
wg0
) y haz clic en «Add».
- Configurar la nueva interfaz:
- Haz clic en el nombre de la nueva interfaz que se ha creado (por ejemplo,
OPT1
). - Marca la casilla «Enable Interface».
- Cambia el nombre a algo más descriptivo si lo deseas (por ejemplo,
WG_Interface
).
- Configurar la IP estática:
- En «IPv4 Configuration Type», selecciona «Static IPv4».
- Introduce la dirección IP para la interfaz de WireGuard (por ejemplo,
10.0.0.1/24
).
- Guarda y aplica:
- Haz clic en «Save».
- Luego, haz clic en «Apply Changes» para aplicar la configuración.

Paso 5: Configurar las Reglas de Firewall
Permitir el tráfico WireGuard en la interfaz WAN
- Crear una regla en la interfaz WAN:
- Ve a «Firewall > Rules».
- Selecciona la interfaz «WAN».
- Añadir una nueva regla para permitir el tráfico de WireGuard:
- Haz clic en «Add» para agregar una nueva regla.
- Configura los siguientes parámetros:
- Action: Selecciona «Pass».
- Interface: Selecciona «WAN».
- Address Family: Selecciona «IPv4».
- Protocol: Selecciona «UDP».
- Source: Selecciona «Any».
- Destination: Selecciona «This Firewall (self)».
- Destination Port Range: Introduce «51820» en ambos campos (From y To).
- Guardar y aplicar:
- Haz clic en «Save».
- Luego, haz clic en «Apply Changes» para aplicar la configuración.

Permitir el tráfico en la interfaz de WireGuard
- Configurar reglas de firewall:
- Ve a «Firewall > Rules».
- Selecciona la interfaz de WireGuard (por ejemplo,
WG_Interface
).
- Añadir una nueva regla de firewall:
- Haz clic en «Add» para agregar una nueva regla.
- Configura los siguientes parámetros:
- Action: Selecciona «Pass».
- Interface: Selecciona la interfaz de WireGuard.
- Address Family: Selecciona «IPv4».
- Protocol: Selecciona «Any» (puedes especificar si prefieres).
- Source: Selecciona «Any».
- Destination: Selecciona «Any».
- Guardar y aplicar:
- Haz clic en «Save».
- Luego, haz clic en «Apply Changes» para aplicar la configuración.

Paso 6: Configurar el Cliente WireGuard
- Instalar WireGuard en el cliente:
- Descarga e instala WireGuard en el dispositivo cliente (disponible para Windows, macOS, Linux, Android, iOS).
- Crear una nueva configuración de túnel en el cliente:
- Abre WireGuard y crea una nueva configuración de túnel.
- Agrega los siguientes parámetros: [Interface]:
[Interface]
PrivateKey = CLAVE_PRIVADA_DEL_CLIENTE
Address = 10.0.0.2/24
DNS = (opcional) SERVIDORES_DNS
[Peer]:
[Peer]
PublicKey = CLAVE_PUBLICA_DEL_SERVIDOR
PresharedKey = (opcional) CLAVE_PRECOMPARTIDA
Endpoint = IP_PUBLICA_DEL_SERVIDOR:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = (opcional) 25
- Guardar y activar la configuración:
- Guarda la configuración en el cliente.
- Activa el túnel en el cliente.
Paso 7: Probar la Conexión
- Activar el túnel en el cliente:
- Asegúrate de que el túnel esté activado en el cliente.
- Verificar la conectividad:
- En el cliente, intenta hacer ping a la dirección IP de la interfaz de WireGuard en pfSense (por ejemplo,
10.0.0.1
).
Si todo está configurado correctamente, deberías tener una conexión VPN WireGuard funcionando a través de pfSense.
