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

Funciones de texto en Microsoft Excel

Funciones lógicas en Microsoft Excel