# Desplegando Wazuh con docker (server y agentes) Cómo desplegar un servidor Wazuh y cómo conectar los agentes. ## SERVIDOR Siguiendo esta guía https://documentation.wazuh.com/current/deployment-options/docker/docker-installation.html se explica cómo desplegar un servidor Wazuh mediante docker. ### Instalar "docker" y "docker compose" Se puede hacer de dos formas: 1. Como se explica en esta guía (forma fácil) https://documentation.wazuh.com/current/deployment-options/docker/docker-installation.html 2. Con los scripts de Ansible (más lento, práctica común en todos los servers de Isard) 1. Clonamos el [repo oficial](https://gitlab.com/isard/terraform/isard-images) de imágenes de Ansible de Isard 2. Se pone en el `authorized_keys` del servidor Wazuh la clave del usuario *root* desde donde ejecutaremos el script de ansible 3. Si es necesario, se crea un *virtual environment* para poder ejecutar los scripts: ``` apt install python3-pip pip install virtualenv python3 -m venv venv source venv/bin/activate ``` 4. Una vez en el venv, se ejecuta el script `common/setup.yml` de la siguiente forma: ``` ansible-playbook -u root -i "<IP_WAZUH_SERVER>," -e '{ "user_password": "<PASSWD_ROOT_WAZUH_SERVER>" }' common/setup.yml ``` 5. Una vez hecho esto, eliminar del `authorized_keys` del servidor Wazuh la clave del equipo anterior ### Deploy Wazuh 1. ``` cd /opt git clone https://github.com/wazuh/wazuh-docker.git -b v4.5.4 cd wazuh-docker/single-node docker compose -f generate-indexer-certs.yml run --rm generator docker compose up -d ``` 2. En un navegador web se introduce: `https://<IP_WAZUH_SERVER>` Credenciales por defecto: - User: admin - Password: SecretPassword En Wazuh Server hay dos tipos de usuarios: **indexers** y **API** El usuario **admin**, por ejemplo, es de tipo indexer, y es el que más interesa modificar esa contraseña por defecto. ### Moificar passwd de users tipo 'indexer' Si se quieren cambiar se debe: 1. ``` docker compose down docker run --rm -ti wazuh/wazuh-indexer:4.5.4 bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/hash.sh ``` Se escribe la contraseña deseada en texto plano 2. Se copia el hash y se edita el fichero `config/wazuh_indexer/internal_users.yml`. En el bloque del usuario **admin**, se cambia el hash actual por el hash nuevo generado 3. Se edita el fichero `docker-compose.yml` y en el tag **services** se cambia la contraseña en texto plano de ambos bloques **wazuh.manager** y **wazuh.dashboard**: ``` - INDEXER_USERNAME=admin - INDEXER_PASSWORD=SecretPassword ``` 4. ``` docker compose up -d docker exec -it <WAZUH_INDEXER_CONTAINER_NAME> bash # copiar el siguiente bloque de código para modificar dichas variables 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 ``` ### Modificar passwd de users tipo 'API' https://documentation.wazuh.com/current/deployment-options/docker/wazuh-container.html#wazuh-api-users ## Agente Siguiendo esta guía https://documentation.wazuh.com/current/installation-guide/wazuh-agent/index.html#wazuh-agent se explica cómo conectar los agentes al servidor Wazuh de la siguiente forma. Para agentes Ubuntu/Debian: ``` curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list apt update WAZUH_MANAGER="<IP_SERVER_WAZUH>" apt install wazuh-agent systemctl daemon-reload systemctl enable wazuh-agent systemctl start wazuh-agent ``` De esta forma ya está conectado con el servidor, y mediante el GUI en el navegador web de Wazuh Server, aparecerá como agente conectado. Recomendado: desactivar las actualizaciones del Wazuh: ``` sed -i "s/^deb/#deb/" /etc/apt/sources.list.d/wazuh.list apt-get update echo "wazuh-agent hold" | dpkg --set-selections ```