Marcio Cunha

Como auditar permissões de usuários no Linux com o auditd

Aprenda a configurar regras de auditoria no Linux com o auditd para rastrear em tempo real alterações em arquivos críticos e proteger seu sistema.

Marcio Cunha•4 min
Também disponível em:EnglishEspañol
Resumo
  • O auditd monitora eventos do kernel em tempo real para registrar alterações em arquivos vitais do sistema.
  • Regras de vigilância precisam ser definidas com flags específicas de syscall e descritores de caminho.
  • Análise correta dos logs gerados evita falsos positivos e garante rastreabilidade forense confiável.
  • Ferramentas complementares como o comando find ajudam a identificar permissões perigosas antes de incidentes.
  • Manter o serviço de auditoria ativo protege a infraestrutura contra acessos e modificações não autorizadas.

Por que monitorar arquivos críticos no Linux?

Em qualquer ambiente de servidores, garantir a integridade dos arquivos de configuração e dados confidenciais é uma prioridade absoluta. Sistemas operacionais baseados em Linux possuem o conceito de permissões tradicionais, como dono, grupo e outros, mas essas regras sozinhas não impedem que usuários com privilégios elevados façam alterações indevidas ou que invasores modifiquem binários do sistema. É exatamente nesse cenário que entra a necessidade de uma auditoria ativa de segurança, indo muito além do que uma simples checagem estática como como auditar permissões perigosas no Linux com o comando find proporciona no dia a dia da administração.

Na prática, a auditoria de sistema funciona como uma câmera de segurança voltada para o núcleo do sistema operacional, o chamado kernel. Quando um processo tenta ler, escrever ou executar um arquivo monitorado, o kernel registra o evento detalhadamente em arquivos de log dedicados. Isso significa que você passa a saber exatamente quem fez o quê, quando a alteração ocorreu e qual comando exato foi executado, eliminando qualquer suposição em caso de incidentes de segurança ou falhas operacionais inesperadas na infraestrutura.

O que é o auditd e como ele se integra ao kernel?

O auditd é o daemon (serviço executado em segundo plano sem interação direta com o usuário) responsável por coletar e centralizar os eventos de segurança gerados pelo subsistema de auditoria do próprio kernel do Linux. Em vez de depender de varreduras periódicas demoradas, o auditd intercepta chamadas de sistema (as chamadas syscalls, que são as portas de comunicação entre os programas e o hardware/kernel) no exato momento em que elas acontecem, garantindo uma resposta imediata e sem perda de informações cruciais.

Configurar essa ferramenta exige entender que cada ação no disco passa por regras estritas definidas pelo administrador. O serviço lê essas diretrizes de um arquivo de configuração central e as aplica diretamente na memória do kernel. Caso ocorra uma tentativa de burlar essas regras, o sistema pode registrar o evento ou até mesmo tomar medidas mais drásticas, dependendo do nível de rigidez configurado. Para quem já gerencia ambientes complexos, essa precisão lembra a necessidade de manter o controle operacional rigoroso, tal como como reiniciar pods travados no Kubernetes com o kubectl quando uma aplicação se comporta de maneira anômala.

Passo a passo: configurando regras para rastrear alterações

Para colocar a mão na massa e monitorar arquivos sensoriais do sistema, como o arquivo que armazena as senhas dos usuários /etc/passwd, precisamos adicionar regras específicas ao subsistema de auditoria. O comando utilitário para interagir com essas regras em tempo de execução é o auditctl, mas as regras permanentes devem ser salvas no arquivo de configuração do serviço para sobreviverem a reinicializações do servidor.

  1. Abra o arquivo de configuração de regras persistentes do auditd usando seu editor de texto preferido com privilégios de superusuário.
  2. Adicione a linha de monitoramento apontando para o arquivo desejado com as permissões de gravação e chave de identificação:
    -w /etc/passwd -p wa -k alteracoes_passwd
  3. Reinicie o serviço do auditd para aplicar as novas regras imediatamente no kernel do sistema operacional:
    sudo systemctl restart auditd

No exemplo acima, a flag -w define o caminho a ser vigiado, a flag -p wa instrui o auditd a disparar o alarme sempre que ocorrer uma tentativa de escrita (w - write) ou alteração de atributos (a - attribute), e a flag -k adiciona uma palavra-chave descritiva (tag) para facilitar buscas futuras nos logs.

Como consultar e analisar os logs gerados pelo auditd

Com as regras ativas, qualquer modificação no arquivo /etc/passwd gerará dezenas de linhas detalhadas de log no diretório padrão de auditoria. Ler esses arquivos brutos diretamente pode ser uma tarefa cansativa devido à quantidade de metadados gerados pelo kernel a cada microssegundo. Para filtrar apenas o que interessa de forma rápida e eficiente, utilizamos a ferramenta de busca integrada chamada ausearch.

A utilidade do ausearch reside na sua capacidade de cruzar dados usando as tags que criamos nas regras. Ao executar sudo ausearch -k alteracoes_passwd, o sistema varre o arquivo de log e devolve um resumo legível contendo o horário exato da alteração, o ID numérico do usuário responsável (UID), o processo que originou a ação e o resultado da operação. Essa visibilidade granular é fundamental para equipes de segurança que precisam responder rapidamente a auditorias de conformidade e investigações forenses digitais.

Considerações finais sobre auditoria contínua

Implementar o auditd no seu ecossistema Linux transforma a postura de segurança de reativa para preventiva. Saber exatamente quem modificou um arquivo crítico em servidores de produção elimina pontos cegos e intimida ações maliciosas internas ou externas. Embora exija planejamento para não gerar um volume excessivo de logs desnecessários, o ganho em rastreabilidade compensa amplamente o esforço de configuração inicial, mantendo seu ambiente corporativo sólido e auditável.