Cómo habilitar el envío de log/eventos de un firewall Fortigate a un servidor de SIEM con Splunk (válido para otros SIEM). Conectaremos Fortigate con Splunk mediante el puerto 514 UDP, de esta forma no necesitaremos instalar app en Splunk. Mostramos cómo configurar Fortigate desde la interfaz web y también por comando, pudiendo modificar parámetros como el puerto, el nivel de log, el tipo de protocolo, etc.
- Requisitos para enviar log/eventos desde Fortigate a SIEM Splunk.
- Configurar data input en Splunk para recibir datos de Fortigate.
- Configurar Fortigate par enviar datos a servidor SIEM Splunk.
- Consultar datos recibidos de Fortigate en Splunk.
Requisitos para enviar log/eventos desde Fortigate a SIEM Splunk
Deberemos disponer, como es lógico, de un firewall Fortigate, que será el que se monitorizará con Splunk.
Por otro lado, necesitaremos disponer de un servidor de SIEM con Splunk. En el siguiente enlace explicamos cómo montarlo en Linux/Windows:
Necesitaremos conocer la IP del servidor SIEM Splunk (en nuestro caso 192.168.1.26) y la del firewall Fortigate, para acceso a su gestión (en nuestro caso 192.168.1.100).
El equipo del SIEM Splunk tendrá que tener visibilidad en la red con el dispositivo Fortigate, al menos por el puerto que decidamos usar.
Según la documentación de Fortigate, se admite el envío de log/eventos a un sistema externo a partir de la versión 5.0 o superior.
Configurar data input en Splunk para recibir datos de Fortigate
En el servidor de SIEM Splunk, desde la consola de gestión web, agregaremos un data input de tipo UDP. Para ello, desde la consola web de Splunk, pulsaremos en «Settings» – «Data inputs»:
Pulsaremos en «UDP»:
Pulsaremos en «New Local UDP»:
Introduciremos los datos del input, en este caso, dado que usaremos este input para todos nuestros swiches, estableceremos un puerto, por ejemplo el 516. Una opción es usar este puerto únicamente para el dispositivo Fortigate, de forma que tendremos más identificada la fuente. Si decidimos usar el puerto 516 sólo para Fortigate, podremos incluso limitar la conexión en Splunk por este puerto a la IP de Fortigate (en «Only accept connection from»). No estableceremos un nombre de origen (source name), para que Splunk establezca IP:puerto:
En el tipo de fuente, si no es una estándar que ya exista en Splunk, pulsaremos en «New» [1]. Introduciremos el nombre del tipo de fuente en «Source Type» [2], por ejemplo «fgt_log». En «Source Type Category» [3], elegiremos «Custom» y en «Source Type Description» [4], introduciremos, por ejemplo, «Fortigate»:
El asistente para agregar un nuevo receptor de datos nos mostrará las opciones elegidas. Si son correctas pulsaremos en Submit para crearlo:
En cuanto a usar un puerto UDP diferente para cada dispositivo del que queramos recolectar datos, deberemos seguir una estrategia común en la organización. Si tenemos muchos dispositivos y queremos conectarlos con Splunk, por ejemplo muchos switches, lo habitual es usar un puerto para los switches, otro puerto diferente para los dispositivos más importantes (firewall, san, antivirus EDR centralizado), y dejar algún puerto más para los forwarder de los equipos servidores Linux y equipos servidores Windows. Únicamente crear puertos diferentes de uso único para los dispositivos más importantes que compongan el SOC y el core de nuestra organización. Lógicamente no sería una buena estrategia usar un puerto diferente para cada dispositivo de nuestra organización si tenemos centenares, pero sí intentar usar un puerto diferente al menos para los más importantes.
Configurar Fortigate para enviar datos a servidor SIEM Splunk
Si tenemos acceso al cliente web de Fortigate, pulsaremos en «Bitácora y Reportes» y en «Configurar Registros» (esto puede variar en función de la versión del firware de Forti que tengamos y también del idioma de la interfaz, buscaremos «Log Settings» si lo tenemos en inglés). Para activar el envío de log al SIEM Splunk activaremos la opción «Enviar registros a Syslog» y en «Dirección IP/FQDN» introduciremos la dirección IP del servidor de Splunk, en nuestro caso 192.168.1.26.
En función de la versión del firmware de Forti y del modelo, puede que no tengamos más datos desde la interfaz gráfica, sólo la activación y la IP del SIEM:
Si queremos afinar más la configuración, por ejemplo definir el nivel de log que queramos enviar, o bien modificar el puerto, que por defecto es el 514, tendremos que acceder desde la consola y hacerlo por comando, como indicamos a continuación.
Para activar el envío de log a syslog SIEM Splunk desde Fortigate, usando la consola de comandos, nos conectaremos a Fortigate, bien por SSH, bien por telnet o bien desde la Consola CLI de la interfaz gráfica:
Una vez dentro de la consola CLI de comandos, accederemos al modo de configuración del log con el comando:
1 |
config log syslogd setting |
Para mostrar la configuración actual de envío de datos a syslog/SIEM, ejecutaremos el comando:
1 |
show full-configuration |
Que nos devolverá algo así:
config log syslogd setting
set status enable
set server «192.168.1.26»
set mode udp
set port 514
set facility local7
set source-ip »
set format default
set priority default
set max-log-rate 0
set interface-select-method auto
end
En este caso, como ya lo teníamos habilitado, nos devuelve el parámetro «status» a enable y el server con la IP del Splunk. Si no lo tenemos habilitado y queremos hacerlo por comando, introduciremos los siguientes comandos (dentro del modo config log syslogd setting):
1 2 3 4 5 |
set server "192.168.1.26" set status enable set mode udp set port 516 end |
En los comandos anteriores, podemos cambiar el puerto por defecto 514 que establece Fortigate a otro que deseemos, con set port x. En nuestro caso, al haber creado un data input específico para Fortigate con el puerto 516, estableceremos el parámetro port a 516 con set port 516. También podemos modificar el tipo de protocolo para el envío de datos set mode x (udp, tcp).
Desde la línea de comandos pueden añadirse más parámetros de configuración del envío a syslog y más opciones de cada parámetro. A continuación mostramos las opciones posibles para cada parámetro (los más importantes):
Parámetro | Valores posibles |
mode | * udp: envío de datos por protocolo UDP. * reliable: envío de datos por protocolo TCP. * legacy-reliable: envío de datos por protocolo TCP RFC3195. |
status | * enable: envío de datos habilitado. * disable: envío de datos deshabilitado. |
format | * default: formato Syslog. * csv: formato CSV (Comma Separated Values). * cef: formato CEF (Common Event Format). |
enc-algorithm | Si queremos habilitar el envío cifrado TLS: * high-medium: comunicación SSL con algoritmos de cifrado de nivel alto y medio. * high: comunicación SSL con algoritmos de encriptación de nivel altos. * low: comunicación SSL con algoritmos de encriptación bajos. * disable: deshabilitar la comunicación SSL. |
facility | Las opciones posibles son: kernel, user, mail, daemon, auth, syslog, lpr, news, uucp, cron, authpriv, ftp, ntp, audit, alert, clock, local0, local1, local2, local3, local4, local5, local6, local7. |
ssl-min-proto-version | Si queremos activar el envío cifrado de información a syslog SIEM, con este parámetro podremos indicar la versión de SSL a usar: * default: usará la establecida en la configuración global del equipo. * SSLv3: SSLv3. * TLSv1: TLSv1. * TLSv1-1: TLSv1.1. * TLSv1-2: TLSv1.2. |
También podremos configurar el nivel de log a enviar al SIEM Splunk, accediendo al módulo config log syslogd filter con el comando:
1 |
config log syslogd filter |
Dentro del módulo «filter», si ejecutamos el comando:
1 |
show full-configuration |
Nos devolverá la configuración actual:
config log syslogd filter
set severity warning
set forward-traffic enable
set local-traffic enable
set multicast-traffic enable
set sniffer-traffic enable
set anomaly enable
set voip enable
set filter »
set filter-type include
end
Si queremos modificar algún parámetro, por ejemplo el nivel de log, que actualmente lo tenemos en «warning», subirlo a «error», introduciremos el comando:
1 |
set serverity error |
Los niveles de log posibles en Fortigate:
- emergency
- alert
- critical
- error
- warning
- notification
- information
- debug
Hay que tener cierta precaución con el nivel de log elegido, niveles bajos como notification, information, debug pueden enviar millones de eventos al día, en función del volumen de nuestra organización.
Consultar datos recibidos de Fortigate en Splunk
Desde la consola web de Splunk, una vez configurados Fortigate y Splunk, pulsaremos en «» para consultar los log/eventos recibidos de Fortigate:
Podremos usar el filtro:
sourcetype=»fgt_log»
Que nos mostrará todos los eventos de la fuente «fgt_log» (Fortigate configurada anteriormente):