10 octubre, 2024

Proyecto SIEM Open Source: Wazuh - Parte IIA: Indexer

Continuando con mi proyecto de SIEM Open Source (Wazuh) voy a detallar los pasos de instalación básicos del stack. De la nada a empezar a tener identificación de eventos. Empecemos por el Wazuh Indexer


 

Resumen práctico de la instalación del Wazuh

Disclaimer: Esto describe la instalación que realice por mano propia con las versiones descriptas y los recursos que me disponibilizaron, puede existir mejoras o variaciones para otros casos.

Parto de que los servidores ya poseen el sistema operativo instalador y actualizado

Instalando Wazuh Indexer

Wazuh Indexer es el componente de Wazuh basado en OpenSearch, encargado de almacenar y gestionar grandes volúmenes de datos de seguridad generados por los agentes y sistemas monitorizados. Se encarga de indexar los logs, haciéndolos fácilmente consultables y permitiendo realizar búsquedas rápidas y efectivas en el entorno de seguridad. Es la pieza clave para el almacenamiento eficiente y la búsqueda avanzada de datos.

 

Configuración zona horaria (TimeZone)

Listo todas las zonas horarias 

timedatectl list-timezones
Configuro la zona adecuada según la ubicación geográfica

sudo timedatectl set-timezone your_time_zone
El your_time_zone es la zona según el listado del paso anterior
 
Verifico que haya quedado la zona seleccionada

timedatectl


Instalación

Descargar instalador y archivo de configuración

curl -sO https://packages.wazuh.com/4.8/wazuh-install.sh
curl -sO https://packages.wazuh.com/4.8/config.yml


Editar config.yml, colocando las IP (y los nombre si se quieren cambiar el default)

Tomare las siguiente para ejemplo:

  •     Indexer: 192.168.20.151
  •     Server: 192.168.20.149
  •     Dashboard: 192.168.20.148


Se genera el archivo de configuración

bash wazuh-install.sh --generate-config-files

El archivo wazuh-install-files.tar se debe distribuir en el Indexer, Server y Dashboard (y sus respectivos nodos), ya  que contienen los parámetros de instalación

Instalación del Indexer

bash wazuh-install.sh --wazuh-indexer node-1

Se debe repetir si existe mas de un nodo


Inicialización de cluster (sea que se tenga 1  o mas nodos)
 

bash wazuh-install.sh --start-cluster

 
Generar las password de Admin

tar -axf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt -O | grep -P "\'admin\'" -A 1

Testeo

Confirmamos que este OK la instalación

curl -k -u admin:<ADMIN_PASSWORD> https://<WAZUH_INDEXER_IP>:9200


La salida debe ser:

{
  "name" : "node-1",
  "cluster_name" : "wazuh-cluster",
  "cluster_uuid" : "095jEW-oRJSFKLz5wno5PA",
  "version" : {
    "number" : "7.10.2",
    "build_type" : "rpm",
    "build_hash" : "db90a415ff2fd428b4f7b3f800a51dc229287cb4",
    "build_date" : "2023-06-03T06:24:25.112415503Z",
    "build_snapshot" : false,
    "lucene_version" : "9.6.0",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Comprobamos que el cluster corra correctamente

curl -k -u admin:<ADMIN_PASSWORD> https://<WAZUH_INDEXER_IP>:9200/_cat/nodes?v

Recordar borrar las líneas del history para evitar el leak de password con history -d N , donde N es el número de línea

 

Optimización

Cuando el sistema empieza usar el swap, es posible que el indexer de Wazuh no funcione como se esperaba. Es importante para la salud del nodo indexador de Wazuh que ninguna máquina virtual Java (JVM) empieze a hacer swap en disco. Para evitarlo se configura el Wazuh Indexer  para bloquear el espacio de direcciones del proceso en RAM.

Edito el archivo de configuración del Opensearch:

sudo nano /etc/wazuh-indexer/opensearch.yml

Agrego al final del archivo

bootstrap.memory_lock: true

Creo el archivo que especifica los limites del sistema

sudo mkdir -p /etc/systemd/system/wazuh-indexer.service.d/
sudo cat > /etc/systemd/system/wazuh-indexer.service.d/wazuh-indexer.conf << EOF
[Service]
LimitMEMLOCK=infinity
EOF

Reinicio servicio para comprobar que todo este OK

sudo systemctl restart wazuh-indexer

Verifico el estado del servicio

systemctl status wazuh-indexer


Reglas de Firewall

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow proto tcp  from 192.168.20.27 to any port 9200 comment Graylog
sudo ufw allow proto tcp  from 192.168.20.149 to any port 9200 comment Wazuh Server
sudo ufw allow proto tcp 9300:9400 comment Wazuh_Indexer_Cluster
sudo ufw enable
sudo ufw status verbose

Solo aplicar el comando en fucsia si se dispone mas de un nodo para el Wazuh Indexer



Recursos

  • https://www.youtube.com/@taylorwalton_socfortress/playlists
  • https://wazuh.com/community/join-us-on-slack/
  • https://groups.google.com/g/wazuh
  • https://documentation.wazuh.com/4.8/getting-started/index.html
  • https://www.reddit.com/r/Wazuh/
  • https://socfortress.medium.com/installing-the-new-wazuh-version-4-4-the-socfortress-way-ea3a8030d94b
  • https://www.youtube.com/watch?v=frzsfkiEL6A
  • https://zaferbalkan.com/2023/08/08/wazuh-pain-points.html#proper-log-archiving-does-not-exist
  • https://documentation.wazuh.com/current/user-manual/manager/event-logging.html
  • https://documentation.wazuh.com/current/user-manual/wazuh-indexer/wazuh-indexer-tuning.html

 

0 comments:

Publicar un comentario