Descripción general
auditctl administra dinámicamente las reglas del sistema de auditoría de Linux. Estas reglas se definen a nivel del kernel y se pueden configurar para registrar varios eventos, como acceso a archivos específicos, llamadas al sistema y actividades del usuario. Los registros de auditoría generalmente se almacenan en el archivo /var/log/audit/audit.log.
Funciones principales
- Agregar y eliminar reglas de auditoría
- Ver una lista de las reglas de auditoría activas actualmente
- Monitorear el acceso a archivos y directorios
- Monitorear llamadas al sistema específicas
- Configurar reglas de auditoría basadas en usuarios y grupos
Instalación
auditctl es parte del paquete 'audit' o 'auditd'. Si no está instalado por defecto en la mayoría de las distribuciones de Linux, puede instalarlo usando los siguientes comandos.
Debian/Ubuntu
sudo apt update
sudo apt install auditd
Instala auditctl en sistemas basados en Debian o Ubuntu.
RHEL/CentOS/Fedora
sudo yum install audit
# o
sudo dnf install audit
Instala auditctl en sistemas basados en RHEL, CentOS o Fedora.
Después de la instalación, debe iniciar y habilitar el servicio auditd: `sudo systemctl enable auditd --now`
Opciones principales
El comando auditctl utiliza varias opciones para definir y administrar reglas de auditoría.
Gestión de reglas
Definición de reglas
Comando generado:
Combina los comandos.
Descripción:
`auditctl` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Varios ejemplos de cómo configurar reglas de auditoría usando auditctl.
Listar todas las reglas de auditoría actuales
sudo auditctl -l
Verifica todas las reglas de auditoría cargadas actualmente en el kernel.
Monitorear cambios en el archivo /etc/passwd
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
Monitorea todos los accesos de escritura (w) y cambio de atributos (a) al archivo /etc/passwd y asigna la clave 'passwd_changes'.
Monitorear intentos de lectura del archivo /etc/shadow
sudo auditctl -w /etc/shadow -p r -k shadow_read
Monitorea los intentos de lectura (r) del archivo /etc/shadow y asigna la clave 'shadow_read'.
Monitorear creación/eliminación de archivos en el directorio /var/log
sudo auditctl -a always,exit -F dir=/var/log -F perm=wa -S creat,unlink -k log_dir_changes
Monitorea las llamadas al sistema de creación (creat) y eliminación (unlink) de archivos dentro del directorio /var/log. Asigna la clave 'log_dir_changes'.
Monitorear intentos de eliminación de archivos por un usuario específico (UID)
sudo auditctl -a always,exit -F arch=b64 -S unlink -F auid=1000 -k user_file_delete
Monitorea las llamadas al sistema de eliminación (unlink) de archivos por parte de un usuario con UID 1000. Especifica la arquitectura del sistema de 64 bits.
Eliminar todas las reglas de auditoría
sudo auditctl -D
Elimina todas las reglas de auditoría cargadas actualmente. (Precaución: úselo con cuidado).
Eliminar reglas con una clave específica
sudo auditctl -w /etc/passwd -p wa -k passwd_changes -d
Elimina las reglas con la clave 'passwd_changes'. Debe usar las mismas opciones que al agregar la regla.
Consejos y precauciones
Consejos útiles y precauciones al usar auditctl.
Guardar reglas permanentemente
Las reglas agregadas con auditctl desaparecen al reiniciar el sistema. Para que las reglas sean permanentes, agréguelas al archivo /etc/audit/rules.d/audit.rules y aplíquelas con el comando 'augenrules --load' o 'systemctl restart auditd'.
- Archivo de reglas: /etc/audit/rules.d/audit.rules
- Aplicar reglas: sudo augenrules --load
Impacto en el rendimiento
Configurar demasiadas reglas de auditoría o monitorear directorios extensos puede afectar el rendimiento del sistema. Es recomendable configurar solo las reglas mínimas necesarias y centrarse en las rutas críticas.
Verificar archivos de registro
Los eventos de auditoría se registran en el archivo /var/log/audit/audit.log. Es eficiente usar los comandos ausearch y aureport para verificar estos registros.
Especificar arquitectura (-F arch=b64/b32)
Al monitorear llamadas al sistema, se recomienda especificar explícitamente '-F arch=b64' en sistemas de 64 bits y '-F arch=b32' en sistemas de 32 bits. Esto se debe a que los números de llamadas al sistema pueden diferir según la arquitectura.