Recopilando los LOGs de Fortigate en Elasticsearch y visualizándolos en Grafana
Seguimos con otro documento donde intentaremos centralizar todos nuestros LOGs en Elasticsearch, en esta ocasión le tocan a nuestros firewalls de Fortigate. La idea no sólo será recopilar los LOGs si no además comprenderlos de manera visual y tener herramientas que nos ayuden en el día a día.
Lo dicho, el objetivo es el siguiente, primero recopilar los LOGs que tenemos en los firewalls de Fortigate, para tenerlos en un único sitio, que será nuestro querido Elasticsearch. Una vez tengamos ahí los LOGs podremos usar Kibana para cotillear qué pasa, quién visita qué web, que aplicaciones son las más usadas o qué tráfico generan… y a parte de curiosearlo, pues la idea será también visualizarlo en Grafana, que sabemos que tenemos un montón de tipos de Paneles para comprender o hacer comprender lo que estamos registrando en dichos LOGs.
Podremos hacer paneles de tipo Quesito, Tablas, Gráficas de tipo barras, cómo no de tipo Sankey, o colocar un Mapa mundi y geo localizar las direcciones IP de Destino u Origen, y saber quién y cuándo acceden a nuestros recursos, así como nuestros usuarios para qué usan Internet.
Lo más cómodo será hacerlo desde Kibana, ahí también nos indicará ciertos pasos necesarios que veremos a continuación, desde Kibana vamos a su «Home» > «Add data» > «Fortinet logs», lo bueno es que este asistente verificará si hemos seguido los pasos bien y está recopilando datos, y nos creará el índice si todo es OK.
Instalación de Filebeat,
Tenemos que instalar Filebeat en una máquina Windows o Linux para que éste servicio escuche en un puerto (al que el Fortigate le mandará los LOGs), y luego Filebeat almacene en el índice de Elasticsearch que nos interese los LOGs. Así que si no sabes donde instalarlo, la propia máquina de ELK nos puede ser totalmente válida, los pasos que seguiremos son si recopilamos desde un Linux, así que, instalamos Filebeat:
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.12.0-amd64.deb sudo dpkg -i filebeat-7.12.0-amd64.deb
Editamos lo primero de todo como siempre el fichero de configuración de Filebeat «/etc/filebeat/filebeat.yml» e indicaremos al menos los datos de conexión a Elasticsearch y Kibana:
... output.elasticsearch: hosts: ["http://DIRECCION_IP:9200"] ... setup.kibana: host: "http://DIRECION_IP:5601" ...
A continuación habilitaremos el módulo de Fortinet:
sudo filebeat modules enable fortinet
Editamos también el fichero de configuración del módulo de Fortigate «/etc/filebeat/modules.d/fortinet.yml», habilitamos la recolección de ‘firewall’ y si tenemos Forticlients, FortiMail o FortiManager también, si no, estos últimos los dejamos deshabilitados. También a considerar seleccionar cuáles son las interfaces Internas y las Externas; & por supuesto el puerto de escucha que tenremos (en este ejemplo el 9005):
- module: fortinet firewall: enabled: true var.input: udp var.syslog_host: 0.0.0.0 var.syslog_port: 9005 var.internal_interfaces: [ "lan1" ] var.external_interfaces: [ "wan" ] var.tags: [fortinet-firewall, fortigate] clientendpoint: enabled: false fortimail: enabled: false fortimanager: enabled: false
Y probamos la configuración:
filebeat test config -c /etc/filebeat/filebeat.yml -e
Cargamos los índices y los dashboards para Kibana, iniciamos el servicio, lo habilitamos para que arranque de manera automática y verificamos que el servicio arrancó de manera correcta:
sudo filebeat setup --pipelines --modules fortinet sudo systemctl start filebeat sudo systemctl enable filebeat sudo systemctl status filebeat
Habilitar los LOGs en el Fortigate,
Y configuramos el Fortigate que escupa los LOGs a un syslog, lo mejor por linea de comandos, ya que la GUI no nos permite especificar el puerto, y por CLI sí:
config log syslogd setting set status enable set server "DIRECCION_IP_FILEBEAT" set port 9005 end
Jugando con los LOGs,
Lo dicho, si la recolección de datos es correcta y el índice se ha creado correctamente poco más tenemos que hacer (el índice podemos crearlo nosotros manualmente si no seguimos el asistente inicial que comentamos). Podremos desde Kibana descubrir lo que recopila, añaquir o quitar campos, hacer búsquedas en formato Lucene o en formato KQL (Kibana Query Language).
Y podremos ya disfrutar por ejemplo de Grafana para interpretar los datos recopilados!! Haremos una conexión mediante un Data Source en Grafana de Tipo Elasticsearch e indicar los datos de conexión y luego con las mismas querys de Lucene que hicimos en Kibana, pues podremos hacer preciosos Dashboards.
Os dejo un ejemplo de cómo hacer un Donut o un quesito con el Top de consumo de Apps descubiertas por el Forti.
Y luego ya es dejar correr la imaginación y añadir las visualizaciones que queramos.
El el blog iréis viendo distintos ejemplos de visualización, que si en formato Tree Map…
Ejemplo de Tabla, donde podemos hacer filtrados en la GUI…
Ejemplo de diagrama tipo Sankey…
Unos mapas del mundo, donde podemos ver las conexiones entrantes o salientes, aceptadas o denegadas, en tiempo real o en histórico de las últimas 24h, 7 días, 1 año…
Lo dicho, en otros documentos verás cómo hacer cada tipo de panel que ves en este post, ¡espero que os guste y como siempre agradeceros esos likes en las redes sociales!
Posts recomendados:
- Gestión de calendarios con Radicale - 23 de mayo de 2024
- Monitorizando las reglas UTM web de nuestro firewall gracias a Centreon - 21 de mayo de 2024
- Backup automatizado de la configuración de Fortigate - 16 de mayo de 2024