Este repositorio contiene scripts automatizados para la instalación y configuración del agente de Wazuh en entornos Linux con políticas de seguridad restrictivas (como /var montado con noexec).
- Sistema Operativo: CentOS 7 / RHEL 7 o superior
- Arquitectura: x86_64
- Permisos: Acceso root o sudo
- LVM: El directorio /var debe residir en un Volumen Lógico (LVM)
- Espacio: Al menos 100 MB libres en el Volume Group de /var
Script principal que automatiza todo el proceso:
- Verifica si /var/ossec ya está montado (evita conflictos)
- Crea un volumen lógico dedicado de 100 MB para Wazuh
- Formatea el volumen como ext4
- Monta el volumen en /var/ossec con opciones seguras (defaults,nosuid,nodev)
- Agrega la entrada correspondiente en /etc/fstab
- Solicita confirmación para el nombre del agente y la IP del manager
- Descarga e instala el agente Wazuh desde los repositorios oficiales
- Habilita e inicia el servicio wazuh-agent
- Validación pre-montaje: Verifica que no exista un montaje previo en /var/ossec
- Controles de error: Cada paso crítico valida su ejecución y aborta en caso de fallo
- Rollback automático: Si mount -a falla, elimina la entrada problemática de /etc/fstab
- Confirmación interactiva: Solicita confirmación antes de proceder con la instalación
git clone https://github.com/OrangeBox-Labs/wazuh/
cd wazuh
./wazuh.install.rhel.sh
El script solicitará interactivamente:
- Nombre del agente: Identificador del equipo en Wazuh (por defecto: hostname del sistema)
- IP del Manager: Dirección del servidor Wazuh central (por defecto: 192.168.200.160)
install-wazuh-agent.sh
├── Verificación de montaje previo
├── Detección del VG/LV de /var
├── Creación de LV dedicado (100 MB)
├── Formateo ext4
├── Montaje en /var/ossec
├── Configuración de fstab
├── Validación post-montaje
├── Configuración del agente
├── Descarga e instalación del RPM
└── Habilitación del servicio
Puedes modificar las siguientes variables dentro del script:
- LV_NAME: Nombre del volumen lógico (por defecto: wazuh)
- LV_SIZE: Tamaño del volumen (por defecto: 100M)
- MANAGER_IP: IP por defecto del Wazuh manager
- AGENT_VERSION: Versión del paquete a instalar
Error: "No se pudo identificar un volumen lógico para /var"
Causa: /var no está en un volumen LVM. Solución: El script requiere LVM. Verifica con lsblk o lvdisplay.
Error: "Espacio insuficiente en el VG"
Causa: El Volume Group no tiene al menos 100 MB libres. Solución: Libera espacio o extiende el VG.
Error: "mount -a falló"
Causa: La entrada en /etc/fstab es incorrecta. Solución: El script elimina automáticamente la entrada. Verifica manualmente con mount -a.
mount | grep /var/ossec systemctl status wazuh-agent journalctl -u wazuh-agent -f
- CentOS 7: Este script ha sido probado en CentOS 7.6+
- noexec: Resuelve el problema de noexec en /var aislando Wazuh en su propia partición
- Persistencia: El montaje en /var/ossec es persistente entre reinicios gracias a la entrada en /etc/fstab
systemctl stop wazuh-agent systemctl disable wazuh-agent umount /var/ossec sed -i '//var/ossec/d' /etc/fstab lvremove -f /dev/$(vgdisplay -c | cut -d: -f1 | head -1)/wazuh
Las contribuciones son bienvenidas. Por favor, abre un issue primero para discutir los cambios propuestos.
Advertencia: Este script modifica la configuración de almacenamiento del sistema (LVM, fstab). Se recomienda probar en un entorno no productivo antes de usar en producción.