Integración de Snort con Graylog
Continuamos inmersos en el mundo de los sistemas de detección de intrusos, en la entrada de hoy vamos a ver como integrar el sistema Snort, del que hablamos recientemente, con el sistema de visualización de registros Graylog.
Pero antes de nada, recapitulemos de lo que hemos hablado hasta ahora:
- Detección de intrusos con Snort
- Integración de Snort con Barnyard2
- Control de registros con Graylog en Debian 10
Ahora sí, podemos empezar.
Integración de Snort con Graylog
Seguimos trabajando con la misma máquina virtual donde tenemos funcionando todos los componentes. Primero de todo añadimos la siguiente línea en el fichero de configuración de Snort:
sudo vi /etc/snort/snort.conf
Y añadimos, en la sección 6 del documento:
output alert_syslog: LOG_LOCAL5 LOG_ALERT
Lo que vamos a hacer ahora es modificar el fichero de configuración de Rsyslog, del que también os hablé hace un tiempo. Este fichero esta ubicado en /etc/rsyslog.conf
.
sudo vi /etc/rsyslog.conf
Y añadimos, justo al final del fichero:
$template GRAYLOGRFC5424,\ "<%PRI%>%PROTOCOL-VERSION% \ %TIMESTAMP:::date-rfc3339% \ %HOSTNAME% %APP-NAME% %PROCID% \ %MSGID% %STRUCTURED-DATA% %msg%\n" local5.alert @graylog.example.org:514;GRAYLOGRFC5424
NOTA: La línea de la plantilla va realmente todo seguido en el fichero de configuración.
La parte de «graylog.example.org» la debemos cambiar por la IP o nombre del host; por otra parte el puerto 514 es el puerto por defecto pero, en mi caso, he utilizado otro, que es el 5014.
Podemos encontrar otras instrucciones para añadir otros sistemas de registros en Graylog, consultando este enlace.
Configuración de Graylog
En Graylog debemos añadir una entrada de syslog UDP en el puerto y la interfaz de red que configuramos anteriormente, que como os he comentado yo he utilizado el puerto 5014, y confirmar que los mensajes están llegando. Para hacer las pruebas de funcionamiento, realizaremos «ping» desde otro host, ya que tenemos habilitada la regla para ICMP.
Recuerda que para hacer esto en Snort, debemos añadir una nueva regla, en el fichero de configuración /etc/snort/rules/local.rules
, concretamente:
alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;)
Ahora, desde el panel web, nos iremos a la sección «Systems» y después «Inputs«, y añadimos uno nuevo marcando sobre «Launch new input«.
Tal y como se ve en la imagen anterior, hemos indicado el nodo y el puerto que vamos a utilizar.
Una vez que tenemos el nuevo «Input» funcionando, ya que hemos marcado sobre «Start Input«, nos vamos a la consola de comandos del host y ya podemos ver como se está escuchando por el puerto 5014
davidochobits@servdebian:~# sudo lsof -i :5014 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 689 graylog 47u IPv6 18434 0t0 UDP *:5014 java 689 graylog 50u IPv6 17454 0t0 UDP *:5014
Desde el panel web, si lanzamos «ping» desde otro host, vemos el resultado:
Y eso es todo por el momento. Espero que esta información os sea de utilidad en algún momento.
Fuentes consultadas
Graylog.org – Visualize and Correlate IDS Alerts with Open Source Tools