Cómo configurar un reenviador (forwarder) para enviar datos de log (syslog y otros) de un equipo Linux a un servidor SIEM con Splunk. De esta forma los log y eventos del equipo Linux se enviarán al servidor SIEM y quedarán centralizados para su explotación y correlación.
- Configurar receptor (receiving) en servidor SIEM Splunk.
- Descarga e instalación de Splunk Universal Forwarder 8.2.6 for Linux.
- Editar fichero de inputs en cliente forwarder Splunk.
- Consultar eventos del equipo Linux registrado en el servidor de Splunk.
Configurar receptor (receiving) en servidor SIEM Splunk
En primer lugar accederemos a la consola web de gestión de Splunk para agregar un reenviador (forwarder). Para ello, una vez dentro de la consola, pulsaremos en «Settings» y en «Forwarding and receiving»:
En «Configure receiving» pulsaremos en «+ Add new»:
Introduciremos el puerto que usaremos para la recepción de los datos de log y syslog de los equipos Linux (y otros) mediante reenviadores (forwarders), por defecto el puerto 9997:
Descarga e instalación de Splunk Universal Forwarder 8.2.6 for Linux
Desde la web oficial de Splunk, en descargas, buscaremos la descarga de Splunk Universal Forwarder 8.2.6 for Linux. Deberemos tener usuario registrado en Splunk y deberemos aceptar los términos de licencia. Una vez hecho esto podremos descargar el paquete de instalación en formato .rpm, .deb o .tgz. En nuestro caso, tenemos un servidor Linux Debian 11, por lo que elegiremos .deb. Nos descargará directamente el fichero de instalación del forwarder para Linux y también nos dará la opción de copiar el comando wget para descargarlo directamente en nuestro equipo Linux, el comando:
1 |
wget -O splunkforwarder-8.2.6-a6fe1ee8894b-linux-2.6-amd64.deb "https://download.splunk.com/products/universalforwarder/releases/8.2.6/linux/splunkforwarder-8.2.6-a6fe1ee8894b-linux-2.6-amd64.deb" |
Desde la consola shell de comandos de Linux, descargaremos el fichero de instalación del forwarder, ejecutando el comando copiado anteriormente:
Una vez descargado el fichero, lo instalaremos con el comando:
1 |
sudo dpkg -i splunkforwarder-8.2.6-a6fe1ee8894b-linux-2.6-amd64.deb |
Tras instalarlo, lo iniciaremos con:
1 2 |
cd /opt/splunkforwarder/bin/ ./splunk start --accept-license |
Nos solicitará usuario administrador del servidor de Splunk y contraseña, los introduciremos y pulsaremos INTRO:
El cliente de Splunk Forwarder quedará instalado e iniciado:
A continuación agregaremos el reenviador al servidor con el comando:
1 |
./splunk add forward-server 192.168.1.2:9997 -auth admsp:contraseña |
Donde:
- 192.168.1.2:9997: IP y puerto del servidor de Splunk. Usaremos el mismo puerto que hayamos indicado en el cliente forwarder creado anteriormente en Splunk.
- admsp:contraseña: usuario y contraseña del servidor Splunk.
Agregaremos también un poll de reenvío con el comando:
1 |
./splunk set deploy-poll 192.168.1.2:9997 |
Como siempre, indicando la IP del servidor de Splunk y el puerto que queramos usar.
Por último, iremos añadiendo los elementos (monitores) que queramos enviar al servidor Splunk desde el equipo Linux. Por ejemplo, para enviar /var/log/syslog ejecutaremos:
1 |
./splunk add monitor /var/log/syslog -sourcetype linux_messages_syslog |
De la misma forma, podremos agregar cualquier monitor de cualquier fichero de log que queramos, por ejemplo:
1 |
./splunk add monitor /var/log/pihole.log -sourcetype linux_log |
Otro monitor que podemos agregar:
1 |
./splunk add monitor /var/log/auth.log -sourcetype linux_secure |
Nota importante: no usaremos el parámetro «index» en el comando anterior add monitor salvo que dispongamos de un clúster de Splunk Server. Si usamos el parámetro index y no tenemos un clúster configurado, nos mostrará en la consola de Splunk Server el siguiente mensaje:
Received event for unconfigured/disabled/deleted index=auth with source=»source::/var/log/auth.log» host=»host::srvdns1″ sourcetype=»sourcetype::linux_secure». So far received events from 4 missing index(es).
Para aplicar los cambios reiniciaremos el servicio Splunk Forwarder:
1 |
./splunk restart |
Nota: si queremos eliminar un monitor ejecutaremos:
1 |
./splunk remove monitor /var/log/ |
Donde «/var/log» será el monitor agregado que queremos eliminar.
Editar fichero de inputs en cliente forwarder Splunk
Si queremos modificar directamente el fichero donde Splunk Forwarder guarda los inputs que enviará al servidor Splunk, editaremos el fichero /opt/splunkforwarder/etc/apps/search/local/inputs.conf:
1 |
nano /opt/splunkforwarder/etc/apps/search/local/inputs.conf |
Para los inputs agregados tiene este formato:
1 2 3 4 5 6 7 8 9 10 11 |
[monitor:///var/log/pihole.log] disabled = false sourcetype = linux_log [monitor:///var/log/syslog] disabled = false sourcetype = linux_messages_syslog [monitor:///var/log/auth.log] disabled = false sourcetype = linux_secure |
Se hemos realizado algún cambio en este fichero de inputs, para que se aplique, reiniciaremos el servicio de Splunk Forwarder:
1 |
./splunk restart |
Consultar eventos del equipo Linux registrado en el servidor de Splunk
Esperaremos unos minutos a que se envíen los eventos de los monitores agregados, en nuestro caso /var/log/syslog. Para consultar los datos recibidos, abriremos la consola web de Splunk y pulsaremos en «Search & Reporting»:
Ejecutaremos un filtro, por ejemplo:
host=»srvdns1″ source=»/var/log/auth.log»