LogsMonitoreoAlertas5 min de lectura

Monitorear logs de seguridad

Análisis de auth.log, syslog, fail2ban, journalctl, logwatch y alertas ante actividad sospechosa.


Logs importantes en Linux

Los logs son tu primera línea de defensa para detectar intrusiones:

  • /var/log/auth.log → intentos de login (SSH, sudo)
  • /var/log/syslog → eventos del sistema
  • /var/log/fail2ban.log → IPs bloqueadas
  • /var/log/nginx/access.log → requests HTTP
  • /var/log/nginx/error.log → errores del web server

Analizar auth.log

bash
# Ver intentos de login fallidos
grep 'Failed password' /var/log/auth.log | tail -20

# Contar intentos por IP
grep 'Failed password' /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head

# Ver logins exitosos
grep 'Accepted' /var/log/auth.log | tail -10

# Ver uso de sudo
grep 'sudo' /var/log/auth.log | tail -10

Usar journalctl

journalctl es la herramienta moderna para consultar logs de systemd:

bash
# Logs de SSH
journalctl -u sshd --since "1 hour ago"

# Logs del sistema con prioridad error o superior
journalctl -p err --since today

# Seguir logs en tiempo real
journalctl -f

# Logs de un servicio específico
journalctl -u nginx --since "2026-01-01" --until "2026-01-02"

Monitorear fail2ban

bash
# Estado general
sudo fail2ban-client status

# Estado de la jail SSH
sudo fail2ban-client status sshd

# Ver IPs baneadas actualmente
sudo fail2ban-client get sshd banned

# Ver log de acciones
tail -50 /var/log/fail2ban.log

Instalar Logwatch

Logwatch genera reportes diarios resumidos:

bash
sudo apt install -y logwatch

Configurar reporte diario por email:

bash
sudo nano /etc/logwatch/conf/logwatch.conf
terminal
Output = mail
MailTo = tu-email@ejemplo.com
Detail = Med
Range = yesterday

Probá manualmente:

bash
sudo logwatch --detail Med --range today --output stdout

GoAccess para logs web

Análisis visual de logs de Nginx/Apache:

bash
sudo apt install -y goaccess

# Reporte en terminal
goaccess /var/log/nginx/access.log --log-format=COMBINED

# Generar reporte HTML
goaccess /var/log/nginx/access.log --log-format=COMBINED -o /var/www/html/report.html

Alertas de actividad sospechosa

Script básico de alerta:

bash
#!/bin/bash
# /usr/local/bin/check-auth.sh
FAILED=$(grep 'Failed password' /var/log/auth.log | wc -l)
if [ $FAILED -gt 100 ]; then
  echo "ALERTA: $FAILED intentos de login fallidos detectados" | mail -s "Security Alert" tu-email@ejemplo.com
fi

Agregá al cron cada hora:

bash
0 * * * * /usr/local/bin/check-auth.sh

Recomendaciones

  • Revisá auth.log diariamente o configurá alertas automáticas
  • Usá logwatch para recibir resúmenes sin revisar manualmente
  • Configurá rotación de logs para no llenar el disco
  • Centralizá logs en un servidor externo si tenés múltiples servidores
  • Investigá cualquier login exitoso que no reconozcas inmediatamente

¿Te resultó útil esta guía?