Guia: configurar auditd, rotação e retenção de logs para conformidade LGPD em servidores Linux
Por Kevin Marcondes · Publicado em · 9 min de leitura
Este guia mostra como configurar auditd, rotação e retenção de logs para conformidade LGPD em servidores Linux. Você verá exemplos práticos de audit.rules, parâmetros do auditd.conf e políticas de retenção seguras, focadas em produzir evidências úteis para auditorias, incidentes e accountability — sem prometer fórmulas mágicas e respeitando privacidade e desempenho.
LGPD na prática: o que os logs precisam comprovar
A LGPD não dita ferramentas, mas exige responsabilização. Em Linux, auditd ajuda a mostrar quem fez o quê, quando, de onde e com qual privilégio. Foque em rastreabilidade, integridade do registro e retenção proporcional à finalidade.
Pense em objetivos antes das regras. Isso evita coletar dados demais e reduz impacto no servidor.
- Rastreabilidade de ações privilegiadas (root/sudo) e mudanças sensíveis.
- Integridade e guarda imutável ou com prova de não adulteração.
- Retenção por período compatível com finalidade/base legal.
- Acesso restrito aos logs (menor privilégio).
- Capacidade de investigar incidentes com buscas e relatórios reproduzíveis.
Pré-requisitos e arquitetura mínima de auditoria
Defina uma arquitetura simples e confiável. Separe a coleta local, rotação controlada e guarda externa confiável. Para endurecimento geral do host, use um checklist amplo e complementar.
Time correto é crucial para correlação. Sincronize o servidor com NTP/Chrony. Planeje espaço em disco para picos e retenção.
Para logs de aplicação e correlação entre serviços, centralização ajuda bastante.
- Acesso root e kernel com suporte a audit.
- Sincronização de hora (Chrony/NTP).
- Espaço em disco suficiente em /var/log (idealmente partição dedicada).
- Permissões de logs 0600; acesso somente para root.
- Opcional: envio para um concentrador de logs ou armazenamento imutável.
Instale e ative o auditd no Linux
Instale o daemon de auditoria e habilite na inicialização. Depois, confirme o status. Em muitas distribuições, o pacote inclui regra padrão mínima. Ajustaremos regras e retenção adiante.
# 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
Configuração de rotação e retenção no auditd.conf
O arquivo /etc/audit/auditd.conf controla rotação, tamanho e ações quando o disco enche. Defina tamanhos compatíveis com sua taxa de eventos. "rotate" evita perda; "suspend" pausa a auditoria até liberar espaço. Escolher ignore pode causar perda de evidências.
Ajuste alertas de pouco espaço e permissões estritas. Após editar, recarregue o serviço.
# /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
Regras de auditoria alinhadas à LGPD: exemplos úteis
Aplique regras que entreguem evidências úteis, com ruído controlado. Evite auditar tudo. Comece por mudanças de identidade, privilégios, autenticação e diretórios com dados pessoais. Regra de execve para todo usuário pode gerar muito volume. Filtrar por euid=0 reduz ruído.
Grave suas regras em /etc/audit/rules.d/lgpd.rules. Carregaremos com augenrules.
| Objetivo LGPD | Regra exemplo (resumo) | Evidência/relatório |
|---|---|---|
| Mudanças de identidade | -w /etc/passwd -p wa -k ids | aureport -m -i |
| Ações privilegiadas | -a always,exit -S execve -F euid=0 -k exec_root | aureport -au -i | filtrar por exec_root |
| Autenticação | -w /var/log/lastlog -p wa -k logins | ausearch -k logins -i |
| Dados pessoais | -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
Carregue as regras, gere evidências e relatórios
Carregue as regras e gere alguns eventos de teste. Use ausearch para consultas detalhadas e aureport para relatórios resumidos. Registre as consultas que você usará em auditorias. Sempre valide em homologação antes de aplicar em produção.
# 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
Rotação com logrotate, retenção segura e guarda externa
O auditd rotaciona por tamanho via auditd.conf. Você pode complementar ou endurecer com logrotate para compressão e retenção por quantidade/tempo. Mantenha permissões 0600 nos arquivos. Teste a rotação para evitar paradas da auditoria.
Para guarda externa e imutabilidade, objetos com bloqueio de retenção (WORM) são uma opção. Em nuvem, avalie Object Lock. Centralização também ajuda buscas e correlação.
- Defina período e base legal para retenção mínima necessária.
- Comprima, versione e armazene hashes independentes dos arquivos.
- Restrinja acesso por papéis; registre acessos a logs.
- Considere armazenamento imutável (WORM) e trilha de auditoria externa.
- Centralize logs para buscas e 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
}
Boas práticas, performance e verificação contínua
Colete o mínimo necessário para cumprir a finalidade. Evite capturar conteúdo de arquivos; foque em metadados de acesso e mudança. Controle volume das regras de execve. Mensure eventos por minuto e ajuste backlog.
Assegure sincronia de tempo e proteja integridade: calcule hashes e, se possível, assine lotes. Para logs de aplicação e correlação entre serviços, centralização estruturada em JSON ajuda bastante.
Integre auditoria a processos de segurança. Para autenticação e bloqueios reativos, combine com ferramentas específicas quando fizer sentido. Mantenha runbooks de investigação.
Verifique periodicamente se tudo está operando. Simule rotação e falta de espaço em janelas controladas. Nunca teste cenários destrutivos em produção sem plano de volta.
# 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
Perguntas frequentes
Quanto tempo devo reter logs para LGPD?
Depende da finalidade e base legal do tratamento. Defina uma política escrita, com prazos claros e responsáveis. Registros de segurança costumam ter retenção maior que logs de aplicação. Evite retenções excessivas. Revise periodicamente a necessidade e assegure descarte seguro após o prazo.
O auditd substitui um SIEM?
Não. O auditd coleta e mantém trilhas locais de auditoria no Linux. Um SIEM agrega, correlaciona e alerta em escala. Você pode enviar eventos do auditd para uma centralização e, a partir dela, integrar a um SIEM para detecção e resposta.
Auditar execve de todos os usuários impacta desempenho?
Pode impactar, pois gera alto volume. Filtrar por euid=0 reduz ruído e custo. Meça taxa de eventos, tamanho diário de logs e ajuste backlog (-b), tamanho de rotação e regras. Teste em homologação e monitore uso de CPU e I/O após mudanças.
Preciso auditar conteúdo de arquivos com dados pessoais?
Geralmente, não. A LGPD exige rastreabilidade e segurança, não cópias do conteúdo. Auditar metadados de acesso e alteração é suficiente na maioria dos casos. Evite coletar dados em excesso. Se realmente necessário, avalie criptografia e controles rigorosos de acesso.
Como garantir integridade dos logs para auditorias?
Use permissões 0600, restrinja acesso administrativo e gere hashes (por exemplo, SHA‑256) dos arquivos rotacionados. Armazene os hashes separadamente e, se possível, assine lotes. Considere guarda imutável (WORM) para impedir alterações e garantir cadeia de custódia.
O que fazer se o disco encher e a auditoria suspender?
Sua política deve prever ações: alerta, limpeza controlada de arquivos antigos segundo a política de retenção e restauração do serviço. Configure space_left_action e admin_space_left_action para avisos e suspensão segura. Monitore espaço e teste cenários de rotação periodicamente.
Precisa revisar regras e retenção de logs para LGPD?
Podemos analisar suas regras do auditd, políticas de rotação e guarda externa para tornar a auditoria reproduzível e proporcional à finalidade.
Falar sobre conformidade de logsVeja também
- Guia prático: como configurar failover ativo-passivo entre duas VPS com Keepalived, HAProxy e lsyncd para uploads sincronizados
- Guia: checklist técnico para preparar VPS Debian com Docker Compose para aplicações PHP em produção
- Guia prático para dimensionamento de VPS e tuning de PHP‑FPM para lojas Magento/OpenMage com picos sazonais: do sizing ao teste de carga
- guia prático: reconstruir índices no PostgreSQL em produção usando CREATE INDEX CONCURRENTLY e índices parciais (passo a passo seguro)