
Monitoriza tu red con Suricata y Elastic
Si te interesa la ciberseguridad y ya has jugado un poco con Kali Linux, seguramente habrás oído hablar de Suricata. Es un motor IDS/IPS (Sistema de Detección/Prevención de Intrusos) que analiza el tráfico en tiempo real y detecta ataques, escaneos, malware y un largo etcétera.
El problema es que, aunque Suricata genera montones de datos útiles (logs, alertas, estadísticas…), verlos “a pelo” en archivos JSON no es lo más cómodo del mundo. Ahí entra en juego Elastic Stack, el trío Elasticsearch + Logstash + Kibana (ELK), que permite almacenar, procesar y visualizar los eventos de Suricata en tiempo real, con dashboards, filtros y gráficas.
En esta guía te voy a enseñar cómo conectar Suricata (ya instalado en Kali Linux) con Elastic, sin dar vueltas innecesarias. La idea es que acabes con un sistema donde puedas abrir Kibana y ver tus alertas de red en tiempo real.
Requisitos previos
Antes de empezar, asegúrate de tener:
- Kali Linux con Suricata ya instalado ("sudo apt install suricata").
- Un servidor (o máquina) con Elastic Stack funcionando (puede ser local o remoto).
- Conexión de red entre ambos (Kali <-> Elastic).
- Acceso root o permisos sudo.
Configurar Suricata para exportar logs en formato JSON
Por defecto, Suricata ya genera logs en /var/log/suricata/eve.json.
Abre su configuración principal:
┌──(kali㉿kali)-[~]└─$ sudo su -┌──(root㉿kali)-[~]
└─# nano /etc/suricata/suricata.yaml
Busca la sección "outputs:" y asegúrate de tener algo así:
outputs: - eve-log: enabled: yes
filetype: regular # o unix_stream si lo prefieres
filename: /var/log/suricata/eve.json types: - alert
- http - dns - tls - ssh - flow
Guarda y reinicia Suricata:
sudo systemctl restart suricata
Para verificar que está generando eventos:
sudo tail -f /var/log/suricata/eve.json
Si ves líneas con {"timestamp":...,"event_type":"alert",...}, todo bien.
Enviar logs de Suricata a Elastic con Filebeat
El método más sencillo y limpio de integración es Filebeat, un agente ligero que toma los logs y los manda a Elasticsearch o Logstash.
Instala Filebeat en Kali Linux
Instalamos la clave de Elastic y añadimos el repositorio:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg arch=amd64] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Actualizamos paquetes e instalamos:
apt updateapt install filebeat -y
Habilitamos servicios:
sudo systemctl enable filebeatsudo systemctl start filebeat
sudo systemctl status filebeat
Configurar Filebeat para Suricata
Habilitamos para que Filebeat sea capaz de trabajar con Suricata
sudo filebeat modules enable suricata
sudo nano /etc/filebeat/modules.d/suricata.yml
Las rutas del fichero deben apuntar al fichero eve.json donde residen las trazas capturadas:
var.paths: - /var/log/suricata/eve.json
Adicionalmente, configuramos las salidas a Elastic desde el siguiente fichero:
sudo nano /etc/filebeat/filebeat.yml
output.elasticsearch: hosts: ["http://IP-ELASTIC:9200"] username: "elastic"
password: "tu_contraseña"
Pruebas de conexión de Filebeat a Elastic
Comprueba que está disponible:
sudo filebeat test output
Que nos debería arrojar algo como:
elasticsearch: Successfully connected
Enviar logs de Suricata a Filebeat
Para realizar una prueba puedes lanzar una traza personalizada de la siguiente forma:
Posteriormente, comprueba que la traza existe:
sudo cat /var/log/suricata/eve.json
Ahora lanza en modo debug Filebeat para comprobar que enviaste la traza:
sudo filebeat -e
Nos debería entregar un mensaje de este estilo:
... Successfully published event: {"@timestamp":"...","message":"Test Suricata Event - Pronetic",...}
Revisar en Kibana las trazas de Suricata
Para poder revisar desde el panel de Kibana las trazas de ejemplo, accedemos a la consola web:
Iremos desde el menú superior izquierda, Management -> Dev Tools:
Y lanzamos la siguiente consulta:
El resultado tendría que mostrar:
"hits" : { "hits" : [ { "_source" : { "alert" : {
"signature" : "Test Suricata Event - Pronetic",
"category" : "Generic Test" },
"src_ip" : "192.168.2.100", "dest_ip" : "8.8.8.8" } } ]}
Ya tenemos Suricata enviando a Elastic correctamente.
Suricata + Elastic, empieza a montar tu propio SOC
Integrar Suricata con Elastic no es solo “por tener gráficas bonitas o acumular logs”. Es una forma de convertir tu detección de intrusiones en información útil y visual, que puedes analizar sin volverte loco buscando entre miles de líneas JSON.
Con esta configuración básica ya tendrás un mini-SOC casero, Suricata vigilando el tráfico y Elastic ayudándote a entender qué está pasando. Desde ahí puedes escalar con más sensores, alertas automáticas, correlaciones con otros logs, pero lo importante es que ya tienes la base sólida montada.
Fin del Artículo. ¡Cuéntanos algo en los Comentarios!