Ghost AcademySecLearn// Seguridad Informática
🔍 Seguridad · Auditoría del sistema Linux
Auditd
// Instalación · Reglas · Búsqueda de logs · Análisis de eventos

Guía completa de instalación y configuración de auditd — el subsistema de auditoría del kernel Linux que permite monitorear accesos, modificaciones y eventos críticos del sistema en tiempo real.

auditd · audispd Reglas -w -p -k ausearch · augenrules systemd · active running audit.log · eventos
📦
Paso 1 — Instalación de Paquetes
auditd + audispd-plugins + openssh-server

Instala el paquete principal auditd y los plugins de audispd que extienden sus capacidades de reenvío y filtrado de eventos.

bash — instalación
# Actualizar la lista de paquetes
sudo apt update

# Instalar servidor SSH (requisito del ejercicio)
sudo apt install -y openssh-server

# Instalar auditd y los plugins de audispd
sudo apt install -y auditd audispd-plugins
ℹ️ ¿Qué instala cada paquete?
auditd — el demonio principal del subsistema de auditoría del kernel Linux.
audispd-plugins — plugins para reenviar eventos a syslog, afcat, etc.
⚙️
Paso 2 — Habilitar y Verificar el Servicio
systemctl enable · start · status

Una vez instalado, auditd debería iniciarse automáticamente. Asegúrate de que esté activo y configurado para arrancar con el sistema.

1
Habilitar el servicio en el arranque
Lo registra en systemd para que se inicie automáticamente cada vez que arranque el servidor.
bash
sudo systemctl enable auditd
2
Iniciar el servicio
Si no está activo tras la instalación, inícialo manualmente.
bash
sudo systemctl start auditd
3
Verificar el estado
Debe mostrar active (running) en verde.
bash
sudo systemctl status auditd
# Salida esperada:
● auditd.service - Security Auditing Service
     Loaded: loaded (/lib/systemd/system/auditd.service; enabled)
     Active: active (running) since ...
✅ Estado correcto: La línea Active: active (running) confirma que el demonio está funcionando y registrando eventos.
📋
Paso 3 — Configuración de Reglas
/etc/audit/rules.d/ · 99-custom.rules
⚠️ Importante: Auditd no registra nada útil por defecto. Debes indicarle explícitamente qué eventos o archivos debe monitorear creando reglas personalizadas.

Las reglas se guardan en el directorio /etc/audit/rules.d/. Vamos a crear una regla para monitorear el archivo de configuración crítico de SSH.

1
Crear el archivo de reglas personalizadas
El prefijo 99- garantiza que se cargue al final, tras otras reglas del sistema.
bash — crear archivo de reglas
sudo nano /etc/audit/rules.d/99-custom.rules

Pega la siguiente regla dentro del archivo:

99-custom.rules — contenido
# Monitorea lectura, escritura, ejecución o cambio de atributos en sshd_config
-w /etc/ssh/sshd_config -p rwxa -k sshd_config_changes

Anatomía de la regla

-w /etc/ssh/sshd_config -p rwxa -k sshd_config_changes
-w
Watch (vigilar)
Ruta del archivo o directorio a monitorear.
/etc/ssh/...
Ruta del objetivo
El archivo concreto que se audita.
-p
Permissions (permisos)
Tipo de operaciones a monitorear.
rwxa
Read · Write · eXecute · Attribute
Todas las operaciones posibles sobre el archivo.
-k
Key (clave)
Nombre legible asignado a la regla para buscar sus logs.
sshd_config_changes
Nombre de la clave
Identificador único para filtrar con ausearch -k.

Permisos -p rwxa

r
read
lectura del archivo
w
write
escritura o modificación
x
execute
ejecución del archivo
a
attribute
cambio de atributos (chmod, chown…)
ℹ️ Granularidad: Puedes usar solo los permisos que necesites. Por ejemplo, -p rw solo registra lecturas y escrituras, sin monitorear ejecuciones ni cambios de atributos.

3.2 — Aplicar las Reglas

Tras guardar el archivo de reglas, cárgalas con augenrules para que auditd las active sin necesidad de reiniciar el servicio.

bash — cargar reglas
sudo augenrules --load
📌 Métodos alternativos:
sudo auditctl -R /etc/audit/audit.rules — cargar reglas manualmente.
sudo systemctl restart auditd — reiniciar el servicio.
Método recomendado: augenrules --load es la práctica preferida en sistemas modernos.

Probar la regla — Generar y buscar un evento

Genera un evento de lectura (r) sobre el archivo monitoreado y luego búscalo usando la clave que definimos:

bash — generar evento de prueba
# 1. Leer el archivo — dispara la regla (-p r)
cat /etc/ssh/sshd_config

# 2. Buscar los eventos registrados por la clave
sudo ausearch -k sshd_config_changes
✅ Si funciona correctamente: ausearch mostrará un bloque de texto con la hora, el usuario (auid=1000), el comando ejecutado (comm="cat") y el archivo accedido, confirmando que la regla está activa.
📊
Análisis de Eventos — Desglose de ausearch
Cada bloque (---) es un evento de auditoría independiente

El resultado de sudo ausearch -k sshd_config_changes muestra varios bloques separados por ----. Cada uno corresponde a un evento diferente capturado por la regla:

Hora aprox. Tipo de evento Descripción de la acción
Tue Nov 4
12:02:06
CONFIG_CHANGE op=add_rule — La regla fue añadida al sistema Auditd por primera vez (cuando ejecutaste augenrules --load).
Tue Nov 4
12:04:13
SYSCALL — cp comm="cp" exe="/usr/bin/cp" — El sistema copió o creó una versión del archivo sshd_config, probablemente durante la instalación o actualización de SSH.
Tue Nov 4
12:04:13
SYSCALL — sshd comm="sshd" — Múltiples eventos del propio demonio SSH leyendo su configuración al iniciarse o recargarse (syscall=257, success=yes).
Tue Nov 4
12:04:56
CONFIG_CHANGE op=remove_rule + op=add_rule — La regla fue temporalmente eliminada y re-añadida. Ocurre cuando ejecutas augenrules --load para actualizar reglas.
Tue Nov 4
12:06:35
SYSCALL — cat ★ TU PRUEBA comm="cat" exe="/usr/bin/cat" — El usuario auid=1000 (tú) ejecutó cat para leer /etc/ssh/sshd_config, disparando la regla de monitoreo (-p r). ¡La auditoría funciona correctamente!
✅ Conclusión: La auditoría del archivo de configuración SSH está correctamente implementada. Auditd registrará cualquier intento de leer, escribir o modificar este archivo crítico, con información completa del usuario, proceso y timestamp.