Skip to main content

Wazuh: Sistema de detección de intrusos (HIDS)


Introducción

Wazuh es una plataforma de seguridad integral que combina la gestión de eventos, análisis de amenazas y cumplimiento normativo. En este artículo, se detalla cómo desplegar Wazuh en un entorno de nodo único utilizando Docker, con un enfoque orientado a autohospedado.

La instalación está basada en la documentación oficial de Wazuh, adaptada a un entorno doméstico o de pruebas.


Características

  • Despliegue de nodo único para simplificar la instalación.
  • Uso de Docker Compose con separación lógica por servicios.
  • Variables centralizadas en .env para facilitar actualizaciones.
  • Certificados SSL para conexiones seguras entre contenedores.
  • Interfaz web para gestión de alertas y configuración.

Instalación y configuración

1. Clonar el repositorio

Clonamos el repositorio oficial de Wazuh Docker para la versión correspondiente:

git clone https://github.com/wazuh/wazuh-docker.git -b v4.12.0
cd wazuh-docker/single-node

2. Generar certificados

Ejecutamos el siguiente comando para generar los certificados necesarios:

docker-compose -f generate-indexer-certs.yml run --rm generator

3. Preparar archivos

Tanto el archivo .env como docker-compose.yml han sido saneados y se encuentran disponibles en el repositorio de Gitea:

Configuración en Gitea

Desde ahí pueden copiarse o actualizarse sin tener que mantenerlos directamente en este documento.


4. Generar hashes de contraseñas

Ejecutamos en un contenedor del indexador:

docker run --rm -ti wazuh/wazuh-indexer:4.12.0 bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/hash.sh

Pegamos cada contraseña y guardamos los hashes generados.

Editar archivos con los hashes obtenidos

  • config/wazuh_indexer/internal_users.yml Reemplazamos los hashes para los usuarios admin y kibanaserver.
  • config/wazuh_dashboard/wazuh.yml Actualizamos la contraseña correspondiente del usuario wazuh-wui.

5. Levantar los contenedores

En la carpeta single-node, ejecutamos:

docker-compose up -d

6. Configurar Wazuh Indexer

Accedemos al contenedor del indexador:

docker exec -it WazuhIndexer bash

Y ejecutamos:

export INSTALLATION_DIR=/usr/share/wazuh-indexer
CACERT=$INSTALLATION_DIR/certs/root-ca.pem
KEY=$INSTALLATION_DIR/certs/admin-key.pem
CERT=$INSTALLATION_DIR/certs/admin.pem
export JAVA_HOME=/usr/share/wazuh-indexer/jdk
bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/securityadmin.sh -cd /usr/share/wazuh-indexer/opensearch-security/ -nhnv -cacert $CACERT -cert $CERT -key $KEY -p 9200 -icl

7. Reiniciar los contenedores

docker compose down
docker compose up -d

8. Acceder a la interfaz web

Abrimos un navegador y accedemos a la URL del servidor en el puerto 4433 pasados unos minutos. Las credenciales están definidas en el .env. Si falla, revisar los logs:

docker logs NombreDelContenedor -f

Conclusión

Hemos configurado e implementado Wazuh en un entorno de nodo único utilizando Docker. Este despliegue es ideal para pruebas o entornos pequeños. La instalación del agente puede realizarse desde la propia interfaz web de Wazuh. Para configuraciones más avanzadas, consulta la documentación oficial.


Referencias