OPNsense es un firewall y router de código abierto basado en FreeBSD, derivado de pfSense, con actualizaciones frecuentes y una interfaz web moderna. En este tutorial partirás de una instalación limpia de OPNsense con una interfaz WAN y otra LAN, completarás la configuración inicial y crearás los elementos que casi todo despliegue necesita: reglas basadas en alias, una redirección de puertos hacia un servidor interno, una VPN WireGuard para acceso remoto, detección de intrusiones con Suricata y copias de seguridad de la configuración.
Requisitos previos
- OPNsense instalado en un equipo físico o una máquina virtual con al menos dos interfaces de red (WAN y LAN), 2 CPU, 4 GB de RAM y 20 GB de disco si vas a usar el IDS. La imagen de instalación se descarga en
https://opnsense.org/download/. - Un equipo conectado a la LAN de OPNsense desde el que abrir la interfaz web.
- Opcional: un servidor en la LAN (por ejemplo, un servidor web en
192.168.1.10) para probar la redirección de puertos.
NotaDurante la instalación desde la imagen, inicia sesión en la consola con el usuario
installery la contraseñaopnsensepara lanzar el instalador. Tras instalar, el usuario administrador esrootcon la contraseña que elijas en el instalador (por defecto,opnsense).
Paso 1: Asignar interfaces desde la consola
Al arrancar, OPNsense muestra en la consola las interfaces detectadas y un menú:
LAN (vtnet1) -> v4: 192.168.1.1/24
WAN (vtnet0) -> v4/DHCP4: 203.0.113.50/24
0) Logout 7) Ping host
1) Assign interfaces 8) Shell
2) Set interface IP address 9) pfTop
...
Comprueba que la WAN es la interfaz conectada a Internet y que la LAN tiene la IP que esperas (192.168.1.1/24 por defecto). Si están cruzadas, usa la opción 1 para reasignarlas; para cambiar el rango de la LAN, usa la opción 2.
Desde un equipo de la LAN, verifica que llegas al firewall:
ping -c 3 192.168.1.1
Paso 2: Completar el asistente inicial
Abre https://192.168.1.1 en el navegador del equipo de la LAN, acepta el certificado autofirmado e inicia sesión como root. Si el asistente no se abre solo, lánzalo desde System > Wizard. Configura:
- Hostname y dominio, servidores DNS y zona horaria.
- WAN: DHCP o IP estática según tu proveedor. Mantén marcadas las opciones que bloquean redes privadas y bogon si la WAN tiene IP pública.
- LAN: la IP y máscara definitivas.
- Contraseña de root: cámbiala por una contraseña fuerte.
Al terminar, comprueba el estado en Lobby > Dashboard: la WAN debe tener IP y puerta de enlace.
Después, actualiza el sistema en System > Firmware > Status pulsando Check for updates. Si prefieres la consola, entra en la opción 8) Shell y ejecuta:
opnsense-update
Repite la comprobación hasta que no queden actualizaciones pendientes; algunas requieren reiniciar.
Paso 3: Crear alias
Un alias agrupa direcciones, redes o puertos bajo un nombre que se reutiliza en las reglas. Si mañana cambia una IP, la modificas en el alias y todas las reglas se actualizan. Ve a Firewall > Aliases y crea dos:
| Nombre | Tipo | Contenido |
|---|---|---|
servidores_web | Host(s) | 192.168.1.10 |
puertos_web | Port(s) | 80, 443 |
Pulsa Apply para guardar los cambios.
Paso 4: Revisar y ajustar las reglas de firewall
Las reglas se definen por interfaz en Firewall > Rules. Se evalúan de arriba abajo y la primera que coincide se aplica; lo que no coincide con ninguna regla se bloquea. La configuración por defecto es:
- WAN: sin reglas de paso, así que todo el tráfico entrante no solicitado se bloquea.
- LAN: una regla que permite a la LAN ir a cualquier destino, más una regla anti bloqueo que garantiza el acceso a la interfaz web desde la LAN.
Como ejemplo, impide que los equipos de la LAN usen servidores DNS externos, de modo que todos resuelvan a través del firewall. En Firewall > Rules > LAN añade una regla y colócala por encima de la regla general:
- Action: Block
- Interface: LAN
- Protocol: TCP/UDP
- Source: LAN net
- Destination: invierte la selección (Destination / Invert marcado) con destino This Firewall
- Destination port range: DNS (53)
- Log: marcado
- Description: Bloquear DNS externo
Guarda y pulsa Apply changes. Para comprobarlo, desde un equipo de la LAN intenta resolver con un servidor externo y luego con el firewall:
dig @1.1.1.1 opnsense.org +time=2 +tries=1
dig @192.168.1.1 opnsense.org +short
La primera consulta debe fallar por tiempo de espera y la segunda devolver una IP. Los bloqueos aparecen en Firewall > Log Files > Live View.
Paso 5: Redirigir un puerto a un servidor interno
Para publicar el servidor web de la LAN en la IP pública, crea una redirección de puertos en Firewall > NAT > Port Forward (en las versiones más recientes, esta sección puede aparecer como Destination NAT):
- Interface: WAN
- Protocol: TCP
- Destination: WAN address
- Destination port range:
puertos_web - Redirect target IP:
servidores_web - Redirect target port:
puertos_web - Filter rule association: Add associated filter rule
- Description: Web publica
Guarda y aplica los cambios. OPNsense crea automáticamente la regla de paso correspondiente en Firewall > Rules > WAN.
Verifica la redirección desde un equipo fuera de tu red:
curl -I http://your_wan_ip
HTTP/1.1 200 OK
Server: nginx
Si pruebas desde la propia LAN usando la IP pública, puede fallar: es el problema del NAT reflection, que se activa en Firewall > Settings > Advanced. Es preferible usar DNS interno para que los equipos de la LAN resuelvan el nombre a la IP privada.
Paso 6: Configurar una VPN WireGuard de acceso remoto
WireGuard viene integrado en OPNsense. Esta VPN permite conectar un portátil a la LAN desde cualquier lugar.
- Ve a VPN > WireGuard > Instances y añade una instancia: nombre
wg-remoto, puerto51820, dirección de túnel10.99.0.1/24. Pulsa el botón para generar el par de claves y guarda. - En Peers, añade un peer por cada dispositivo: nombre
portatil, su clave pública (generada en el cliente), Allowed IPs10.99.0.2/32y la instanciawg-remoto. - En la pestaña General, marca Enable WireGuard y aplica.
Abre el puerto en la WAN en Firewall > Rules > WAN con una regla Pass, protocolo UDP, destino WAN address, puerto 51820. Luego, en Firewall > Rules > WireGuard (Group), añade una regla Pass desde 10.99.0.0/24 hacia LAN net para que los clientes lleguen a la red interna.
En el cliente (Linux con el paquete wireguard), la configuración sería:
[Interface]
PrivateKey = CLAVE_PRIVADA_CLIENTE
Address = 10.99.0.2/32
DNS = 192.168.1.1
[Peer]
PublicKey = CLAVE_PUBLICA_OPNSENSE
Endpoint = your_wan_ip:51820
AllowedIPs = 192.168.1.0/24, 10.99.0.0/24
PersistentKeepalive = 25
Tras levantar el túnel en el cliente, comprueba en VPN > WireGuard > Status que aparece un handshake reciente y haz ping a 192.168.1.1 desde el cliente.
Paso 7: Activar la detección de intrusiones con Suricata
OPNsense integra Suricata como IDS (solo alerta) o IPS (bloquea). Antes de activarlo en modo IPS, comprueba en Interfaces > Settings que las opciones de descarga por hardware (Hardware CRC, Hardware TSO y Hardware LRO) están deshabilitadas, porque el modo en línea no funciona correctamente con ellas. Después:
- Ve a Services > Intrusion Detection > Administration y, en Settings, marca Enabled.
- Deja IPS mode desmarcado de momento, para empezar solo con alertas y evitar cortar tráfico legítimo.
- En Interfaces, selecciona WAN.
- Pulsa Apply.
- En la pestaña Download, selecciona los conjuntos de reglas
ET openque te interesen (por ejemplo, los de malware, escaneos y exploits), pulsa Download & Update Rules y espera a que terminen.
Comprueba que llegan alertas en la pestaña Alerts tras unas horas de tráfico. Cuando confíes en que las reglas no generan falsos positivos, activa IPS mode y define en Policy qué categorías pasan de alertar a bloquear.
Paso 8: Programar copias de seguridad de la configuración
Toda la configuración de OPNsense está en un único archivo XML (/conf/config.xml). Descárgala en System > Configuration > Backups con Download configuration. Marca la opción de cifrado y guarda la contraseña en un gestor: el archivo contiene claves privadas de VPN y hashes de contraseñas.
En la misma página puedes restaurar una copia o volver a una de las versiones anteriores que OPNsense guarda automáticamente en System > Configuration > History cada vez que aplicas un cambio.
Paso 9: Verificar el estado desde la consola
Si habilitas SSH en System > Settings > Administration (Secure Shell, solo accesible desde la LAN), puedes revisar las reglas cargadas en el filtro de paquetes directamente:
pfctl -sr | head -n 20
pfctl -s nat
Para ver las conexiones activas que el firewall está siguiendo:
pfctl -ss | head -n 20
Solución de problemas
Te has bloqueado el acceso a la interfaz web. Desde la consola, la opción 8) Shell te da una shell de root; ejecuta pfctl -d para desactivar temporalmente el filtro, corrige la regla en la web y vuelve a activarlo con pfctl -e. También puedes reiniciar la configuración con la opción 4) Reset to factory defaults.
La redirección de puertos no responde. Comprueba que el servidor interno usa OPNsense como puerta de enlace predeterminada; si no, las respuestas salen por otra ruta. Revisa también que la regla asociada existe en Firewall > Rules > WAN.
Tras activar el modo IPS se cae la conectividad. Desactiva el modo IPS, confirma que las opciones de descarga por hardware están deshabilitadas y reinicia el firewall antes de volver a probar.
Conclusión
Tienes OPNsense con la configuración inicial completada, reglas mantenibles con alias, un servicio interno publicado, acceso remoto por WireGuard, Suricata vigilando la WAN y copias de seguridad de la configuración. Como siguientes pasos, puedes segmentar la red con VLAN para separar servidores y usuarios, montar alta disponibilidad con CARP entre dos instancias o exportar los logs a un sistema centralizado.
