Por: Flavio Suárez Muñoz
La auditoría de archivos de registro (logs) en sistemas Linux constituye una de las prácticas fundamentales en la administración y seguridad de sistemas informáticos. Estos registros documentan detalladamente la actividad del sistema, permitiendo reconstruir eventos, detectar anomalías, identificar accesos no autorizados y evaluar el funcionamiento de servicios críticos.
El objetivo de la auditoría de estos archivos es identificar, clasificar y analizar los principales archivos de registro generados por el sistema operativo Linux y sus servicios, con el fin de:
- Detectar eventos relevantes como accesos fallidos, cambios en la configuración, instalaciones de software o actividad inusual del kernel.
- Evaluar la integridad del sistema, detectando modificaciones sospechosas en archivos críticos mediante herramientas de control como AIDE o auditd.
- Monitorear el estado de los servicios y tareas programadas, asegurando su correcto funcionamiento y registro adecuado.
- Analizar el comportamiento de usuarios y aplicaciones, incluyendo historiales de comandos, accesos web y consultas de bases de datos.
- Proteger los registros frente a alteraciones, promoviendo buenas prácticas como su inmutabilidad o la aplicación de firmas digitales.
Esto permite establecer una línea de base del comportamiento normal del sistema, detectar indicios de ataques o fallos operativos, con la finalidad de reforzar las políticas y medidas de seguridad informática.
Registros del sistema
Archivo / Fuente |
Qué muestra? |
/var/log/syslog |
Mensajes generales del sistema y de daemons (servicios): arranques, paradas, errores de servicios. |
/var/log/messages |
Equivalente a syslog en distros Red Hat/CentOS: eventos de kernel y servicios. |
journalctl |
Visor unificado de systemd‑journal: todo lo que genera syslog, auth.log, kernel, etc., incluso binario. Permite búsquedas por servicio, prioridad y rango de fechas. |
/var/log/kern.log |
Solo mensajes del kernel (drivers, detección de hardware, fallos de módulos). |
/var/log/dmesg |
Buffer circular del kernel en el arranque: detección de hardware y controladores cargados. |
/var/log/boot.log |
Detalle de servicios iniciados/detenidos durante el arranque. |
Autenticación y sesiones
Archivo / Fuente |
Qué muestra? |
/var/log/auth.log |
Inicios/cierres de sesión (SSH, consola), uso de sudo, fallos de autenticación. |
/var/log/secure |
Misma función que auth.log en Red Hat/CentOS. |
last |
Lee /var/log/wtmp: historial completo de inicios y cierres de sesión por usuario y terminal. |
lastlog / lastlog -u username |
Lee /var/log/wtmp y muestra el inicio de sesión más reciente de todos los usuarios o de un usuario específico. |
lastb |
Lee /var/log/btmp: intentos de inicio de sesión fallidos. |
who |
Lee /var/run/utmp: usuarios actualmente conectados. |
faillog |
Lectura de /var/log/faillog: contador de intentos fallidos por cuenta. |
lastlog |
Lectura de /var/log/lastlog: última vez que cada usuario inició sesión. |
Auditoría de integridad y cambios en el sistema
Archivo / Fuente |
Qué muestra? |
/var/log/audit/audit.log |
Registros detallados de auditd: accesos a archivos, cambios de permisos, ejecución de binarios, modificaciones de configuración. |
AIDE, Tripwire |
Bases de datos propias que detectan y reportan cambios en archivos críticos del sistema. |
Actividad de paquetes y actualizaciones
Archivo / Fuente |
Qué muestra? |
/var/log/apt/history.log |
Qué paquetes se instalaron, actualizaron o eliminaron (con fecha y versión). |
/var/log/apt/term.log |
Detalle completo de la salida de apt durante instalaciones o actualizaciones. |
/var/log/dpkg.log |
Cambios a nivel de dpkg: instalaciones, configuraciones, eliminaciones. |
/var/log/yum.log, /var/log/dnf.log |
Equivalente en Fedora/RHEL: historial de yum/dnf. |
Cron, tareas programadas y servicios
Archivo / Fuente |
Qué muestra? |
/var/log/cron or /var/log/cron.log |
Ejecución de tareas cron (salidas, errores de jobs). |
/var/log/anacron |
Ejecuciones de anacron, incluidas las que se corren al arrancar si el sistema estuvo apagado. |
journalctl -u nombre.servicio |
Logs de cualquier servicio systemd (sshd, httpd, docker, etc.). Permite aislar solo su actividad. |
Correo, red y firewall
Archivo / Fuente |
Qué muestra? |
/var/log/mail.log, mail.err, mail.info |
Actividad de MTA (Postfix, Exim): envíos, rechazos, errores. |
/var/log/ufw.log |
Registros de UFW (Uncomplicated Firewall): conexiones permitidas o denegadas. |
/var/log/firewalld |
Equivalente en Firewalld: cambios de zona, reglas aplicadas. |
/var/log/snort/, /var/log/suricata/ |
Si usas IDS/IPS: alertas y eventos de red detectados. |
Aplicaciones y servicios web
Archivo / Fuente |
Qué muestra? |
/var/log/apache2/access.log, error.log |
Accesos HTTP, códigos de respuesta, errores de servidor. |
/var/log/nginx/access.log, error.log |
Igualmente para Nginx. |
/var/log/mysql/error.log, slow.log |
Errores de MySQL/MariaDB y consultas lentas. |
/var/log/postgresql/postgresql-*.log |
Actividad y errores de PostgreSQL. |
/var/log/docker.log |
Errores y eventos del demonio Docker. |
Historial de comandos de usuario
Archivo / Fuente |
Qué muestra? |
~/.bash_history |
Comandos ejecutados por cada usuario en bash. |
~/.zsh_history, etc. |
Equivalente para otras shells (zsh, fish, etc.). |
/root/.bash_history |
Historial del usuario root. |
NOTA: En Kali Linux no viene creado por default el archivo auth.log, para crearlo hay que instalar rsyslog usando el comando sudo apt install rsyslog
. Posteriormente, revisa que ya exista el archivo /var/log/auth.log
y verifica que rsyslog está activo con sudo systemctl status rsyslog
.
A continuación te muestro qué comandos específicos de Linux puedes usar para auditar o consultar los registros mencionados en cada uno de los apartados del documento que me compartiste (ajustado a la estructura de auditoría). Esto está orientado a un entorno típico de Linux (como Ubuntu o CentOS) y pensado para una auditoría básica-intermedia. Vamos apartado por apartado:
Auditoría de archivos de inicio de sesión
Registro |
Comando sugerido |
Explicación |
/var/log/wtmp |
last |
Muestra los inicios y cierres de sesión exitosos. |
/var/log/btmp |
lastb |
Muestra intentos fallidos de inicio de sesión. |
/var/run/utmp |
who o w |
Muestra quién está conectado actualmente. |
Auditoría de archivos de autenticación
Registro |
Comando sugerido |
Explicación |
/var/log/auth.log (Ubuntu) o /var/log/secure (CentOS/RHEL) |
grep "authentication" /var/log/auth.log
grep "FAILED" /var/log/auth.log
grep "Accepted" /var/log/auth.log
|
Filtra intentos de autenticación exitosos y fallidos. |
/var/log/faillog |
faillog |
Muestra intentos de inicio de sesión fallidos por usuario. |
/var/log/secure |
grep sshd /var/log/secure |
Auditoría específica para conexiones SSH. |
Auditoría de actividad del sistema
Registro |
Comando sugerido |
Explicación |
/var/log/syslog (Ubuntu) o /var/log/messages (RHEL) |
tail -f /var/log/syslog
grep -i "error" /var/log/syslog
less /var/log/messages
|
Visualización de eventos generales del sistema. |
journalctl |
journalctl -xe
journalctl --since today
|
Visualiza eventos del sistema con systemd. |
Auditoría de uso de privilegios de superusuario
Registro |
Comando sugerido |
Explicación |
/var/log/auth.log |
grep "sudo" /var/log/auth.log |
Muestra comandos ejecutados con sudo. |
/var/log/secure |
grep "sudo" /var/log/secure |
Similar en sistemas RHEL/CentOS. |
Auditoría de acceso a archivos sensibles
Registro |
Comando sugerido |
Explicación |
/var/log/audit/audit.log (requiere auditd) |
ausearch -f /etc/shadow
ausearch -f /etc/passwd
|
Busca accesos a archivos específicos. |
Activar auditoría para archivos |
auditctl -w /etc/passwd -p rwxa -k passwd_access |
Añade vigilancia sobre cambios en archivos. |
Ver eventos con clave |
ausearch -k passwd_access |
Muestra registros relacionados con esa clave.
|
Auditoría de procesos en ejecución
Comando sugerido |
Explicación |
ps aux |
Muestra todos los procesos en ejecución. |
top o htop |
Muestra procesos en tiempo real (uso de CPU/memoria). |
pstree |
Muestra jerarquía de procesos. |
journalctl -u nombre_del_servicio |
Ver eventos de un servicio (sshd, nginx, etc.). |
Auditoría de conexiones de red
Comando sugerido |
Explicación |
netstat -tulnp (reemplazado por ss en distros recientes) |
Muestra puertos abiertos y servicios escuchando. |
ss -tulnp |
Versión moderna de netstat. |
lsof -i |
Lista conexiones activas y los procesos que las usan. |
tcpdump o wireshark |
Captura y analiza paquetes de red. |
iptables -L -v -n |
Revisa las reglas de firewall activas. |
Auditoría de tareas programadas (cron)
Registro |
Comando sugerido |
Explicación |
/var/log/syslog o /var/log/cron |
grep CRON /var/log/syslog
grep CRON /var/log/cron
|
Muestra las tareas programadas ejecutadas. |
crontab -l (por usuario) |
Muestra las tareas programadas del usuario actual. |
|
ls /etc/cron.* |
Muestra tareas programadas en los directorios del sistema. |
|
Recomendaciones adicionales:
Para auditar todos los accesos y cambios, considera instalar y configurar auditd
:
Para ello, usa los comandos siguientes:
sudo apt install auditd audispd-plugins
sudo systemctl enable auditd && sudo systemctl start auditd
Para una auditoría más amigable visualmente, puedes usar:
Comentarios
Publicar un comentario