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