Logs
This content is not available in your language yet.
7.2 Auditoría y Logs en Linux
Sección titulada «7.2 Auditoría y Logs en Linux»Introducción
Sección titulada «Introducción»En cualquier sistema Linux en producción, los logs son la principal fuente de verdad. Cuando algo falla —ya sea un servicio, una conexión o un intento de intrusión— la única forma fiable de entender qué ha ocurrido es a través de los registros generados por el sistema.
La auditoría y análisis de logs no es solo una tarea reactiva: es una disciplina crítica para la seguridad, cumplimiento normativo, diagnóstico y observabilidad. Un Sysadmin senior no solo lee logs, sino que los centraliza, correlaciona y los convierte en información accionable.
Objetivos de aprendizaje
Sección titulada «Objetivos de aprendizaje»Al finalizar este capítulo serás capaz de:
- Entender cómo Linux genera y gestiona logs.
- Utilizar
journalctlpara analizar eventos del sistema. - Localizar logs tradicionales en
/var/log. - Diagnosticar problemas mediante logs.
- Implementar auditoría básica del sistema.
- Identificar eventos de seguridad relevantes.
Conceptos Teóricos
Sección titulada «Conceptos Teóricos»1. ¿Qué es un log?
Sección titulada «1. ¿Qué es un log?»Un log es un registro cronológico de eventos generados por:
- el kernel
- servicios (
nginx,ssh, etc.) - aplicaciones
- usuarios
Ejemplo:
May 20 12:00:01 server sshdFailed password for root from 10.0.0.52. systemd-journald
Sección titulada «2. systemd-journald»En sistemas modernos, los logs se gestionan mediante:
- systemd-journald
Ventajas:
- centralización
- indexación
- filtrado avanzado
- persistencia opcional
3. Logs tradicionales
Sección titulada «3. Logs tradicionales»Ubicación:
/var/log/Archivos importantes:
- /var/log/syslog → eventos generales
- /var/log/auth.log → autenticación
- /var/log/kern.log → kernel
- /var/log/nginx/access.log → acceso web
4. journalctl
Sección titulada «4. journalctl»Herramienta principal para consultar logs en systemd:
journalctlPermite:
- filtrar por servicio
- buscar por fecha
- seguir logs en tiempo real
5. Rotación de logs
Sección titulada «5. Rotación de logs»Para evitar llenar el disco:
- herramienta: logrotate
Config:
/etc/logrotate.conf/etc/logrotate.d/6. Auditoría vs Logging
Sección titulada «6. Auditoría vs Logging»- Logging: registro de eventos
- Auditoría: análisis orientado a seguridad y trazabilidad
Laboratorio Práctico
Sección titulada «Laboratorio Práctico»Escenario
Sección titulada «Escenario»Un servicio web (nginx) falla intermitentemente. Necesitas:
- analizar logs
- identificar la causa
- detectar posibles accesos sospechosos
Paso 1: Ver logs del sistema
Sección titulada «Paso 1: Ver logs del sistema»journalctl -xeExplicación
Sección titulada «Explicación»-x→ contexto adicional-e→ ir al final
Paso 2: Filtrar por servicio
Sección titulada «Paso 2: Filtrar por servicio»journalctl -u nginxPaso 3: Tiempo real
Sección titulada «Paso 3: Tiempo real»journalctl -u nginx -fPaso 4: Filtrado por tiempo
Sección titulada «Paso 4: Filtrado por tiempo»journalctl --since "1 hour ago"Ejemplo:
journalctl --since "2026-05-20 10:00:00"Paso 5: Revisar logs tradicionales
Sección titulada «Paso 5: Revisar logs tradicionales»cat /var/log/nginx/error.logPaso 6: Monitorización en vivo
Sección titulada «Paso 6: Monitorización en vivo»tail -f /var/log/nginx/access.logPaso 7: Buscar errores específicos
Sección titulada «Paso 7: Buscar errores específicos»grep "error" /var/log/nginx/error.logPaso 8: Аналizar accesos SSH
Sección titulada «Paso 8: Аналizar accesos SSH»cat /var/log/auth.log | grep sshPaso 9: Identificar intentos fallidos
Sección titulada «Paso 9: Identificar intentos fallidos»grep "Failed password" /var/log/auth.logPaso 10: Uso de logrotate
Sección titulada «Paso 10: Uso de logrotate»Ver configuración:
cat /etc/logrotate.confErrores Comunes y Troubleshooting
Sección titulada «Errores Comunes y Troubleshooting»1. Logs no persistentes
Sección titulada «1. Logs no persistentes»Por defecto, journald puede no guardar logs tras reinicio.
Solución:
Editar:
sudo nano /etc/systemd/journald.confStorage=persistent2. Disco lleno por logs
Sección titulada «2. Disco lleno por logs»Ver uso:
du -sh /var/logLimpiar:
journalctl --vacuum-time=7d3. No aparecen logs de servicio
Sección titulada «3. No aparecen logs de servicio»Verificar:
systemctl status servicio4. Logs rotados no accesibles
Sección titulada «4. Logs rotados no accesibles»ls /var/log/*.gzLeer:
zcat archivo.log.gz5. Permisos insuficientes
Sección titulada «5. Permisos insuficientes»Muchos logs requieren root:
sudo journalctlBuenas Prácticas (Nivel Senior)
Sección titulada «Buenas Prácticas (Nivel Senior)»1. Centralización de logs
Sección titulada «1. Centralización de logs»Usar:
- ELK Stack (Elasticsearch, Logstash, Kibana)
- Graylog
2. Política de retención
Sección titulada «2. Política de retención»Ejemplo:
- logs críticos → 90 días
- logs normales → 30 días
3. Monitorización proactiva
Sección titulada «3. Monitorización proactiva»Ejemplo:
grep -i error /var/log/syslogAutomatizar alertas.
4. Seguridad
Sección titulada «4. Seguridad»Monitorizar:
Failed passwordInvalid userAccepted password5. Evitar saturación
Sección titulada «5. Evitar saturación»Configurar límites:
SystemMaxUse=500M6. Logs estructurados
Sección titulada «6. Logs estructurados»Preferir aplicaciones que generen JSON logs.
7. Auditoría avanzada (auditd)
Sección titulada «7. Auditoría avanzada (auditd)»Instalar:
sudo apt install auditdEjemplo:
auditctl -w /etc/passwd -p wa8. Correlación de eventos
Sección titulada «8. Correlación de eventos»No analizar logs de forma aislada:
- correlacionar red + sistema + app
Resumen y Siguiente Paso
Sección titulada «Resumen y Siguiente Paso»Has aprendido a gestionar, analizar y auditar logs en Linux, utilizando tanto journald como logs tradicionales. Ahora puedes diagnosticar problemas complejos, detectar incidentes de seguridad y optimizar el almacenamiento de registros.
Este conocimiento es esencial para cualquier Sysadmin en producción.
El siguiente paso es entrar en uno de los sistemas de seguridad más potentes (y complejos) de Linux:
➡️ 7.3 SELinux y AppArmor, donde aprenderás a controlar el acceso a nivel de políticas de seguridad obligatorias (MAC).
