Introducción
En esta guía te enseño cómo monitorizar equipos que no pueden tener un agente Wazuh instalado (routers, switches, firewalls, impresoras de red, etc.). La solución es configurar un servidor Linux como Syslog Collector que recibe los logs y los envía automáticamente a Wazuh.
Video: Equipos sin Agente
12 minutos - rsyslog, iptables y configuración
Ver en el Curso WazuhAccede al video completo con el curso de Wazuh
¿Qué son los equipos sin agente (Agentless)?
No todos los dispositivos pueden tener un agente Wazuh instalado. Ejemplos típicos:
- Routers (Cisco, MikroTik, etc.)
- Switches gestionables
- Firewalls (pfSense, FortiGate, etc.)
- Impresoras de red
- Dispositivos IoT
- Sistemas legacy que no soportan agentes
La solución es usar el protocolo Syslog: estos dispositivos envían sus logs a un servidor Linux que actúa como collector, y ese servidor (con agente Wazuh) los reenvía al SIEM.
Arquitectura de la solución
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────┐
│ Equipos sin agente │ │ Linux con rsyslog │ │ Wazuh Server │
│ (routers, switches)│────▶│ (Syslog Collector) │────▶│ (SIEM) │
│ │ 514 │ + Agente Wazuh │ │ │
└─────────────────────┘ └─────────────────────┘ └─────────────────┘
│
/var/log/syslog 1. Instalar rsyslog
En el servidor Linux que actuará como Syslog Collector:
# Debian/Ubuntu
apt update && apt install rsyslog -y
# RHEL/CentOS/Rocky Linux
dnf install rsyslog -y 2. Configurar rsyslog para escuchar por TCP y UDP
Edita el archivo de configuración principal:
nano /etc/rsyslog.conf Busca las siguientes líneas que están comentadas (con # al inicio) y descoméntalas quitando el #:
Para recibir por UDP (puerto 514):
# Antes (comentado):
#module(load="imudp")
#input(type="imudp" port="514")
# Después (descomentado):
module(load="imudp")
input(type="imudp" port="514") Para recibir por TCP (puerto 514):
# Antes (comentado):
#module(load="imtcp")
#input(type="imtcp" port="514")
# Después (descomentado):
module(load="imtcp")
input(type="imtcp" port="514") Nota: La mayoría de dispositivos de red usan UDP por defecto. TCP es más fiable pero no todos los dispositivos lo soportan. Habilita ambos para mayor compatibilidad.
3. Reiniciar y habilitar rsyslog
# Reiniciar el servicio para aplicar cambios
systemctl restart rsyslog
# Habilitar en el arranque del sistema
systemctl enable rsyslog
# Verificar que está funcionando
systemctl status rsyslog Verifica que rsyslog está escuchando en el puerto 514:
# Ver puertos UDP en escucha
ss -ulnp | grep 514
# Ver puertos TCP en escucha
ss -tlnp | grep 514 4. Configurar firewall (iptables)
Por seguridad, permite conexiones al puerto 514 solo desde los equipos autorizados:
Permitir desde equipos específicos:
# Permitir desde el router (ej: 192.168.1.1)
iptables -A INPUT -p udp -s 192.168.1.1 --dport 514 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.1.1 --dport 514 -j ACCEPT
# Permitir desde el switch (ej: 192.168.1.2)
iptables -A INPUT -p udp -s 192.168.1.2 --dport 514 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.1.2 --dport 514 -j ACCEPT
# Permitir desde el firewall (ej: 192.168.1.254)
iptables -A INPUT -p udp -s 192.168.1.254 --dport 514 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.1.254 --dport 514 -j ACCEPT Permitir desde una red completa:
# Permitir toda la red 192.168.1.0/24
iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 514 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 514 -j ACCEPT Bloquear el resto de conexiones al puerto 514:
# Denegar cualquier otra conexión al puerto 514
iptables -A INPUT -p udp --dport 514 -j DROP
iptables -A INPUT -p tcp --dport 514 -j DROP Guardar las reglas de forma permanente:
# Debian/Ubuntu
apt install iptables-persistent -y
netfilter-persistent save
# RHEL/CentOS/Rocky
service iptables save 5. Configurar los equipos para enviar logs
Cada dispositivo debe configurarse para enviar sus logs al servidor rsyslog.
Router Cisco:
logging host 192.168.1.100
logging trap informational
logging facility local7 Switch MikroTik:
/system logging action
add name=remote remote=192.168.1.100 remote-port=514 target=remote
/system logging
add action=remote topics=info Firewall pfSense:
Status → System Logs → Settings → Remote Logging Options:
- Enable Remote Logging: ✓
- Remote log servers: 192.168.1.100:514
Otro equipo Linux:
# Editar /etc/rsyslog.conf y añadir al final:
# Enviar por UDP (una @)
*.* @192.168.1.100:514
# Enviar por TCP (dos @@)
*.* @@192.168.1.100:514 6. Cómo llegan los logs a Wazuh
Esta es la parte más sencilla: no hay que configurar nada adicional.
Flujo automático:
- Los equipos envían logs al puerto 514 del servidor rsyslog
- rsyslog escribe estos logs en
/var/log/syslog - El agente Wazuh ya monitoriza
/var/log/syslogpor defecto - Los logs se envían automáticamente al servidor Wazuh
Puedes verificar que el agente está monitorizando el syslog mirando su configuración:
cat /var/ossec/etc/ossec.conf | grep -A2 "syslog" 7. Verificar que funciona
# Ver logs recibidos en tiempo real
tail -f /var/log/syslog
# Verificar que rsyslog escucha en el puerto 514
ss -ulnp | grep 514
ss -tlnp | grep 514
# Ver reglas de iptables aplicadas
iptables -L -n | grep 514 Recursos adicionales
- Documentación oficial: Remote Syslog
- Configuración de Grupos en Wazuh
- Instalación del Agente en Linux
Artículos relacionados:
- Configuración de Grupos en Wazuh
- Cómo Instalar Wazuh en Linux (Ubuntu 24.04)
- Cómo Instalar el Agente Wazuh en Linux
- ¿Qué es Wazuh y para qué sirve?
Aprende Wazuh de forma práctica
Este artículo es parte del contenido del curso. Aprende a configurar syslog, crear reglas personalizadas, integrar con otras herramientas y mucho más.