Cómo instalar y configurar Suricata IDS/IPS en Debian 12

Suricata es una poderosa herramienta de seguridad de red de código abierto que actúa como sistema de detección y prevención de intrusos (IDS/IPS), además de ofrecer monitoreo profundo del tráfico. En esta guía te muestro cómo instalarlo y configurarlo en Debian 12 paso a paso.

✅ Requisitos previos

  • Debian 12 actualizado
  • Usuario con privilegios de sudo
  • Acceso a internet

📦 Paso 1: Habilitar los backports

Suricata se encuentra en los repositorios bookworm-backports. Para habilitarlos:

echo "deb http://deb.debian.org/debian/ bookworm-backports main" | sudo tee /etc/apt/sources.list.d/bookworm-backports.sources.list
sudo apt update

🧰 Paso 2: Instalar Suricata

sudo apt install suricata

Verificamos el estado del servicio:

sudo systemctl status suricata

Y su versión:

sudo suricata --build-info

🌐 Paso 3: Configurar Suricata para monitorear tu red

Identificamos nuestra interfaz de red:

ip -p -j route show default

Supongamos que devuelve eth0. Editamos el archivo de configuración:

sudo nano /etc/suricata/suricata.yaml

Modificamos las siguientes secciones:

  • Habilitar Community ID:
  • Configurar red interna (HOME_NET):
  • Definir interfaz de red:
  • Habilitar recarga de reglas:

Guardamos y reiniciamos Suricata:

sudo systemctl restart suricata

📥 Paso 4: Descargar y administrar reglas con suricata-update

sudo suricata-update

Verificamos que el default-rule-path apunte a:

default-rule-path: /var/lib/suricata/rules

Reiniciamos:

sudo systemctl restart suricata

🛠️ Paso 5: Habilitar fuentes de reglas adicionales

suricata-update list-sources
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update update-sources
sudo suricata-update
sudo systemctl restart suricata

🧪 Paso 6: Probar Suricata como IDS

Verificamos que la regla de prueba esté activa:

grep 2100498 /var/lib/suricata/rules/suricata.rules

Monitoreamos alertas:

tail -f /var/log/suricata/fast.log

Y generamos tráfico de prueba:

curl http://testmynids.org/uid/index.html

Para verlo en formato JSON:

sudo apt install jq -y
sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'

🧠 ¿Suricata está basado en Snort?

Una duda común es si Suricata está basado en Snort, ya que ambos funcionan como IDS/IPS y usan reglas similares. La respuesta es:

No, Suricata no está basado en Snort, pero es compatible con sus reglas.

Suricata fue desarrollado desde cero por la Open Information Security Foundation (OISF) como una alternativa moderna, de alto rendimiento y con características avanzadas.

🔍 Principales diferencias entre Suricata y Snort:

CaracterísticaSnortSuricata
Compatibilidad de reglasPropias de SnortCompatible con reglas Snort
Soporte multihilo❌ (hasta Snort 2.x)✅ Desde el diseño inicial
Decodificación profundaBásicaAvanzada (HTTP, TLS, SMB, etc.)
Inspección de archivosLimitada o nula✅ Soporta extracción y análisis
Modo IPS
Desarrollado porCisco (antes Sourcefire)OISF
LicenciaGPLGPL

✅ Conclusión

Suricata no es un “Snort mejorado”, sino una solución independiente, moderna, escalable y con mejor soporte para arquitecturas multicore. Y lo mejor: puede usar muchas de las reglas de Snort sin necesidad de convertirlas.

🎉 Conclusión final

Ya tenés Suricata funcionando como IDS en Debian 12, con reglas comunitarias actualizadas y monitoreo en tiempo real. En siguientes publicaciones podríamos avanzar hacia el modo IPS, integración con Wazuh o visualización con Kibana.