Wazuh Multi-nodo y Alta disponibilidad
Wazuh es una plataforma de seguridad open que incluye un XDR(Extended Detection and Response) y SIEM (Security Information and Event Management).
La solución esta compuesta por tres componentes centrales
- Wazuh Indexer: motor de análisis de texto y con característica de escalabilidad, se encarga de indexar y almacenar las alertas generadas por el o los servidores de Wazuh.
- Wazuh Server: Este componente gestiona a los agentes, es decir, permite las actualizaciones de forma remota, recibe y analiza los datos de cada uno los gantes, procesa y decodifica con base en los decodificadores y reglas pre-establecidas o creadas, utiliza inteligencia de amenazas con el objetivo de buscar IoC (Indicadores de Compromiso)
- Wazuh dashboard: proporciona una interfaz Web intuitiva y flexible para el análisis y visualización de los datos, permite realizar configuraciones a nivel de Wazuh, creación de reglas y codificadores, búsquedas especificas, enrollment agentes y otras funciones.
En escenarios en los cuales se debe garantizar la alta disponibilidad del servicio de seguridad y el monitoreo de una gran cantidad de agentes, es necesario instalar Wazuh de manera distribuida.
A continuación se detalla una arquitectura para una instalación de manera distribuida y un balanceador de carga para la distribución de carga de los agentes, en caso de que uno de los nodos dejase de funcionar, la conexión se restablece a otro nodo, en este post se utilizó Wazuh 4.3
Instalación Wazuh Clúster
Wazuh cuenta con una excelente documentación que explica paso a paso la instalación, en este caso la primera instalación fue la del nodo Indexer. Primero es necesario realizar la configuración de la arquitectura.
Configuración nodo Indexer
En el Nodo Indexer se debe descargar tanto el script de instalación como el archivo de configuración.
curl -sO https://packages.wazuh.com/4.3/wazuh-install.sh
curl -sO https://packages.wazuh.com/4.3/config.yml
En el archivo config.yml se realizó la siguiente distribución para cada nodo con su respectivo nombre
Con esta configuración se generó el archivo de configuración que fue copiad a cada uno de lo nodos de la arquitectura para la instalación.
bash wazuh-install.sh --generate-config-files
Este archivo wazuh-install-files.tar contiene los certificados y contraseñas necesarias para la instalación.
Una vez realizada la configuración, se ejecutó el script de instalación como se puede observar en la siguiente imagen, con la opción — wazuh-indexer y el nombre del nodo
Como es una instalación distribuida es necesario para cargar los nuevos certificados e inicializar el clúster. (solo debe ser ejecutado una vez)
Al finalizar se realizó una consulta para para verificar el estado de instalación utilizando las contraseñas que se encuentran en el archivo wazuh-install-files.tar.
Instalación nodo Master y nodo Worker
El archivo config.yml debe estar en el directorio de instalación junto al script wazuh-install.sh y el archivo creado en el nodo Indexer (wazuh-install-files.tar) para todos los nodos, estos incluyen tipo Master,Worker.
Para la instalación se utilizó el nombre exacto del nodo que se encuentra en el archivo config.yml como se puede observar en la siguiente imagen.
Como se observa en la siguiente imagen se utilizó el nombre del segundo nodo tipo worker.
Y para finalizar se utilizó el nombre del último nodo tipo worker.
Una vez finalizada la instalación se verificó el estado y el tipo de los nodos .
Instalación Dashboard
El archivo config.yml debe estar en el directorio de instalación junto al script wazuh-install.sh y el archivo creado en el nodo Indexer (wazuh-install-files.tar) en el servidor para el Dashboard.
Para el ultimo nodo o server, se utilizó script de instalación con la opción — wazuh-dashboard y el nombre del servidor.
Al finalizar la instalación se puede accedió a la plataforma web, con las credenciales que proporcionó la instalación, estas también se encuentran en el archivo wazuh-install-files.tar
Instalación Balanceador de Carga (NGINX)
Para el balanceador de carga, que no es mas que un proxy reverso, se esta utilizando Nginx y Ubuntu server, la instalación se observa en la siguiente imagen.
Para la configuración del proxy reverso utilice el archivo de configuración de NGINX que viene con la instalación:
Para esta configuración se utilizó el post de wazuh
Conclusión
La instalación distribuida fue realizada con base en la documentación oficial, para el siguiente post se agregaran agentes utilizando al proxy reverso como parte de la conexión hacia el clúster de nodos distribuidos.
Saludos!