Saltar al contenido principal

Integraciones de cortafuegos

import { Steps, Tabs, TabItem, Aside } from ‘@astrojs/starlight/components’;

Suricatavel se integra directamente con cortafuegos perimetrales para aplicar contención de red y bloquear tráfico malicioso detectado por los sensores de Suricata o feeds de amenazas.


Suricatavel soporta las siguientes plataformas de cortafuegos:

  • pfSense: Se integra mediante la API REST de pfSense (requiere el paquete pfsense-api).
  • OPNsense: Se integra mediante la API REST nativa de OPNsense (gestiona Alias de firewall).
  • OpenWrt: Se integra mediante SSH/LuCI y comandos uci / nftables.
  • MikroTik RouterOS: Se integra mediante la API REST de RouterOS v7+ (gestiona entradas dinámicas en address-list y reglas de filtrado).
  • Linux genérico: Se integra mediante SSH para gestionar conjuntos nftables o ipset.

Para registrar un nuevo cortafuegos en Suricatavel:

1. Navegue a **Firewalls** en el menú principal. 2. Haga clic en **New firewall**. 3. Seleccione el **Type** (pfSense, OPNsense, OpenWrt, MikroTik o Generic Linux). 4. Proporcione los parámetros de conexión: - **Name**: Nombre descriptivo para el dispositivo (ejemplo: `Edge-Mikrotik-01`). - **IP address / Host**: Dirección y puerto de gestión. - **Credentials**: Clave/secreto de API, usuario/contraseña o clave SSH según el adaptador. - **Verify SSL**: Activa o desactiva la verificación de certificados HTTPS. 5. Haga clic en **Create**.

Suricatavel prueba la conexión inmediatamente para verificar credenciales y comprobar el estado de salud del adaptador.


Puede aplicar bloqueos de contención de forma manual o automática a través de Políticas y Drongo.

Para bloquear una dirección manualmente:

  1. Navegue a Firewalls > Actions (o pulse Block IP directamente desde cualquier Evento o Alerta).
  2. Haga clic en New action.
  3. Seleccione el Firewall de destino.
  4. Elija el alcance de la regla:
    • Source IP: Bloquea tráfico entrante procedente de la dirección hostil.
    • Destination IP: Bloquea tráfico saliente hacia la dirección objetivo.
    • Both: Restringe ambas direcciones de tráfico.
  5. Configure el TTL (Time to live):
    • Introduzca una duración en segundos para un baneo temporal (ejemplo: 3600 para 1 hora).
    • Déjelo vacío o en 0 para un bloqueo permanente.
  6. Haga clic en Save.

La acción se despacha al cortafuegos seleccionado de inmediato y su estado queda registrado en Firewalls > History.

Los bloqueos temporales se gestionan con marcas de tiempo de expiración:

  • Los cortafuegos con soporte nativo de TTL (como los conjuntos nftables en OpenWrt o listas con timeout en MikroTik) expiran las entradas automáticamente en el dispositivo.
  • Suricatavel ejecuta una tarea periódica de mantenimiento (php artisan suricatavel:prune-expired-firewall-blocks) para sincronizar y purgar bloqueos expirados en el panel y en el historial.

Para retirar un bloqueo activo:

  1. Navegue a Firewalls > Actions.
  2. Localice la regla activa en el listado.
  3. Haga clic en Unblock.

La regla se elimina de inmediato en el cortafuegos y el historial se actualiza en consecuencia.


Suricatavel expone un endpoint de feed de dominios maliciosos detectados por alertas e inteligencia de amenazas. Este feed está diseñado para herramientas como pfBlockerNG en pfSense, Alias en OPNsense o listas DNS en MikroTik.

GET /api/v1/feeds/domains?token=YOUR_PERSONAL_ACCESS_TOKEN

La respuesta devuelve una lista en texto plano con un dominio por línea.

1. En pfSense, abra **Firewall > pfBlockerNG > DNSBL > Feeds**. 2. Haga clic en **Add**. 3. Asigne un nombre a la lista (ejemplo: `Suricatavel_Domains`). 4. En **Source URL**, pegue la URL del feed incluyendo su token de acceso. 5. Seleccione la acción `Deny` y la frecuencia de actualización deseada. 6. Guarde y aplique los cambios. 1. En OPNsense, navegue a **Firewall > Aliases**. 2. Haga clic en **Add** (`+`). 3. Seleccione el tipo **URL Table (IPs)** o **URL Table**. 4. Pegue la URL del feed de Suricatavel en el campo **Content**. 5. Configure el intervalo de refresco (ejemplo: `1` día o `12` horas). 6. Guarde y aplique los cambios.