---
# System prepended metadata

title: WAZUH (server y agentes)

---

# 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
```