Suricata es un motor de análisis de tráfico de red de código abierto, desarrollado por la OISF (Open Information Security Foundation). Ofrece funcionalidades de detección de intrusiones (IDS), prevención de intrusiones (IPS), monitoreo de red y mucho más. Este manual guiará a través de la instalación y configuración de Suricata en un sistema basado en Linux.
Requisitos Previos
- Sistema Operativo: Una distribución basada en Linux (Ubuntu, Debian, CentOS, etc.).
- Privilegios de Root: Necesitarás permisos de superusuario para instalar y configurar Suricata.
- Dependencias:
libpcap
libpcre3
libyaml
libjansson
libmagic
Instalación de Suricata
Paso 1: Actualización del Sistema
sudo apt-get update && sudo apt-get upgrade -y
Paso 2: Instalación de Dependencias
sudo apt-get install -y libpcap-dev libpcre3-dev libyaml-dev libjansson-dev libmagic-dev zlib1g-dev pkg-config make gcc
Paso 3: Descarga y Compilación de Suricata
wget https://www.openinfosecfoundation.org/download/suricata-6.0.9.tar.gz
tar -xvzf suricata-6.0.9.tar.gz
cd suricata-6.0.9
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
sudo make install-full
Paso 4: Actualización del Capabilities File
sudo ldconfig
Paso 5: Verificación de la Instalación
suricata -V
Configuración de Suricata
La configuración de Suricata se realiza principalmente a través del archivo suricata.yaml
, que se encuentra en /etc/suricata/suricata.yaml
. A continuación, se proporcionan ejemplos de configuraciones básicas y avanzadas.
Archivo de Configuración: /etc/suricata/suricata.yaml
- Interfaces de Red:
af-packet:
- interface: eth0
threads: 1
cluster-id: 99
cluster-type: cluster_flow
defrag: yes
- Reglas de Detección:
default-rule-path: /etc/suricata/rules
rule-files:
- suricata.rules
- Registro de Eventos:
outputs:
- eve-log:
enabled: yes
filetype: json
filename: /var/log/suricata/eve.json
types:
- alert
- http
- dns
- tls
- files
- ssh
- stats
- Modo de Detección de Intrusos (IDS):
runmode: autofp
Configuración Avanzada
- Hilos de CPU y Rendimiento:
threading:
set-cpu-affinity: yes
cpu-affinity:
- management-cpu-set:
cpu: [ 0 ] # CPUs to use for management threads
- receive-cpu-set:
cpu: [ 1 ] # CPUs to use for packet acquisition threads
- worker-cpu-set:
cpu: [ 2, 3 ] # CPUs to use for worker threads
- Recolección de Estadísticas:
stats:
enabled: yes
interval: 10
stats-file: /var/log/suricata/stats.log
Reglas de Suricata
Las reglas de Suricata se almacenan en archivos con extensión .rules
. A continuación se muestra un ejemplo de una regla básica para detectar un intento de acceso a un servidor web en el puerto 80:
alert http any any -> any 80 (msg:"Acceso HTTP detectado"; sid:1000001; rev:1;)
Ubicación de las Reglas
Por defecto, las reglas se colocan en el directorio /etc/suricata/rules/
. Puedes descargar y actualizar reglas usando suricata-update
:
sudo suricata-update
Iniciar y Detener Suricata
Para iniciar Suricata manualmente, puedes usar:
sudo suricata -c /etc/suricata/suricata.yaml -i eth0
Para detener Suricata, simplemente encuentra el proceso y termínalo:
sudo pkill suricata
Supervisión y Mantenimiento
- Verificación de Logs:
Los logs de Suricata se almacenan en/var/log/suricata/
. Puedes monitorizar el archivoeve.json
para ver los eventos en tiempo real:tail -f /var/log/suricata/eve.json
- Actualización de Reglas:
Es importante mantener las reglas actualizadas para garantizar una detección eficiente de amenazas. Utiliza el siguiente comando para actualizar las reglas periódicamente:sudo suricata-update
- Optimización de Rendimiento:
Revisa y ajusta la configuración de hilos y afinidad de CPU ensuricata.yaml
según la carga y el hardware disponible.
Con esto, has completado la instalación y configuración básica de Suricata en tu sistema. Este manual puede servir como base para una implementación más avanzada, dependiendo de las necesidades específicas de tu red y políticas de seguridad.