bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Despliegue de Wazuh

calendar_month Sep 07, 2026 schedule 20 min de lectura visibility 17 vistas
Развёртывание Wazuh SIEM на VPS: комплексный мониторинг безопасности и обнаружение угроз
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Despliegue de Wazuh SIEM en un VPS: monitoreo integral de seguridad y detección de amenazas

TL;DR

En esta guía detallada, configuraremos paso a paso Wazuh SIEM (Security Information and Event Management) en su propio VPS. Obtendrá una potente plataforma para la recopilación, análisis y correlación de registros de seguridad, detección de intrusiones, monitoreo de la integridad de archivos y evaluación de vulnerabilidades. Esto le permitirá mejorar significativamente el nivel de seguridad de sus servidores y aplicaciones, proporcionando una protección proactiva contra las ciberamenazas.

  • Instalación y configuración de todos los componentes de Wazuh: Manager, Indexer (OpenSearch) y Dashboard (OpenSearch Dashboards).
  • Preparación básica del servidor, incluyendo la configuración de SSH, firewall y actualizaciones del sistema.
  • Ejemplos de configuración para asegurar el acceso HTTPS utilizando Certbot y Nginx.
  • Recomendaciones para elegir la configuración de VPS adecuada y el escalado.
  • Estrategias de copia de seguridad y mantenimiento para la estabilidad a largo plazo del sistema.
  • Respuestas a preguntas frecuentes y soluciones a problemas comunes.

Qué configuramos y por qué

Diagrama: Qué configuramos y por qué
Diagrama: Qué configuramos y por qué

Desplegaremos Wazuh, una plataforma de monitoreo de seguridad gratuita y de código abierto que integra funcionalidades SIEM, XDR (Extended Detection and Response) y SOAR (Security Orchestration, Automation and Response). Wazuh permite recopilar, indexar y analizar datos de seguridad de diversas fuentes, como registros de sistemas operativos, aplicaciones, dispositivos de red, así como datos de eventos de seguridad en tiempo real. En el corazón de Wazuh se encuentra un potente motor para la detección de amenazas, monitoreo de la integridad de archivos, análisis de vulnerabilidades, respuesta a incidentes y cumplimiento de estándares.

Al final, obtendrá un sistema centralizado que supervisará la seguridad de su VPS o incluso de toda una infraestructura. Wazuh le ayudará a:

  • Detectar intrusiones: identificar actividades sospechosas, intentos de fuerza bruta, anomalías en el comportamiento de usuarios y procesos.
  • Monitorear la integridad de archivos: rastrear cambios no autorizados en archivos y configuraciones críticas del sistema.
  • Evaluar vulnerabilidades: escanear el software instalado en busca de vulnerabilidades conocidas (CVE).
  • Recopilar y analizar registros: centralizar los registros de todos sus sistemas para facilitar la búsqueda, el análisis y la auditoría.
  • Responder a incidentes: ejecutar acciones automáticamente en respuesta a amenazas detectadas, por ejemplo, bloquear direcciones IP.
  • Cumplir con los estándares: simplificar el proceso de auditoría y cumplimiento de estándares como PCI DSS, GDPR, HIPAA.

Existen diferentes enfoques para el despliegue de sistemas SIEM. Puede elegir soluciones gestionadas en la nube (por ejemplo, Splunk Cloud, Azure Sentinel) o un despliegue autohospedado (self-hosted). Las soluciones en la nube ofrecen comodidad y escalabilidad sin la necesidad de gestionar la infraestructura, pero a menudo conllevan altos costos y menos control sobre los datos. El despliegue autohospedado de Wazuh en un VPS, por el contrario, proporciona un control total sobre sus datos e infraestructura, reduce significativamente los costos operativos y permite una personalización profunda del sistema según sus requisitos únicos. Esta es una opción ideal para propietarios de servidores VPS/dedicados que desean construir un sistema de seguridad robusto con una inversión mínima y máxima flexibilidad.

Qué configuración de VPS se necesita para esta tarea

Diagrama: Qué configuración de VPS se necesita para esta tarea
Diagrama: Qué configuración de VPS se necesita para esta tarea

La elección de la configuración de VPS adecuada para Wazuh es crucial, ya que el sistema puede ser bastante exigente en cuanto a recursos, especialmente el Indexer (OpenSearch), que almacena e indexa todos los registros. Los requisitos dependen en gran medida del volumen de registros generados y del número de agentes monitoreados.

Requisitos mínimos para un solo VPS (Wazuh Manager, Indexer, Dashboard en una misma máquina) para entornos pequeños (hasta 20-30 agentes)

  • CPU: 4 vCPU (núcleos virtuales). Esto asegurará un rendimiento suficiente para la indexación y el procesamiento de eventos.
  • RAM: 8-12 GB RAM. OpenSearch es el principal consumidor de memoria; necesitará al menos 4-6 GB para un funcionamiento estable, el resto para Wazuh Manager y el sistema operativo.
  • Disco: 100-200 GB NVMe SSD. La velocidad del disco es crítica para OpenSearch. El volumen depende del período de retención de registros. NVMe SSD supera significativamente a los SSD normales en rendimiento.
  • Red: 1 Gbit/s. Para la transmisión de registros y el acceso al panel de control.

Plan de VPS específico para la tarea (para 30-50 agentes)

Para un uso más activo, monitorear 30-50 agentes y almacenar registros durante varias semanas, recomendamos la siguiente configuración base:

  • CPU: 6-8 vCPU
  • RAM: 16 GB RAM
  • Disco: 200-300 GB NVMe SSD
  • Red: 1 Gbit/s

Un VPS con las características indicadas garantizará un funcionamiento cómodo de Wazuh para la mayoría de los proyectos pequeños y medianos. Es importante recordar que estas cifras son un punto de partida, y las necesidades reales pueden cambiar dependiendo de su carga de trabajo.

Cuándo se necesita un servidor dedicado y no un VPS

Si planea monitorear más de 100-200 agentes, almacenar registros durante un período prolongado (varios meses) o procesar un volumen muy grande de datos (por ejemplo, registros de servidores web de alta carga), entonces debería considerar un servidor dedicado. Los servidores dedicados ofrecen recursos garantizados, un mayor rendimiento del subsistema de disco y, a menudo, una mejor relación precio/rendimiento para cargas de trabajo grandes. Por ejemplo, para un despliegue a gran escala, podría ser necesario un servidor con más de 16 núcleos físicos, más de 64 GB de RAM y varios TB de NVMe SSD en una matriz RAID. En tales casos, vale la pena considerar un servidor dedicado adecuado para garantizar el rendimiento y la fiabilidad necesarios.

Ubicación: qué factores influyen

La elección de la ubicación del VPS influye en varios factores:

  • Latencia: Cuanto más cerca esté el servidor de sus agentes y usuarios del panel de control, menor será la latencia y más rápida la respuesta.
  • Legislación: Elija una ubicación que cumpla con sus requisitos de almacenamiento de datos y la legislación de privacidad (por ejemplo, UE para GDPR).
  • Costo: Los precios de los VPS pueden variar según la región.

Generalmente se recomienda elegir una ubicación que esté geográficamente cerca de la mayoría de sus sistemas monitoreados.

Preparación del servidor

Diagrama: Preparación del servidor
Diagrama: Preparación del servidor

Antes de instalar Wazuh, es necesario realizar una preparación básica de su VPS basado en Ubuntu 24.04 LTS. Esto incluye la creación de un usuario seguro, la configuración de SSH, el firewall y la actualización del sistema.

1. Conexión por SSH

Primero, conéctese a su nuevo VPS como usuario root (o el que le haya proporcionado el proveedor):


ssh root@ВАШ_IP_АДРЕС

2. Creación de un nuevo usuario con permisos sudo

Trabajar como root no es seguro. Crearemos un nuevo usuario y lo añadiremos al grupo sudo.


adduser wazuhadmin
usermod -aG sudo wazuhadmin

Reemplace wazuhadmin con el nombre de usuario de su elección. Se le pedirá que establezca una contraseña e introduzca información adicional (puede omitirla).

3. Configuración de claves SSH para el nuevo usuario (recomendado)

Para mejorar la seguridad, se recomienda usar claves SSH en lugar de contraseñas. Copie su clave SSH pública al servidor.


su - wazuhadmin
mkdir -p ~/.ssh
chmod 700 ~/.ssh
exit

Ahora copie su clave pública (que se encuentra en su máquina local, normalmente en ~/.ssh/id_rsa.pub) al servidor:


cat ~/.ssh/id_rsa.pub | ssh wazuhadmin@ВАШ_IP_АДРЕС "cat >> ~/.ssh/authorized_keys"

Asegúrese de que los permisos para authorized_keys estén configurados correctamente:


ssh wazuhadmin@ВАШ_IP_АДРЕС "chmod 600 ~/.ssh/authorized_keys"

4. Deshabilitar el inicio de sesión con contraseña para SSH (opcional, pero recomendado)

Edite el archivo de configuración del servidor SSH para permitir el inicio de sesión solo con claves.


sudo nano /etc/ssh/sshd_config

Busque y modifique las siguientes líneas:


#PasswordAuthentication yes
PasswordAuthentication no
#PermitRootLogin prohibit-password
PermitRootLogin no

Guarde los cambios (Ctrl+O, Enter) y salga (Ctrl+X). Reinicie el servicio SSH:


sudo systemctl restart sshd

Antes de desconectarse de root, asegúrese de poder iniciar sesión como wazuhadmin usando la clave SSH en una nueva terminal.


ssh wazuhadmin@ВАШ_IP_АДРЕС

Si el inicio de sesión es exitoso, puede cerrar la sesión de root.

5. Configuración del firewall (UFW)

Instalaremos y configuraremos UFW (Uncomplicated Firewall) para permitir solo los puertos necesarios.


sudo apt update && sudo apt install ufw -y

Permitiremos SSH (puerto 22), Wazuh Manager (1514/TCP, 55000/TCP), OpenSearch (9200/TCP) y OpenSearch Dashboards (443/TCP para HTTPS).


sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 1514/tcp comment 'Wazuh Agent communication'
sudo ufw allow 55000/tcp comment 'Wazuh API'
sudo ufw allow 9200/tcp comment 'OpenSearch REST API'
sudo ufw allow 443/tcp comment 'HTTPS for OpenSearch Dashboards'
sudo ufw enable
sudo ufw status verbose

Confirme la activación del firewall introduciendo y.

6. Instalación de Fail2Ban (recomendado)

Fail2Ban ayudará a protegerse contra ataques de fuerza bruta en SSH y otros servicios.


sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

En el archivo jail.local, busque la sección [sshd] y asegúrese de que esté habilitada (enabled = true). También puede configurar bantime (tiempo de bloqueo) y maxretry (número de intentos).


[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Guarde y salga. Reinicie Fail2Ban.


sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

7. Actualización del sistema e instalación de utilidades básicas

Asegúrese de que todos los paquetes estén actualizados e instale las utilidades necesarias.


sudo apt update && sudo apt upgrade -y
sudo apt install curl wget apt-transport-https gnupg2 -y

Ahora su servidor está listo para la instalación de Wazuh.

Instalación de software — paso a paso

Diagrama: Instalación de software — paso a paso
Diagrama: Instalación de software — paso a paso

Instalaremos Wazuh 5.0 (versión actual para 2026) en una arquitectura unificada (Manager, Indexer, Dashboard en un solo servidor) utilizando los repositorios oficiales.

1. Instalación de Java Development Kit (JDK)

OpenSearch (Indexer) requiere Java. Instalaremos OpenJDK 17.


sudo apt install openjdk-17-jdk -y # Instalación de OpenJDK 17
java -version # Verificación de la versión de Java

2. Adición del repositorio de Wazuh

Añadiremos el repositorio oficial de Wazuh y su clave GPG.


curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/wazuh.gpg > /dev/null # Adición de la clave GPG de Wazuh
echo "deb https://packages.wazuh.com/5.x/apt/ stable main" | sudo tee -a /etc/apt/sources.list.d/wazuh.list # Adición del repositorio de Wazuh 5.x
sudo apt update # Actualización de la lista de paquetes

3. Instalación de Wazuh Indexer (OpenSearch)

Instalaremos Wazuh Indexer, que es un fork de OpenSearch. Wazuh 5.0 utilizará OpenSearch 2.x.


sudo apt install wazuh-indexer -y # Instalación de Wazuh Indexer

Después de la instalación, es necesario generar certificados para una comunicación segura entre los componentes. Wazuh proporciona una utilidad para esto.


sudo /usr/share/wazuh-indexer/bin/indexer-cert-tool.sh # Ejecución de la utilidad para generar certificados

Esta utilidad creará los archivos de certificado necesarios (admin-key.pem, admin.pem, node-key.pem, node.pem, ca.pem) en el directorio actual. Los moveremos a las ubicaciones correctas.


sudo mkdir /etc/wazuh-indexer/certs
sudo mv ~/admin-key.pem ~/admin.pem ~/node-key.pem ~/node.pem ~/ca.pem /etc/wazuh-indexer/certs/ # Movimiento de certificados
sudo chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs # Establecimiento de permisos correctos
sudo chmod -R 500 /etc/wazuh-indexer/certs # Restricción de acceso a los certificados
sudo chmod 400 /etc/wazuh-indexer/certs/key.pem # Restricción de acceso a las claves privadas

Ahora edite la configuración del Indexer para usar estos certificados. Abra el archivo /etc/wazuh-indexer/opensearch.yml.


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

Añada o modifique las siguientes líneas:


# ---------------------------------- Network -----------------------------------
network.host: 0.0.0.0 # Permitir acceso desde todas las interfaces
http.port: 9200 # Puerto HTTP estándar
# --------------------------------- Security ---------------------------------
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/wazuh-indexer/certs/node.pem
plugins.security.ssl.http.pemkey_filepath: /etc/wazuh-indexer/certs/node-key.pem
plugins.security.ssl.http.rootcas_filepath: /etc/wazuh-indexer/certs/ca.pem
plugins.security.ssl.transport.enabled: true
plugins.security.ssl.transport.pemcert_filepath: /etc/wazuh-indexer/certs/node.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/wazuh-indexer/certs/node-key.pem
plugins.security.ssl.transport.rootcas_filepath: /etc/wazuh-indexer/certs/ca.pem
plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.allow_unsafe_democertificates: true # Temporalmente para simplificar, en producción es mejor usar sus propias CA
plugins.security.nodes_dn:
  - "CN=.wazuh-indexer.local" # Reemplace con su FQDN, si lo usa

Guarde y salga. Ahora puede iniciar y verificar el Indexer.


sudo systemctl daemon-reload # Recarga de unidades systemd
sudo systemctl enable wazuh-indexer # Habilitación del inicio automático del Indexer
sudo systemctl start wazuh-indexer # Inicio del Indexer
sudo systemctl status wazuh-indexer # Verificación del estado del Indexer

Espere unos minutos hasta que el Indexer se inicie por completo. Puede verificar su funcionamiento accediendo a la API:


curl -XGET https://localhost:9200 -u admin:admin -k # Verificación de la disponibilidad de la API de OpenSearch (usuario/contraseña por defecto admin:admin)

Debería recibir una respuesta JSON con información sobre el clúster.

4. Instalación de Wazuh Manager

Wazuh Manager es el núcleo del sistema que procesa, analiza y correlaciona los datos de los agentes.


sudo apt install wazuh-manager -y # Instalación de Wazuh Manager

Después de la instalación, es necesario configurar el Manager para comunicarse con el Indexer. Edite el archivo /etc/wazuh/wazuh_indexer.yaml.


sudo nano /etc/wazuh/wazuh_indexer.yaml

Especifique la dirección IP o el FQDN de su Indexer (en este caso localhost).


# Configuration for connection to Wazuh Indexer
# This file is managed by the wazuh-manager package.
# Do not edit this file directly, use the /etc/wazuh/wazuh_indexer.yaml.template file instead.

---
nodes:
  - address: "localhost" # Cambie a la dirección IP o FQDN de su Indexer
port: 9200
# SSL configuration
# If using custom certificates for the Wazuh Indexer, specify the path to the CA certificate.
# Otherwise, the default certificates generated by the Wazuh Indexer will be used.
ssl_certificate_authorities:
  - "/etc/wazuh-indexer/certs/ca.pem" # Ruta al certificado CA del Indexer

Guarde y salga. Ahora inicie el Manager.


sudo systemctl enable wazuh-manager # Habilitación del inicio automático del Manager
sudo systemctl start wazuh-manager # Inicio del Manager
sudo systemctl status wazuh-manager # Verificación del estado del Manager

5. Instalación de Wazuh Dashboard (OpenSearch Dashboards)

Wazuh Dashboard proporciona una interfaz web para la visualización y gestión de datos de seguridad.


sudo apt install wazuh-dashboard -y # Instalación de Wazuh Dashboard

Al igual que el Indexer, el Dashboard también necesita certificados para un funcionamiento seguro. Usaremos los mismos certificados que para el Indexer.


sudo mkdir /etc/wazuh-dashboard/certs
sudo cp /etc/wazuh-indexer/certs/ca.pem /etc/wazuh-indexer/certs/node.pem /etc/wazuh-indexer/certs/node-key.pem /etc/wazuh-dashboard/certs/ # Copia de certificados
sudo chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs # Establecimiento de permisos correctos
sudo chmod -R 500 /etc/wazuh-dashboard/certs # Restricción de acceso a los certificados
sudo chmod 400 /etc/wazuh-dashboard/certs/key.pem # Restricción de acceso a las claves privadas

Edite el archivo de configuración del Dashboard /etc/wazuh-dashboard/opensearch_dashboards.yml.


sudo nano /etc/wazuh-dashboard/opensearch_dashboards.yml

Añada o modifique las siguientes líneas:


server.host: "0.0.0.0" # Permitir acceso desde todas las interfaces
server.port: 443 # Uso del puerto HTTPS estándar 443
opensearch.hosts: ["https://localhost:9200"] # Especificamos la dirección del Indexer
opensearch.ssl.verificationMode: none # Deshabilitamos temporalmente la verificación SSL, ya que usamos certificados autofirmados
opensearch.ssl.certificate: /etc/wazuh-dashboard/certs/node.pem
opensearch.ssl.key: /etc/wazuh-dashboard/certs/node-key.pem
opensearch.ssl.certificateAuthorities: ["/etc/wazuh-dashboard/certs/ca.pem"]
# Wazuh API configuration
wazuh.manager.host: "https://localhost" # Dirección del Wazuh Manager
wazuh.manager.port: 55000 # Puerto de la API de Wazuh
wazuh.manager.ssl.verify: false # Deshabilitamos la verificación SSL para la API de Wazuh

Guarde y salga. Ahora inicie el Dashboard.


sudo systemctl enable wazuh-dashboard # Habilitación del inicio automático del Dashboard
sudo systemctl start wazuh-dashboard # Inicio del Dashboard
sudo systemctl status wazuh-dashboard # Verificación del estado del Dashboard

Espere unos minutos para que el Dashboard se inicie por completo. Después de esto, podrá acceder a la interfaz web en la dirección https://SU_DIRECCIÓN_IP. El usuario y la contraseña por defecto para OpenSearch Dashboards son admin:admin.

Configuración

Diagrama: Configuración
Diagrama: Configuración

Después de la instalación básica de Wazuh Manager, Indexer y Dashboard, es necesario realizar una configuración adicional para mejorar la seguridad y la usabilidad. Nos centraremos en la configuración de TLS/HTTPS para el Dashboard a través de Certbot y Nginx, así como en una verificación básica de la operatividad.

1. Configuración de Nginx como proxy inverso para Wazuh Dashboard

Aunque Wazuh Dashboard puede funcionar directamente en el puerto 443, el uso de Nginx como proxy inverso ofrece más flexibilidad, permite integrar fácilmente Certbot para la emisión automática de certificados SSL de Let's Encrypt y gestionar el tráfico de forma centralizada.

1.1. Instalación de Nginx

sudo apt install nginx -y # Instalación de Nginx
sudo systemctl enable nginx # Habilitar el inicio automático de Nginx
sudo systemctl start nginx # Iniciar Nginx
1.2. Creación de la configuración de Nginx para Wazuh Dashboard

Deshabilitaremos Wazuh Dashboard de la escucha directa en el puerto 443 y configuraremos Nginx. Primero, cambiaremos el puerto del Dashboard para que no entre en conflicto con Nginx. Abra /etc/wazuh-dashboard/opensearch_dashboards.yml.


sudo nano /etc/wazuh-dashboard/opensearch_dashboards.yml

Cambie server.port a, por ejemplo, 5601:


server.port: 5601 # Cambiamos el puerto para el Dashboard

Guarde y salga. Reinicie el Dashboard:


sudo systemctl restart wazuh-dashboard

Ahora cree un nuevo archivo de configuración de Nginx para su dominio (por ejemplo, wazuh.yourdomain.com).


sudo nano /etc/nginx/sites-available/wazuh.yourdomain.com

Pegue la siguiente configuración, reemplazando wazuh.yourdomain.com con su dominio real:


server {
    listen 80;
    listen [::]:80;
    server_name wazuh.yourdomain.com;
    return 301 https://$host$request_uri; # Redirección de HTTP a HTTPS
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name wazuh.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/wazuh.yourdomain.com/fullchain.pem; # Será generado por Certbot
    ssl_certificate_key /etc/letsencrypt/live/wazuh.yourdomain.com/privkey.pem; # Será generado por Certbot
    ssl_session_cache shared:SSL:10m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://localhost:5601; # Hacemos proxy al puerto del Dashboard
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        proxy_set_header Proxy-Connection "Keep-Alive";
        proxy_read_timeout 600s;
        proxy_send_timeout 600s;
    }
}

Guarde y salga. Active la configuración y verifique la sintaxis de Nginx:


sudo ln -s /etc/nginx/sites-available/wazuh.yourdomain.com /etc/nginx/sites-enabled/ # Creación de un enlace simbólico
sudo nginx -t # Verificación de la sintaxis de Nginx
sudo systemctl restart nginx # Reinicio de Nginx

2. Instalación de Certbot y obtención de un certificado SSL de Let's Encrypt

Ahora que Nginx está configurado, obtendremos un certificado SSL gratuito de Let's Encrypt utilizando Certbot.

2.1. Instalación de Certbot

sudo apt install certbot python3-certbot-nginx -y # Instalación de Certbot y el plugin para Nginx
2.2. Obtención del certificado

Asegúrese de que su dominio (wazuh.yourdomain.com) apunte a la dirección IP de su VPS en los registros DNS. Luego, ejecute:


sudo certbot --nginx -d wazuh.yourdomain.com # Ejecutar Certbot para obtener el certificado

Certbot hará varias preguntas (correo electrónico, aceptación de términos, redirección de HTTP a HTTPS). Elija la redirección automática. Certbot modificará automáticamente la configuración de Nginx, añadiendo las rutas a los certificados. Tras una finalización exitosa, verá un mensaje indicando que el certificado se ha instalado correctamente. Certbot también configurará la renovación automática del certificado.

3. Verificación de la operatividad

Ahora que todo está configurado, verificaremos la disponibilidad y operatividad de Wazuh.

  • Acceso al Dashboard: Abra un navegador web y vaya a https://wazuh.yourdomain.com. Debería ver la página de inicio de sesión de Wazuh Dashboard con un certificado SSL válido. Use el usuario admin y la contraseña admin (por defecto) para iniciar sesión.
  • Verificación del estado de los servicios:
  • 
    sudo systemctl status wazuh-manager wazuh-indexer wazuh-dashboard nginx # Verificación del estado de todos los servicios
    
  • Verificación de la API de Wazuh Manager:
  • 
    curl -u wazuh:wazuh -k "https://localhost:55000/api/overview/info" # Verificación de la API del Manager
    

    Debería recibir una respuesta JSON con información sobre el Manager. La contraseña por defecto para la API del Manager es wazuh.

4. Cambio de contraseñas por defecto

MUY IMPORTANTE: Cambie las contraseñas por defecto para Indexer/Dashboard (admin:admin) y la API de Wazuh (wazuh:wazuh) inmediatamente después de la instalación. Las instrucciones para cambiar las contraseñas se pueden encontrar en la documentación oficial de Wazuh, ya que el proceso puede variar para diferentes versiones. Normalmente, esto se hace a través de las utilidades CLI de OpenSearch o Wazuh.

Para Indexer/Dashboard: use la utilidad securityadmin.sh (para OpenSearch 2.x):


sudo /usr/share/wazuh-indexer/plugins/opensearch-security/tools/wazuh-passwords-tool.sh # Herramienta interactiva para cambiar contraseñas

Para la API de Wazuh: cambie la contraseña en el archivo /var/ossec/etc/ossec.conf en la sección o use la utilidad agent_auth para generar una nueva clave API.

Copias de seguridad y mantenimiento

Diagrama: Copias de seguridad y mantenimiento
Diagrama: Copias de seguridad y mantenimiento

Las copias de seguridad regulares y el mantenimiento oportuno son aspectos clave para garantizar la estabilidad y seguridad de su sistema SIEM Wazuh.

1. Qué respaldar

Para Wazuh SIEM, los siguientes componentes son críticamente importantes:

  • Datos del Indexer (OpenSearch): Esta es la parte más grande e importante. Aquí se almacenan todos los logs y eventos de seguridad recopilados. Se deben respaldar los índices.
  • Configuración de Wazuh Manager: Archivos en /var/ossec/etc/, especialmente ossec.conf, agent_keys (aunque se pueden restaurar al volver a registrar los agentes), decoders, rules y shared.
  • Configuración de Wazuh Dashboard: El archivo /etc/wazuh-dashboard/opensearch_dashboards.yml y cualquier visualización/dashboard personalizado, si no están almacenados en el Indexer.
  • Certificados: Todos los certificados SSL/TLS generados y utilizados (por ejemplo, en /etc/wazuh-indexer/certs/, /etc/wazuh-dashboard/certs/, /etc/letsencrypt/).

2. Script simple de copia de seguridad automática para configuraciones

Para los archivos de configuración, se puede usar un script simple con rsync o tar, ejecutado por cron. Para los datos del Indexer, es mejor usar los mecanismos integrados de OpenSearch.

Ejemplo de script para la copia de seguridad de configuraciones (/opt/wazuh-backup.sh):


#!/bin/bash

# Directorio para copias de seguridad temporales
BACKUP_DIR="/var/backups/wazuh_configs"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/wazuh_configs_${DATE}.tar.gz"

# Creación del directorio si no existe
mkdir -p "$BACKUP_DIR"

# Archivando archivos críticamente importantes
tar -czf "$BACKUP_FILE" \
    /var/ossec/etc/ossec.conf \
    /var/ossec/etc/agent_keys \
    /var/ossec/etc/decoders \
    /var/ossec/etc/rules \
    /var/ossec/etc/shared \
    /etc/wazuh-indexer/opensearch.yml \
    /etc/wazuh-indexer/certs/ \
    /etc/wazuh-dashboard/opensearch_dashboards.yml \
    /etc/wazuh-dashboard/certs/ \
    /etc/nginx/sites-available/wazuh.yourdomain.com \
    /etc/letsencrypt/live/wazuh.yourdomain.com/ \
    /etc/letsencrypt/archive/wazuh.yourdomain.com/

# Eliminación de copias de seguridad antiguas (por ejemplo, de más de 7 días)
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -delete

echo "Copia de seguridad de las configuraciones de Wazuh completada: $BACKUP_FILE"

Haga que el script sea ejecutable:


sudo chmod +x /opt/wazuh-backup.sh

Añádalo a crontab para su ejecución diaria (por ejemplo, a las 3 de la mañana):


sudo crontab -e

Añada la línea:


0 3 * * * /opt/wazuh-backup.sh > /dev/null 2>&1

3. Dónde almacenar las copias de seguridad

El almacenamiento local de copias de seguridad en el mismo servidor está sujeto al riesgo de pérdida de datos en caso de fallo del servidor. Se recomienda utilizar almacenamiento remoto:

  • Almacenamiento en la nube (compatible con S3): AWS S3, DigitalOcean Spaces, Backblaze B2. Para esto, se pueden usar utilidades como s3cmd o rclone.
  • VPS separado: Configure un segundo VPS como almacenamiento de copias de seguridad y use rsync a través de SSH para la sincronización.
  • Almacenamiento en red (NFS/SMB): Si tiene una red local.

4. Copia de seguridad de datos del Indexer (OpenSearch Snapshots)

OpenSearch tiene una funcionalidad integrada de snapshots para crear copias de seguridad incrementales de índices. Para ello, es necesario registrar un repositorio (por ejemplo, S3 o una ruta local) y luego crear instantáneas.

Ejemplo de registro de un repositorio local (para pruebas):


sudo mkdir /var/lib/wazuh-indexer/snapshots # Creación del directorio para instantáneas
sudo chown wazuh-indexer:wazuh-indexer /var/lib/wazuh-indexer/snapshots # Establecimiento de permisos

Luego, a través de la API del Indexer:


curl -XPUT "https://localhost:9200/_snapshot/my_backup_repository" -u admin:admin -k -H 'Content-Type: application/json' -d '{
  "type": "fs",
  "settings": {
    "location": "/var/lib/wazuh-indexer/snapshots"
  }
}'

Y creación de una instantánea:


curl -XPUT "https://localhost:9200/_snapshot/my_backup_repository/snapshot_1?wait_for_completion=true" -u admin:admin -k

En producción, se recomienda utilizar repositorios compatibles con S3 y automatizar la creación de instantáneas a través de Index State Management o cron.

5. Actualizaciones: rolling vs ventana de mantenimiento

La actualización de Wazuh y sus componentes requiere un enfoque cuidadoso.

  • Wazuh Manager/Indexer/Dashboard: Para despliegues pequeños en un solo VPS, utilice el enfoque de "ventana de mantenimiento". Programe un tiempo en el que el tiempo de inactividad del sistema sea menos crítico. Detenga todos los servicios, actualice los paquetes y luego inícielos. Lea siempre las notas de la versión oficiales antes de actualizar, ya que puede haber cambios en la configuración o el procedimiento.
  • 
    sudo systemctl stop wazuh-dashboard wazuh-manager wazuh-indexer
    sudo apt update && sudo apt upgrade -y # Actualización de todos los paquetes
    sudo systemctl start wazuh-indexer wazuh-manager wazuh-dashboard
    
  • Wazuh Agents: Los agentes se pueden actualizar de forma "rolling" (gradual) para evitar un tiempo de inactividad masivo. Wazuh proporciona la funcionalidad de actualización remota de agentes a través de la API o Kibana.
  • Sistema: Actualice regularmente el sistema operativo (sudo apt update && sudo apt upgrade -y) para obtener parches de seguridad.

¡Siempre haga una copia de seguridad antes de actualizaciones importantes!

Solución de problemas + Preguntas frecuentes

Esta sección recopila problemas comunes y respuestas a preguntas frecuentes que pueden surgir durante el despliegue y la operación de Wazuh SIEM.

No se puede conectar a Wazuh Dashboard a través del navegador.

Qué verificar:

  1. Asegúrese de que Nginx y Wazuh Dashboard estén en ejecución: sudo systemctl status nginx wazuh-dashboard.
  2. Verifique que el puerto 443 esté abierto en el firewall: sudo ufw status.
  3. Revise los logs de Nginx (sudo tail -f /var/log/nginx/error.log) y Wazuh Dashboard (sudo tail -f /var/log/wazuh-dashboard/wazuh-dashboard.log) en busca de errores.
  4. Asegúrese de que el nombre de dominio apunte correctamente a la dirección IP de su VPS.

Cómo solucionarlo: Reinicie los servicios. Si el problema es con Nginx, verifique la configuración (sudo nginx -t). Si es con Dashboard, asegúrese de que esté configurado en el puerto correcto (por ejemplo, 5601) y que Indexer esté disponible.

Wazuh Indexer (OpenSearch) no se inicia o funciona de forma inestable.

Qué verificar:

  1. Revise los logs de Indexer: sudo journalctl -u wazuh-indexer -f o sudo tail -f /var/log/wazuh-indexer/wazuh-indexer.log.
  2. Asegúrese de que haya suficiente memoria RAM. OpenSearch es muy exigente con la RAM.
  3. Verifique el espacio libre en disco: df -h.
  4. Revise la configuración /etc/wazuh-indexer/opensearch.yml en busca de errores, especialmente las rutas a los certificados.

Cómo solucionarlo: Aumente la cantidad de RAM para el VPS, si es posible. Libere espacio en disco. Corrija los errores en la configuración y reinicie el servicio.

Los agentes de Wazuh no se conectan al Manager.

Qué verificar:

  1. Asegúrese de que Wazuh Manager esté en ejecución: sudo systemctl status wazuh-manager.
  2. Verifique que el puerto 1514/TCP esté abierto en el firewall de su VPS: sudo ufw status.
  3. Revise los logs de Manager: sudo journalctl -u wazuh-manager -f.
  4. Asegúrese de que los agentes estén configurados con la dirección IP/FQDN correcta del Manager y utilicen la clave correcta.

Cómo solucionarlo: Verifique la conectividad de red entre el agente y el Manager (telnet SU_DIRECCIÓN_IP 1514). Asegúrese de que las claves de los agentes estén correctamente importadas y en uso. Reinicie el agente en la máquina cliente.

¿Qué configuración mínima de VPS es adecuada?

Para un despliegue de prueba o un entorno muy pequeño (hasta 10 agentes), se puede empezar con un VPS con 2-4 vCPU, 8 GB de RAM y 100 GB de SSD NVMe. Sin embargo, para un funcionamiento estable y el almacenamiento de datos durante un período razonable (varias semanas), se recomienda al menos 4 vCPU, 12-16 GB de RAM y 200 GB de SSD NVMe. Configuraciones menores pueden llevar a una ralentización de la indexación y problemas de rendimiento a medida que crece el volumen de logs.

¿Qué elegir: VPS o dedicado para esta tarea?

La elección entre un VPS y un servidor dedicado depende de la escala de su infraestructura y el volumen de datos. Para despliegues pequeños y medianos (hasta 50-100 agentes) con un volumen moderado de logs, un VPS con buenas características (como se describió anteriormente) será suficiente y rentable. Sin embargo, si planea monitorear cientos de agentes, procesar terabytes de logs, tener un largo período de retención de datos o requiere el máximo rendimiento y previsibilidad, un servidor dedicado con una CPU de alto rendimiento, una gran cantidad de RAM y un array de discos rápido será preferible. Los servidores dedicados proporcionan acceso exclusivo a todos los recursos físicos, lo cual es crítico para sistemas SIEM de alta carga.

¿Cómo actualizar Wazuh a una nueva versión?

La actualización de Wazuh generalmente implica detener todos los componentes (Indexer, Manager, Dashboard), actualizar los paquetes a través del gestor de paquetes (apt upgrade) y luego iniciarlos secuencialmente. Siempre consulte la documentación oficial de Wazuh para la versión específica a la que está actualizando, ya que puede haber pasos especiales o cambios en la configuración. Antes de actualizar, asegúrese de hacer una copia de seguridad completa del sistema.

¿Cómo cambiar la contraseña del usuario admin de Dashboard?

La contraseña para el usuario admin en Wazuh Dashboard (OpenSearch Dashboards) es gestionada por OpenSearch. Para cambiarla, debe usar la utilidad wazuh-passwords-tool.sh, que se encuentra en el directorio de plugins de seguridad de Indexer. Ejecútela con permisos de sudo, y le ofrecerá cambiar interactivamente las contraseñas para varios usuarios, incluido admin. Después de cambiar la contraseña, es posible que deba reiniciar Indexer y Dashboard.

Conclusiones y próximos pasos

Diagrama: Conclusiones y próximos pasos
Diagrama: Conclusiones y próximos pasos

Hemos desplegado con éxito un sistema Wazuh SIEM completo en un único VPS, configurando todos los componentes necesarios: Wazuh Manager, Indexer (OpenSearch) y Dashboard (OpenSearch Dashboards). Ahora dispone de una potente herramienta para la monitorización de seguridad, la detección de amenazas y la gestión centralizada de logs. Esto aumenta significativamente la transparencia y la seguridad de su infraestructura.

Para aprovechar al máximo su nuevo sistema SIEM, considere los siguientes pasos:

  1. Despliegue de agentes: Instale los agentes de Wazuh en todos sus servidores, estaciones de trabajo e instancias en la nube que desee monitorear. Esto permitirá recopilar datos de todas las fuentes.
  2. Ajuste fino de reglas y decodificadores: Explore la documentación de Wazuh para crear sus propias reglas de detección de amenazas y decodificadores de logs, específicos para sus aplicaciones e infraestructura.
  3. Integración con otros sistemas: Considere la integración de Wazuh con sistemas de notificación (Slack, Telegram, correo electrónico), de tickets (Jira) u otras herramientas de seguridad para automatizar la respuesta a incidentes.
  4. Monitorización del rendimiento: Monitoree regularmente el rendimiento de su VPS y los componentes de Wazuh para asegurarse de que el sistema maneja el volumen de datos y, si es necesario, considere la escalabilidad (aumento de los recursos del VPS o transición a una arquitectura de clúster).

¿Te fue útil esta guía?

Tus comentarios nos ayudan a mejorar nuestras guías.

Compartir esta publicación:

Envía esta guía a alguien a quien pueda resultarle útil.

Telegram VKVK WhatsApp Facebook LinkedIn XX

Despliegue de Wazuh SIEM en VPS: monitoreo de seguridad integral y detección de
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.