[{"data":1,"prerenderedAt":148},["ShallowReactive",2],{"seo-verification":3,"blog-wazuh-siem-autoalojado-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-wazuh-siem-autoalojado-vps-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":91,"ctaBody":92,"ctaButton":93,"ctaUrl":94,"relatedPosts":95},404,"wazuh-siem-autoalojado-vps",{"fr":12,"en":13,"ar":14,"es":10},"wazuh-siem-self-hosted-vps","wazuh-siem-vps-self-hosting","wazuh-siem-استضافة-ذاتية-vps","Wazuh SIEM open source en VPS: vigilancia y cumplimiento","Despliega Wazuh SIEM open source en tu VPS Linux para centralizar logs, detectar intrusiones y automatizar el cumplimiento de PCI-DSS, HIPAA y GDPR.",10,0,false,"2026-10-02T00:00:00+00:00","2026-10-02T14:03:20+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fwazuh-siem-self-hosted-vps-poster.svg","Gestionas varios servidores autoalojados — n8n, Nextcloud, bases de datos — y no tienes una visión unificada de lo que ocurre en ellos. Wazuh es un SIEM\u002FXDR open source que correlaciona tus eventos de seguridad en tiempo real, sin enviar tus logs a terceros y sin suscripción cloud. Aquí te explicamos cómo desplegarlo en un VPS Linux en modo single-node con Docker Compose.",[35,39,50,53,78,81,85,88],{"type":36,"title":37,"body":38},"h2","Por qué desplegar Wazuh en tu VPS","Un servidor Linux emite continuamente señales de seguridad: intentos de conexión SSH, modificaciones de archivos del sistema, escaladas de privilegios, procesos inusuales. Estos eventos viven en logs dispersos — `\u002Fvar\u002Flog\u002Fauth.log`, los logs de tus contenedores, los logs de aplicaciones — que nadie correlaciona. Un SIEM es precisamente la herramienta que centraliza estos flujos, los analiza y hace aflorar los incidentes.\n\nWazuh es hoy la referencia open source en este ámbito. Su arquitectura se basa en un **manager** (el cerebro de la detección) que recibe datos de **agentes** ligeros instalados en cada uno de tus servidores. El manager integra un motor de correlación de reglas, un módulo de integridad de archivos (FIM), un módulo de detección de vulnerabilidades y dashboards de cumplimiento normativo listos para usar.\n\nA diferencia de Datadog SIEM o Elastic SIEM en modo cloud, Wazuh no te cobra por ingestión y tus datos permanecen en tu propia infraestructura. Este es el enfoque a adoptar cuando gestionas varios servidores y necesitas justificar tu postura de seguridad.",{"type":40,"title":41,"items":42},"ul","Qué aporta Wazuh a tu infraestructura",[43,44,45,46,47,48,49],"Centralización de logs de todos tus servidores Linux en un único dashboard: sin más conexiones SSH de máquina en máquina para leer `auth.log`.","Detección de intrusiones basada en reglas: intentos de fuerza bruta, escaladas de privilegios, modificaciones de archivos críticos — con correlación multi-fuente.","File Integrity Monitoring (FIM) en tiempo real: cualquier modificación de `\u002Fetc\u002Fpasswd`, `\u002Fetc\u002Fsudoers` o de tus binarios del sistema genera una alerta inmediata.","Reglas de cumplimiento PCI-DSS, HIPAA, GDPR y NIST SP 800-53 integradas en el conjunto de reglas predeterminado — cada alerta se etiqueta automáticamente con los controles normativos afectados.","Detección activa de vulnerabilidades: Wazuh consulta bases de datos CVE e identifica paquetes instalados expuestos a CVEs conocidas.","Complementario a CrowdSec y Fail2ban: Wazuh correlaciona y archiva para el cumplimiento normativo, CrowdSec actúa en el perímetro — las dos herramientas se refuerzan sin duplicarse.","Sin coste de ingestión: conservas el historial tanto tiempo como permita tu disco.",{"type":36,"title":51,"body":52},"Requisitos previos con cifras concretas","El despliegue single-node de Wazuh (manager + indexer + dashboard en tres contenedores Docker) es más exigente en recursos que un simple agente de monitorización. Estos son los mínimos realistas para un uso en producción.\n\n**Para el manager (nodo central):**\n- **4 vCPU** mínimo, 8 vCPU recomendados para un parque de 10 servidores o más.\n- **8 GB de RAM** mínimo para el nodo single-node. Prevé 16 GB si indexas un volumen alto de eventos o gestionas más de 50 agentes.\n- **50 GB de disco SSD** mínimo; 100 GB o más si conservas 90 días de historial.\n- Ubuntu 22.04 LTS o Debian 12, actualizados.\n- Docker Engine 24.0+ y Docker Compose v2 instalados.\n- Un nombre de dominio para exponer el dashboard Wazuh en HTTPS mediante un proxy inverso.\n\n**Para cada agente (en tus otros servidores):**\n- El agente Wazuh es muy ligero: menos de 64 MB de RAM y menos del 1% de CPU en condiciones normales.\n- Compatible con Linux (Debian, Ubuntu, AlmaLinux, Rocky), Windows y macOS.\n\n**Puertos de red a abrir en el manager:**\n- `1514\u002FUDP` y `1514\u002FTCP`: comunicación agente → manager.\n- `1515\u002FTCP`: registro de agentes.\n- `55000\u002FTCP`: API REST de Wazuh (acceso local únicamente, no exponer públicamente).\n- `9200\u002FTCP` y `9300\u002FTCP`: Wazuh Indexer (uso interno entre contenedores).\n- `443\u002FTCP`: Wazuh Dashboard a través de tu proxy inverso.",{"type":54,"title":55,"steps":56},"steps","Desplegar Wazuh con Docker Compose: procedimiento completo",[57,60,63,66,69,72,75],{"title":58,"body":59},"Preparar el servidor e instalar Docker","Actualiza el sistema e instala Docker Engine y Docker Compose v2 desde el repositorio oficial de Docker:\n\n```bash\napt-get update && apt-get upgrade -y\ncurl -fsSL https:\u002F\u002Fget.docker.com | sh\ndocker --version && docker compose version\n```\n\nVerifica que Docker Compose v2 responde correctamente (comando `docker compose`, sin guión). Activa Docker al inicio: `systemctl enable --now docker`.",{"title":61,"body":62},"Clonar el repositorio oficial Wazuh Docker","Wazuh publica sus archivos Docker Compose oficiales en el repositorio `wazuh\u002Fwazuh-docker`. Clona la rama correspondiente a la versión estable actual (v4.14.8 en el momento de este artículo):\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fwazuh\u002Fwazuh-docker.git -b v4.14.8 --depth 1\ncd wazuh-docker\u002Fsingle-node\n```\n\nLa carpeta `single-node` contiene el `docker-compose.yml` preconfigurado con tres servicios: `wazuh.manager`, `wazuh.indexer` y `wazuh.dashboard`.",{"title":64,"body":65},"Generar los certificados TLS entre componentes","Wazuh requiere certificados TLS para la comunicación entre el manager, el indexer y el dashboard. El repositorio proporciona un archivo Compose dedicado para su generación:\n\n```bash\ndocker compose -f generate-indexer-certs.yml run --rm generator\n```\n\nLos certificados se escriben en `config\u002Fwazuh_indexer_ssl_certs\u002F`. Este paso se requiere una sola vez; para renovarlos, vuelve a ejecutar el comando y reinicia el stack.",{"title":67,"body":68},"Arrancar el stack de Wazuh","Lanza los tres contenedores en segundo plano:\n\n```bash\ndocker compose up -d\n```\n\nEl primer arranque descarga las imágenes oficiales (aproximadamente 2 GB en total) e inicializa el indexer. Espera 60 a 90 segundos y comprueba que los tres servicios estén en estado `healthy`:\n\n```bash\ndocker compose ps\n```\n\nSi `wazuh.indexer` permanece en `starting` más de 3 minutos, revisa sus logs: `docker compose logs wazuh.indexer | tail -50`.",{"title":70,"body":71},"Cambiar la contraseña predeterminada del dashboard","Las credenciales predeterminadas del dashboard de Wazuh son `admin` \u002F `SecretPassword`. Cámbialas inmediatamente a través de la API de OpenSearch Indexer:\n\n```bash\ndocker compose exec wazuh.indexer curl -sk -X PUT \\\n  https:\u002F\u002Flocalhost:9200\u002F_plugins\u002F_security\u002Fapi\u002Faccount \\\n  -u admin:SecretPassword \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\"password\": \"TuNuevaContraseña\", \"current_password\": \"SecretPassword\"}'\n```\n\nActualiza la variable `DASHBOARD_PASSWORD` en `docker-compose.yml` y vuelve a ejecutar `docker compose up -d` para que el dashboard use la nueva contraseña.",{"title":73,"body":74},"Exponer el dashboard a través de un proxy inverso HTTPS","No expongas el dashboard directamente en el puerto 443 sin proxy inverso. Con nginx, crea un vhost que haga proxy hacia `https:\u002F\u002F127.0.0.1:5601` desactivando la verificación del certificado autofirmado en el lado upstream:\n\n```nginx\nserver {\n  listen 443 ssl;\n  server_name wazuh.tu-dominio.com;\n  location \u002F {\n    proxy_pass https:\u002F\u002F127.0.0.1:5601;\n    proxy_ssl_verify off;\n  }\n}\n```\n\nRenueva tu certificado Let's Encrypt con Certbot. No expongas los puertos 9200, 55000 ni 1514\u002F1515 públicamente.",{"title":76,"body":77},"Instalar y registrar un agente en un servidor remoto","En cada servidor Linux que quieras monitorizar, instala el agente Wazuh apuntando a la IP o DNS de tu manager. En Ubuntu\u002FDebian:\n\n```bash\ncurl -s https:\u002F\u002Fpackages.wazuh.com\u002Fkey\u002FGPG-KEY-WAZUH | gpg --no-default-keyring \\\n  --keyring gnupg-ring:\u002Fusr\u002Fshare\u002Fkeyrings\u002Fwazuh.gpg --import && \\\n  chmod 644 \u002Fusr\u002Fshare\u002Fkeyrings\u002Fwazuh.gpg\necho \"deb [signed-by=\u002Fusr\u002Fshare\u002Fkeyrings\u002Fwazuh.gpg] https:\u002F\u002Fpackages.wazuh.com\u002F4.x\u002Fapt\u002F stable main\" | \\\n  tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fwazuh.list\napt-get update && apt-get install -y wazuh-agent\n```\n\nConfigura la dirección del manager en `\u002Fvar\u002Fossec\u002Fetc\u002Fossec.conf` (etiqueta `\u003Caddress>`), luego inicia y activa el agente:\n\n```bash\nsystemctl daemon-reload\nsystemctl enable wazuh-agent\nsystemctl start wazuh-agent\n```\n\nEl agente aparece en el dashboard bajo **Agents** en los 30 segundos siguientes.",{"type":36,"title":79,"body":80},"Configuración post-instalación: agentes, reglas y dashboards de cumplimiento","Una vez que el stack está operativo y los primeros agentes conectados, tres ajustes mejoran significativamente la relevancia de las alertas.\n\n**Activar la monitorización de integridad de archivos (FIM).** En la configuración del agente (`\u002Fvar\u002Fossec\u002Fetc\u002Fossec.conf`), añade los directorios sensibles en la sección `\u003Csyscheck>`:\n\n```xml\n\u003Csyscheck>\n  \u003Cfrequency>43200\u003C\u002Ffrequency>\n  \u003Cdirectories check_all=\"yes\">\u002Fetc,\u002Fusr\u002Fbin,\u002Fusr\u002Fsbin\u003C\u002Fdirectories>\n  \u003Cdirectories check_all=\"yes\">\u002Fvar\u002Fwww\u003C\u002Fdirectories>\n\u003C\u002Fsyscheck>\n```\n\nCualquier modificación en estos directorios genera una alerta de nivel 7 o superior.\n\n**Explorar los dashboards de cumplimiento.** En el dashboard de Wazuh, la sección **Modules** expone vistas preconfiguradas para PCI-DSS, HIPAA, GDPR y NIST SP 800-53. Cada alerta hereda automáticamente las etiquetas normativas definidas en las reglas XML del manager.\n\n**Ajustar el umbral de nivel de alerta.** El umbral predeterminado es 3. Para recibir solo alertas significativas, edita `\u002Fvar\u002Fossec\u002Fetc\u002Fossec.conf` en el manager y eleva el umbral a 7 en la sección `\u003Calerts>`:\n\n```xml\n\u003Calerts>\n  \u003Clog_alert_level>7\u003C\u002Flog_alert_level>\n  \u003Cemail_alert_level>9\u003C\u002Femail_alert_level>\n\u003C\u002Falerts>\n```\n\nReinicia el manager tras cualquier cambio de configuración: `docker compose restart wazuh.manager`.",{"type":82,"title":83,"body":84},"tip","Bastionado del despliegue","Algunos ajustes reducen la superficie de ataque del manager en sí.\n\n**Aisla el manager en su propio VPS** o, como mínimo, detrás de un firewall que solo abra los puertos 1514-1515 a las IPs de tus agentes — nunca a `0.0.0.0`.\n\n**Activa la autenticación TLS mutua** entre agentes y manager generando certificados de agente firmados por tu CA interna en lugar de usar el registro automático (`ossec-authd`). La documentación oficial de Wazuh detalla el procedimiento bajo \"Agent enrollment via the Wazuh manager API\".\n\n**Cifra los volúmenes Docker** que contienen el índice OpenSearch y las configuraciones — especialmente si alojas el manager en un VPS compartido.\n\n**Monitoriza el propio manager**: instala un agente Wazuh en el VPS que ejecuta el manager para detectar cualquier modificación de las imágenes Docker o los archivos de configuración.",{"type":36,"title":86,"body":87},"Resolución de problemas: errores frecuentes","Estos son los cinco problemas más frecuentes al desplegar Wazuh con Docker, con los mensajes exactos y sus correcciones.\n\n**1. `max virtual memory areas vm.max_map_count [65530] is too low`**\nEl indexer OpenSearch requiere al menos 262144. Añade esta línea en `\u002Fetc\u002Fsysctl.conf` del **host** (no dentro del contenedor): `vm.max_map_count=262144`, luego aplica con `sysctl -p`. Es el error más frecuente en un VPS recién creado.\n\n**2. `wazuh.indexer` permanece en estado `starting` indefinidamente**\nRevisa primero los logs (`docker compose logs wazuh.indexer`). Si ves `bootstrap checks failed`, casi siempre es `vm.max_map_count` (ver arriba) o falta de RAM. Si ves `certificate not found`, vuelve a generar los certificados.\n\n**3. El agente aparece como `Disconnected` en el dashboard**\nVerifica que el puerto 1514 está abierto en el manager y que la dirección del manager está correctamente configurada en el agente. Prueba la conectividad: `nc -zv \u003CIP_MANAGER> 1514`.\n\n**4. `ERROR: [agent_auth] Unable to create ssl context`**\nEl agente no puede validar el certificado TLS del manager. Comprueba que `ossec.cfg` apunta al nombre DNS y no a la IP si usas un certificado nominado.\n\n**5. `Too many open files` en los logs del manager**\nAumenta los límites `nofile` en el host en `\u002Fetc\u002Fsecurity\u002Flimits.conf`: `* soft nofile 65536` y `* hard nofile 65536`. En `docker-compose.yml`, añade `ulimits: nofile: soft: 65536 hard: 65536` al servicio `wazuh.manager` y reinicia.",{"type":36,"title":89,"body":90},"Wazuh en tu stack de seguridad","Wazuh es más efectivo cuando se integra con lo que ya tienes desplegado. Combinado con **CrowdSec** (que bloquea IPs a nivel de red), cubre tanto el perímetro como la profundidad del sistema. Combinado con **Fail2ban**, añade correlación y archivado normativo que Fail2ban no puede generar por sí solo. Y si ya tienes una stack de **Grafana + Prometheus**, Wazuh complementa la observabilidad del sistema con una capa de seguridad: Prometheus te dice que la CPU está al 90%, Wazuh te dice por qué.\n\nEl bastionado de tu servidor define una postura de seguridad estática. Wazuh es la monitorización continua que verifica que esa postura se mantiene en el tiempo.\n\nPara alojar tu manager Wazuh en una infraestructura cuyo nivel de seguridad controlas, consulta \u003Ca href=\"\u002Fpourquoi\u002Fsecurite\">cómo ServOrbit estructura la seguridad de su infraestructura\u003C\u002Fa> y elige el VPS que se adapta a tu parque de agentes.","Tu infraestructura bajo vigilancia","Un VPS con acceso root, elección de SO e IPv4 dedicada — lo que necesitas para ejecutar tu manager Wazuh sin restricciones.","Asegurar mi infraestructura","\u002Fpourquoi\u002Fsecurite",[96,116,131],{"id":97,"slug":98,"slugs":99,"title":103,"excerpt":104,"readTime":105,"views":106,"isPinned":19,"publishedAt":107,"updatedAt":108,"category":109,"categories":110,"featuredImage":30,"bgImage":31,"posterImage":112,"relatedSolution":113},108,"proteger-vps-con-crowdsec",{"fr":100,"en":101,"ar":102,"es":98},"securiser-vps-crowdsec","securing-your-vps-with-crowdsec","تأمين-خادمك-الافتراضي-vps-باستخدام-crowdsec","Proteger su VPS con CrowdSec","Despliegue CrowdSec en su VPS para bloquear los ataques gracias a una detección de comportamiento y a una blocklist comunitaria compartida.",4,1,"2026-03-04T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[111],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fsecuriser-vps-crowdsec-poster.svg",{"categorySlug":114,"appSlug":115},"ciberseguridad-bastion","crowdsec",{"id":117,"slug":118,"slugs":119,"title":123,"excerpt":124,"readTime":125,"views":106,"isPinned":19,"publishedAt":126,"updatedAt":108,"category":127,"categories":128,"featuredImage":30,"bgImage":31,"posterImage":130,"relatedSolution":30},317,"hardening-linux-vps-checklist-para-agencias-tras-la-entrega",{"fr":120,"en":121,"ar":122,"es":118},"linux-hardening-vps-checklist","linux-vps-hardening-checklist-for-agencies","قائمة-تصليب-خادم-لينكس-للوكالات-بعد-التسليم","Hardening Linux VPS : checklist para agencias tras la entrega","Checklist de hardening Linux reproducible para agencias: auditd, sudo, clave SSH, UFW, fail2ban y desactivación de root — con trazabilidad por cliente.",11,"2026-08-30T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[129],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Flinux-hardening-vps-checklist-poster.svg",{"id":132,"slug":133,"slugs":134,"title":138,"excerpt":139,"readTime":105,"views":18,"isPinned":19,"publishedAt":140,"updatedAt":108,"category":141,"categories":142,"featuredImage":30,"bgImage":31,"posterImage":144,"relatedSolution":145},106,"monitorizacion-vps-grafana-prometheus",{"fr":135,"en":136,"ar":137,"es":133},"monitoring-vps-grafana-prometheus","vps-monitoring-with-grafana-and-prometheus","مراقبة-الخادم-الافتراضي-vps-باستخدام-grafana-و-prometheus","Monitorización de VPS con Grafana y Prometheus","Monte una stack Grafana + Prometheus en su VPS para recopilar, almacenar y visualizar sus métricas de sistema y de aplicación.","2026-03-06T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[143],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fmonitoring-vps-grafana-prometheus-poster.svg",{"categorySlug":146,"appSlug":147},"monitorizacion-observabilidad","grafana",1790987854502]