Comando de Linux auditd
Guía completa de comandos Linux
auditd es el daemon de auditoría en los sistemas Linux, y es el componente central del marco de auditoría de Linux. Las funciones principales de auditd son monitorear y registrar las actividades del sistema, incluyendo:
- Acceso a archivos y directorios
- Llamada al sistema
- Inicio de sesión / cierre de sesión
- Ejecución de comandos privilegiados
- Cambios de configuración del sistema
Estos registros de auditoría son muy importantes para el monitoreo de seguridad del sistema, las comprobaciones de cumplimiento y la resolución de problemas.
Componentes centrales de auditd
El demonio auditd
Demonio que se ejecuta continuamente, responsable de recopilar y almacenar eventos de auditoría.
Herramienta auditctl
Herramienta de línea de comandos para configurar reglas de auditoría y controlar el sistema de auditoría.
Herramienta ausearch
Herramienta de línea de comandos para consultar los registros de auditoría.
Herramienta aureport
Genera informes resumidos de los registros de auditoría.
Instalación y arranque de auditd
Instalar auditd
En la mayoría de las distribuciones de Linux, auditd suele estar preinstalado. Si necesita instalarlo manualmente:
Ejemplos
sudo apt-get install auditd
# CentOS/RHEL
sudo yum install audit
Iniciar y habilitar el servicio auditd
Ejemplos
sudo systemctl start auditd
# Configurar el inicio automático
sudo systemctl enable auditd
# Comprobar el estado del servicio
sudo systemctl status auditd
Archivo de configuración de auditd
El archivo de configuración principal de auditd se encuentra en/etc/audit/auditd.conf, que incluye los siguientes parámetros importantes:
| Parámetros | Descripción | valor por defecto |
|---|---|---|
log_file |
Ruta del archivo de registros de auditoría | /var/log/audit/audit.log |
max_log_file |
Tamaño máximo de un archivo de registro individual (MB) | 8 |
num_logs |
Número de archivos de registro a conservar | 5 |
flush |
Método de escritura de registros | INCREMENTAL |
freq |
Si flush=INCREMENTAL, ¿con qué frecuencia se sincroniza? | 20 |
Después de modificar la configuración, es necesario reiniciar el servicio:
sudo systemctl restart auditd
Explicación detallada del comando auditctl
auditctlEs la principal herramienta para configurar reglas de auditoría.
Sintaxis básica
auditctl [选项] [规则]
Opciones comunes
| opción | Descripción |
|---|---|
-l |
Listar todas las reglas actuales |
-D |
Eliminar todas las reglas |
-s |
Mostrar el estado del sistema de auditoría |
-R <file> |
Cargar reglas desde un archivo |
Tipo de regla
Reglas del sistema de archivos: Monitoreo de acceso a archivos/directorios
Ejemplos
auditctl -w /etc/passwd -p rwxa -k passwd_access
-w: ruta de monitoreo-p: permisos (r=lectura, w=escritura, x=ejecución, a=cambio de atributos)-k: palabra clave (para filtrar registros)
Reglas de llamadas al sistema: monitorear llamadas al sistema específicas
Ejemplos
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_cmds
-a: acción y lista (always,exit indica que se registra al salir de la llamada al sistema)-F: condición de filtro-S: nombre de la llamada al sistema
Regla de usuario: monitorear acciones de usuarios específicos
Ejemplos
auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=500 -F auid!=4294967295 -k delete_files
Análisis de registros de auditoría
Comando ausearch
Se utiliza para consultar los registros de auditoría.
Ejemplos
ausearch -k passwd_access
# Buscar registros en un momento específico
ausearch -ts today
ausearch -ts 10:00:00 -te 11:00:00
# Buscar los registros de un usuario específico
ausearch -ua 1000
Comando aureport
Genera informes resumidos de los registros de auditoría.
Ejemplos
aureport -l
# Generar informe de acceso a archivos
aureport -f
# Generar un informe resumen de todos los eventos
aureport --summary
Ejemplo de aplicación práctica
Ejemplo 1: monitorear archivos sensibles
Ejemplos
auditctl -w /etc/shadow -p wa -k shadow_mod
# Consultar los registros relacionados
ausearch -k shadow_mod | less
Ejemplo 2: monitorear elevación de privilegios de usuarios
Ejemplos
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k priv_esc
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/su -k priv_esc
# Generar informe de escalada de privilegios
aureport --start today --event --summary -i | grep priv_esc
Ejemplo 3: monitorización de inicios de sesión SSH
Ejemplos
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/sbin/sshd -k sshd_login
# Ver los registros de inicio de sesión SSH
ausearch -k sshd_login | grep 'acct="user"' | grep 'res=success'
Mejores prácticas
Configurar adecuadamente la rotación de registros: asegurar que los registros no llenen el disco
Ejemplos
max_log_file = 50
num_logs = 10
Gestionar de forma centralizada las reglas de auditoría: guardar las reglas en un archivo
Ejemplos
-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
# Cargar reglas
auditctl -R /etc/audit/rules.d/my.rules
Revisar los registros periódicamente: configurar tareas cron para analizar los registros periódicamente
Ejemplos
0 0 * * * /usr/sbin/aureport --summary --start yesterday --end now | mail -s "Daily Audit Report" admin@example.com
Proteger los registros de auditoría: evitar que los registros sean alterados
Ejemplos
chown root:root /var/log/audit/audit.log
Resolución de problemas comunes
Problema 1: el servicio auditd no puede iniciarse
Solución:
- Verificar la sintaxis del archivo de configuración:
auditd -f /etc/audit/auditd.conf - Ver los registros del sistema:
journalctl -u auditd
Problema 2: no se generan registros de auditoría
Solución:
- Confirmar que el servicio está en ejecución:
systemctl status auditd - Comprobar si las reglas están cargadas:
auditctl -l - Verificar el soporte del kernel:
grep "audit" /boot/config-$(uname -r)
Problema 3: los archivos de registro son demasiado grandes
Solución:
- Ajustar el tamaño y la cantidad de registros: modificar
/etc/audit/auditd.confen elmax_log_fileynum_logs - Configurar compresión de registros: agregar
compress = yesEn el archivo de configuración
Resumen
auditd es una potente herramienta de auditoría para sistemas Linux, y mediante una configuración adecuada se puede:
- Supervisar el acceso a archivos y directorios críticos
- Rastrear el uso de comandos privilegiados
- Registrar inicios de sesión de usuarios y actividad del sistema
- Cumplir con los requisitos de cumplimiento normativo
Dominar el uso de auditd es esencial para administradores de sistemas y profesionales de seguridad, ya que les ayuda a comprender y proteger mejor sus sistemas Linux.
Otras extensiones