Guía: configurar auditd, rotación y retención de logs para cumplimiento de la LGPD en servidores Linux
Por Kevin Marcondes · Publicado el · 9 min de lectura
Esta guía muestra cómo configurar auditd, rotación y retención de logs para cumplimiento de la LGPD en servidores Linux. Verás ejemplos prácticos de audit.rules, parámetros de auditd.conf y políticas de retención seguras, centradas en producir evidencias útiles para auditorías, incidentes y rendición de cuentas —sin prometer soluciones mágicas y respetando privacidad y rendimiento.
LGPD en la práctica: qué deben probar los logs
La LGPD no prescribe herramientas, pero exige responsabilidad. En Linux, auditd ayuda a mostrar quién hizo qué, cuándo, desde dónde y con qué privilegio. Enfócate en trazabilidad, integridad del registro y retención proporcional a la finalidad.
Piensa en objetivos antes de definir reglas. Eso evita recopilar datos de más y reduce el impacto en el servidor.
- Trazabilidad de acciones privilegiadas (root/sudo) y cambios sensibles.
- Integridad y conservación inmutable o con prueba de no alteración.
- Retención por un período compatible con la finalidad y la base legal.
- Acceso restringido a los logs (principio de menor privilegio).
- Capacidad de investigar incidentes con búsquedas y reportes reproducibles.
Requisitos previos y arquitectura mínima de auditoría
Define una arquitectura simple y fiable. Separa la recolección local, rotación controlada y almacenamiento externo confiable. Para endurecimiento general del host, usa un checklist amplio y complementario.
El tiempo correcto es crucial para correlaciones. Sincroniza el servidor con NTP/Chrony. Planifica espacio en disco para picos y retención.
Para logs de aplicación y correlación entre servicios, la centralización aporta gran valor.
- Acceso root y kernel con soporte de audit.
- Sincronización de hora (Chrony/NTP).
- Espacio en disco suficiente en /var/log (idealmente partición dedicada).
- Permisos de logs 0600; acceso exclusivo para root.
- Opcional: envío a un concentrador de logs o almacenamiento inmutable.
Instala y activa auditd en Linux
Instala el demonio de auditoría y habilítalo al arranque. Luego, confirma el estado. En muchas distribuciones el paquete incluye reglas mínimas por defecto. Ajustaremos reglas y retención más adelante.
# Debian/Ubuntu
sudo apt update && sudo apt install -y auditd audispd-plugins
sudo systemctl enable --now auditd
sudo systemctl status auditd --no-pager
# RHEL/CentOS/Rocky/AlmaLinux
sudo dnf install -y audit
sudo systemctl enable --now auditd
sudo systemctl status auditd --no-pager
# Ver parâmetros atuais do subsistema
sudo auditctl -s
Configuración de rotación y retención en auditd.conf
El archivo /etc/audit/auditd.conf controla rotación, tamaño y acciones cuando el disco se llena. Define tamaños compatibles con tu tasa de eventos. "rotate" evita pérdida; "suspend" pausa la auditoría hasta liberar espacio. Elegir "ignore" puede causar pérdida de evidencias.
Ajusta alertas de poco espacio y permisos estrictos. Tras editar, recarga el servicio.
# /etc/audit/auditd.conf (exemplo)
log_file = /var/log/audit/audit.log
max_log_file = 200 # tamanho em MB por arquivo
num_logs = 12 # quantidade de arquivos rotacionados
max_log_file_action = rotate # rotate|keep_logs|suspend|ignore
space_left = 1024 # em MB: alerta quando restar 1 GB
space_left_action = SYSLOG # SYSLOG|EMAIL|EXEC|SUSPEND
admin_space_left = 512 # ponto crítico
admin_space_left_action = SUSPEND
write_logs = yes
flush = INCREMENTAL_ASYNC
freq = 50
permissions = 0600
log_format = RAW
Reglas de auditoría alineadas a la LGPD: ejemplos útiles
Aplica reglas que entreguen evidencias útiles, con ruido controlado. Evita auditarlo todo. Comienza por cambios de identidad, privilegios, autenticación y directorios con datos personales. Una regla de execve para todos los usuarios puede generar mucho volumen. Filtrar por euid=0 reduce ruido.
Guarda tus reglas en /etc/audit/rules.d/lgpd.rules. Las cargaremos con augenrules.
| Objetivo LGPD | Regla ejemplo (resumen) | Evidencia/informe |
|---|---|---|
| Cambios de identidad | -w /etc/passwd -p wa -k ids | aureport -m -i |
| Acciones privilegiadas | -a always,exit -S execve -F euid=0 -k exec_root | aureport -au -i | filtrar por exec_root |
| Autenticación | -w /var/log/lastlog -p wa -k logins | ausearch -k logins -i |
| Datos personales | -w /srv/app/dados_pessoais -p rwa -k lgpd_dados | ausearch -k lgpd_dados -i |
# /etc/audit/rules.d/lgpd.rules (exemplo)
# Tamanho do backlog do kernel (cautela conforme recursos)
-b 8192
# Integridade de arquivos críticos (identidades e privilégios)
-w /etc/passwd -p wa -k ids
-w /etc/shadow -p wa -k ids
-w /etc/group -p wa -k ids
-w /etc/gshadow -p wa -k ids
-w /etc/sudoers -p wa -k sudo
-w /etc/ssh/sshd_config -p wa -k sshd
# Logins (varia por distro)
-w /var/log/lastlog -p wa -k logins
-w /var/run/faillock -p wa -k logins
# Execução de comandos como root (64 e 32 bits)
-a always,exit -F arch=b64 -S execve -F euid=0 -k exec_root
-a always,exit -F arch=b32 -S execve -F euid=0 -k exec_root
# Diretório de dados pessoais da aplicação (ajuste o caminho)
-w /srv/app/dados_pessoais -p rwa -k lgpd_dados
Carga de reglas, generación de evidencias y reportes
Carga las reglas y genera algunos eventos de prueba. Usa ausearch para consultas detalladas y aureport para reportes resumidos. Registra las consultas que usarás en auditorías. Siempre valida en homologación antes de aplicar en producción.
# Carregar as regras
sudo augenrules --load
sudo systemctl restart auditd
# Gerar alguns eventos (ajuste conforme seu ambiente)
sudo -n true || echo "sudo requer senha" # aciona exec_root
sudo ls /root >/dev/null 2>&1 || true # aciona exec_root
sudo usermod -c "Teste" $USER || true # aciona ids
# Consultar por chaves específicas (human-readable)
sudo ausearch -k exec_root -ts today -i | head
sudo ausearch -k ids -ts today -i | head
sudo ausearch -k lgpd_dados -ts today -i | head
# Relatórios úteis
sudo aureport -au -i --summary # autenticação/autorizações
sudo aureport -m -i --summary # mudanças de conta/identidade
Rotación con logrotate, retención segura y custodia externa
Auditd rota por tamaño vía auditd.conf. Puedes complementar o endurecer con logrotate para compresión y retención por cantidad/tiempo. Mantén permisos 0600 en los archivos. Prueba la rotación para evitar paradas de la auditoría.
Para custodia externa e inmutabilidad, los objetos con bloqueo de retención (WORM) son una opción. En la nube, valora Object Lock. La centralización también ayuda búsquedas y correlación.
- Define período y base legal para la retención mínima necesaria.
- Comprime, versiona y almacena hashes independientes de los archivos.
- Restringe acceso por roles; registra accesos a los logs.
- Considera almacenamiento inmutable (WORM) y cadena de custodia externa.
- Centraliza logs para búsquedas y alertas.
# /etc/logrotate.d/auditd (exemplo)
/var/log/audit/audit.log {
rotate 12
size 200M
missingok
notifempty
compress
delaycompress
create 0600 root root
postrotate
/bin/systemctl kill -s HUP auditd.service || true
endscript
}
Buenas prácticas, rendimiento y verificación continua
Recopila lo mínimo necesario para cumplir la finalidad. Evita capturar el contenido de archivos; enfócate en metadatos de acceso y cambio. Controla el volumen de reglas de execve. Mide eventos por minuto y ajusta el backlog.
Asegura sincronía de tiempo y protege la integridad: calcula hashes y, si es posible, firma lotes. Para logs de aplicación y correlación, la centralización estructurada en JSON facilita búsquedas.
Integra la auditoría a procesos de seguridad. Para medidas reactivas de autenticación y bloqueo, combina con herramientas específicas cuando tenga sentido. Mantén runbooks de investigación.
Verifica periódicamente que todo opera correctamente. Simula rotación y falta de espacio en ventanas controladas. Nunca pruebes escenarios destructivos en producción sin plan de recuperación.
# Estado do daemon e parâmetros
sudo systemctl status auditd --no-pager
sudo auditctl -s
# Ver alguns eventos recentes da chave exec_root
sudo ausearch -k exec_root -ts recent -i | tail -n 10
# Testar configuração do logrotate (dry run)
sudo logrotate -d /etc/logrotate.d/auditd
# Conferir sincronização de tempo (se usar chrony)
chronyc tracking || timedatectl status
Preguntas frecuentes
¿Cuánto tiempo debo retener los logs para la LGPD?
Depende de la finalidad y la base legal del tratamiento. Define una política por escrito, con plazos claros y responsables. Los registros de seguridad suelen tener retenciones mayores que los logs de aplicación. Evita retenciones excesivas. Revisa periódicamente la necesidad y asegura la eliminación segura al vencer el plazo.
¿El auditd sustituye a un SIEM?
No. auditd recopila y mantiene trazas locales de auditoría en Linux. Un SIEM agrega, correlaciona y alerta a escala. Puedes enviar eventos del auditd a una centralización y, desde allí, integrarlos en un SIEM para detección y respuesta.
¿Auditar execve de todos los usuarios impacta el rendimiento?
Puede impactar, pues genera alto volumen. Filtrar por euid=0 reduce ruido y coste. Mide la tasa de eventos, tamaño diario de logs y ajusta backlog (-b), tamaños de rotación y reglas. Prueba en homologación y monitoriza CPU e I/O tras cambios.
¿Necesito auditar el contenido de archivos con datos personales?
Generalmente no. La LGPD exige trazabilidad y seguridad, no copias del contenido. Auditar metadatos de acceso y modificación suele ser suficiente. Evita recolectar datos en exceso. Si es realmente necesario, evalúa cifrado y controles de acceso rígidos.
¿Cómo garantizar la integridad de los logs para auditorías?
Usa permisos 0600, restringe acceso administrativo y genera hashes (por ejemplo SHA‑256) de los archivos rotados. Almacena los hashes por separado y, si es posible, firma lotes. Considera custodia inmutable (WORM) para impedir alteraciones y garantizar la cadena de custodia.
¿Qué hacer si el disco se llena y la auditoría se suspende?
Tu política debe prever acciones: alertas, limpieza controlada de archivos antiguos según la política de retención y restauración del servicio. Configura space_left_action y admin_space_left_action para avisos y suspensión segura. Monitoriza espacio y prueba escenarios de rotación periódicamente.
¿Necesitas revisar reglas y retención de logs para la LGPD?
Podemos analizar tus reglas de auditd, políticas de rotación y almacenamiento externo para hacer la auditoría reproducible y proporcional a la finalidad.
Hablar sobre cumplimiento de logsVer también
- Guía práctica: configurar failover activo‑pasivo entre dos VPS con Keepalived, HAProxy y lsyncd para uploads sincronizados
- Guía: checklist técnico para preparar un VPS Debian con Docker Compose para aplicaciones PHP en producción
- Guía práctica para dimensionamiento de VPS y tuning de PHP‑FPM para tiendas Magento/OpenMage con picos estacionales: del dimensionamiento a la prueba de carga
- Guía: cómo planificar y ejecutar pruebas de carga en aplicaciones PHP monolito usando k6 y Docker Compose — paso a paso