Un ISP tiene requisitos distintos a una red corporativa. No hay usuarios internos navegando sitios de entretenimiento — hay clientes con IPs asignadas, tránsito hacia upstream providers, equipos de red que deben protegerse del tráfico de clientes, y un plano de gestión que no puede quedar expuesto. OPNsense cubre este caso de uso con solidez si entiendes qué configurar y en qué orden.

Topología de referencia

Upstream (tránsito)
   [ em0 ] — WAN / Transit
   OPNsense
   [ em1 ] — Red de clientes (PPPoE o IPs estáticas)
   [ em2 ] — Gestión (OOB / equipos de red)
InterfazNombreRedPropósito
em0WANIP del upstreamTránsito hacia internet
em1CLIENTES100.64.0.0/22Segmento de clientes (CG-NAT o pública)
em2MGMT10.255.0.0/24Gestión de infraestructura

100.64.0.0/10 es el espacio CGNAT (RFC 6598). Úsalo si no tienes IPs públicas para todos tus clientes.


1. Interfaces

Interfaces → Assignments

Asigna las tres interfaces y nómbralas. Luego configura cada una:

WAN (em0)

  • IPv4 Type: Static (o DHCP si tu upstream lo requiere)
  • IPv4: IP asignada por tu upstream / BGP peer
  • Block private networks: ✓
  • Block bogon networks: ✓

CLIENTES (em1)

  • Enable: ✓
  • IPv4 Type: Static
  • IPv4: 100.64.0.1 / 22
  • Block private networks: ✗

MGMT (em2)

  • Enable: ✓
  • IPv4 Type: Static
  • IPv4: 10.255.0.1 / 24
  • Block private networks: ✗

2. Routing

Si tu upstream te da una ruta default vía DHCP o un gateway estático:

System → Gateways → Add

CampoValor
NameGW_UPSTREAM
InterfaceWAN
IP AddressIP de tu upstream
Monitor IP8.8.8.8 (o tu upstream)

System → Routes → Add

CampoValor
Network0.0.0.0/0
GatewayGW_UPSTREAM

Si usas BGP, instala el plugin os-frr desde System → Firmware → Plugins y configura FRR — la ruta default llegará por el proceso de routing sin necesidad de entrada manual.


3. NAT

Opción A — Sin NAT (IPs públicas para clientes)

Si asignas IPs públicas directamente a tus clientes, desactiva el NAT de salida automático:

Firewall → NAT → Outbound → Selecciona Disable Outbound NAT

El tráfico de clientes sale con su IP de origen real. Asegúrate de que tu upstream acepta esos prefijos (filtra por AS origin o prefix-list en BGP).

Opción B — CG-NAT (100.64.0.0/22 → IP pública)

Firewall → NAT → Outbound → Selecciona Manual Outbound NAT

Agrega una regla:

CampoValor
InterfaceWAN
Source100.64.0.0/22
TranslationWAN address (o pool)
DescriptionCG-NAT clientes

CG-NAT introduce limitaciones en aplicaciones que dependen de IP de origen único (gaming, VoIP, algunos VPNs). Considera port block allocation si tu volumen de clientes lo requiere.


4. Aliases

Firewall → Aliases → Add

Define estos antes de escribir reglas:

RFC1918 — espacio privado

CampoValor
NameRFC1918
TypeNetwork
Networks10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16

CGNAT_SPACE

CampoValor
NameCGNAT_SPACE
TypeNetwork
Networks100.64.0.0/10

INFRA_MGMT — equipos de red bajo gestión

CampoValor
NameINFRA_MGMT
TypeNetwork
Networks10.255.0.0/24, 10.255.1.0/24, …

PUERTOS_GESTION — acceso SSH/HTTPS a routers

CampoValor
NamePUERTOS_GESTION
TypePort
Ports22, 443, 8291 (Winbox)

5. Reglas de firewall

WAN — perímetro externo

Firewall → Rules → WAN

OPNsense bloquea todo por defecto en WAN. Solo agrega lo que necesitas:

Regla 1 — Bloquear spoofing de origen privado (logging útil)

CampoValor
ActionBlock
SourceRFC1918
Destinationany
Log
DescriptionBloquear spoof RFC1918 desde WAN

Regla 2 — Bloquear spoofing de espacio CGNAT

CampoValor
ActionBlock
SourceCGNAT_SPACE
Destinationany
Log
DescriptionBloquear spoof 100.64/10 desde WAN

Regla 3 — Permitir BGP (si aplica)

CampoValor
ActionPass
ProtocolTCP
SourceIP del peer BGP
DestinationWAN address
Dest. Port179
DescriptionBGP upstream

El deny implícito final bloquea cualquier otro tráfico entrante no solicitado.


CLIENTES — el segmento más riesgoso

Firewall → Rules → CLIENTES

Los clientes no deben alcanzar tu infraestructura de gestión. Solo deben tener internet.

Regla 1 — Bloquear acceso a infraestructura de gestión

CampoValor
ActionBlock
SourceCLIENTES net
DestinationINFRA_MGMT
Log
DescriptionBloquear clientes → infraestructura

Regla 2 — Bloquear acceso a la GUI de OPNsense

CampoValor
ActionBlock
ProtocolTCP
SourceCLIENTES net
DestinationThis Firewall
Dest. Port443, 80
DescriptionBloquear acceso GUI

Regla 3 — Bloquear tráfico lateral entre clientes (si están en la misma subred)

CampoValor
ActionBlock
SourceCLIENTES net
DestinationCLIENTES net
DescriptionBloquear tráfico cliente-cliente

Esta regla es importante en CGNAT: evita que un cliente escanee o ataque a otro dentro del mismo bloque 100.64/22.

Regla 4 — Permitir DNS hacia el resolver local (si sirves DNS a clientes)

CampoValor
ActionPass
ProtocolTCP/UDP
SourceCLIENTES net
DestinationThis Firewall
Dest. Port53
DescriptionDNS local

Regla 5 — Permitir internet

CampoValor
ActionPass
Protocolany
SourceCLIENTES net
Destinationany
DescriptionInternet

MGMT — plano de gestión

Firewall → Rules → MGMT

La red de gestión administra routers, switches y el propio OPNsense. Tiene acceso amplio pero solo desde hosts autorizados.

Regla 1 — Permitir todo desde MGMT

CampoValor
ActionPass
SourceMGMT net
Destinationany
DescriptionAcceso total desde gestión

Si quieres ser más estricto, limita el destino a INFRA_MGMT y agrega una segunda regla para internet con destino any.


6. DNS para clientes

Si sirves DNS recursivo a tus clientes desde OPNsense:

Services → Unbound DNS → General

  • Enable: ✓
  • Listen Port: 53
  • Network Interfaces: CLIENTES, MGMT
  • DNSSEC: ✓
  • DNS64: opcional si mezclas IPv4/IPv6

Agrega ACLs para controlar quién puede consultar:

Services → Unbound DNS → Access Lists

RedAcción
100.64.0.0/22Allow
10.255.0.0/24Allow
0.0.0.0/0Refuse

7. Proteger la GUI de OPNsense

System → Settings → Administration

  • TCP Port: cambia de 443 a un puerto no estándar (ej. 4443)
  • Listen Interfaces: selecciona solo MGMT — la GUI nunca debe escuchar en WAN ni CLIENTES
  • HTTPs only: ✓
  • Login Protection: ✓ (rate limiting contra fuerza bruta)
  • Disable web GUI redirect rule: ✓

Aplica y reconecta desde la interfaz MGMT.


8. Logging y visibilidad

Firewall → Log Files → Live View

Filtra por interfaz CLIENTES y acción block para ver intentos de acceso a la infraestructura. En un ISP es normal ver:

  • Escaneos de puerto hacia This Firewall
  • Intentos de SSH o Telnet hacia el gateway
  • Tráfico CGNAT saliente bloqueado por reglas de aislamiento

System → Settings → Logging → Remote Syslog

Apunta hacia tu servidor de logs centralizado (Graylog, Loki, syslog-ng). En producción no quieres confiar solo en el storage local de OPNsense.


9. Verificación

Desde un cliente en CLIENTES net:

# Debe funcionar
curl https://example.com
dig @100.64.0.1 google.com        # DNS local

# Debe fallar
ping 10.255.0.1                    # Gateway MGMT — bloqueado
ssh 10.255.0.5                     # Router de infraestructura — bloqueado
curl https://100.64.0.1:4443       # GUI OPNsense — bloqueado
ping 100.64.0.100                  # Otro cliente — bloqueado

Desde MGMT:

ping 100.64.0.1                    # Gateway clientes — visible
ssh 10.255.0.5                     # Equipo de red — debe funcionar
curl -k https://10.255.0.1:4443    # GUI OPNsense — debe abrir

Verificar rutas activas:

System → Routes → Status — confirma la ruta default hacia GW_UPSTREAM y las rutas conectadas de cada interfaz.


Resumen del modelo de acceso

Desde \ HaciaInternetInfra/MGMTOtros clientesGUI OPNsense
WAN
CLIENTES
MGMT

El principio es el mismo que en cualquier infraestructura de red: los clientes son tráfico no confiable. La red de gestión es el único plano desde donde se opera la infraestructura, y ningún cliente debe poder alcanzarla — ni por error ni por intento deliberado.