Auditoría de registros en sistemas Linux

 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:

  1. Detectar eventos relevantes como accesos fallidos, cambios en la configuración, instalaciones de software o actividad inusual del kernel.
  2. Evaluar la integridad del sistema, detectando modificaciones sospechosas en archivos críticos mediante herramientas de control como AIDE o auditd.
  3. Monitorear el estado de los servicios y tareas programadas, asegurando su correcto funcionamiento y registro adecuado.
  4. Analizar el comportamiento de usuarios y aplicaciones, incluyendo historiales de comandos, accesos web y consultas de bases de datos.
  5. 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:
  • Logwatch: Resumen diario por correo.

  • GoAccess: Para analizar registros web (si aplica).


Comentarios

Entradas más populares de este blog

Instalación de XAMPP en Kali Linux 2022

Guía para la instalación de AutoGPT | Configuración de AutoGPT en Kali Linux | GPT-4