09. Auditoria e registro no Ubuntu Server: um guia completo

Introdução: por que auditoria e registro são importantes

A auditoria e o registro no Ubuntu Server são essenciais para manter a segurança, a confiabilidade e a responsabilização do seu servidor Ubuntu. Eles oferecem informações sobre as atividades do sistema, ajudam a detectar anomalias e são fundamentais para cumprir requisitos regulatórios como GDPR, HIPAA ou PCI-DSS.

No entanto, muitos sistemas não ativam a auditoria por preocupações com o consumo de espaço em disco ou pela falta de ferramentas para analisar os dados com eficácia. Neste artigo, abordaremos essas preocupações e mostraremos como implementar auditoria e registro de forma prática e escalável.

Tópicos abordados:

  • Uso real e desafios da auditoria.
  • Uso de auditd para rastrear e registrar eventos do sistema.
  • Planejamento de espaço em disco para logs de auditoria.
  • Ferramentas para analisar logs de auditoria e logs do sistema.
  • Configuração da rotação de logs com logrotate.
  • Práticas avançadas de monitoramento e auditoria

Artigo anterior:

01. Introdução ao Ubuntu Server – SysOSX: AI & Cloud

02. Como configurar o seu primeiro servidor Ubuntu: guia para iniciantes – SysOSX: AI & Cloud

03. Dominando a linha de comando do Linux para Ubuntu Server – SysOSX: AI & Cloud

04. Gerenciamento de usuários e permissões no Ubuntu Server: um guia completo – SysOSX: AI & Cloud

05. Fundamentos de rede para Ubuntu Server: um guia completo – SysOSX: AI & Cloud

06. Instalar e gerenciar software no Ubuntu Server: um guia completo – SysOSX: AI & Cloud

07.Aplicar patches e atualizar o Ubuntu Server: um guia completo – SysOSX: AI & Cloud

08. Proteger o seu servidor Ubuntu: etapas práticas de reforço e proteção – SysOSX: AI & Cloud



1. Uso real da auditoria do sistema

Por que muitos sistemas pulam a auditoria

Embora a auditoria seja poderosa, muitos administradores evitam ativá-la pelos seguintes motivos:

  • Consumo de espaço em disco: os logs de auditoria podem crescer rapidamente, especialmente em sistemas movimentados, consumindo espaço em disco considerável.
  • Sobrecarga de desempenho: ativar auditorias detalhadas pode adicionar uma leve sobrecarga ao desempenho do sistema.
  • Complexidade: os logs de auditoria são extensos e exigem ferramentas especializadas para análise.

Como planejar a auditoria

Planejamento de espaço em disco

Para planejar a auditoria com eficácia:

  1. Estimar o crescimento dos logs: monitore as taxas de crescimento dos logs ativando temporariamente a auditoria e medindo o tamanho dos logs ao longo de uma semana. sudo du -sh /var/log/audit/ Use esses dados para calcular as necessidades de armazenamento diárias, semanais e mensais.
  2. Reservar armazenamento dedicado: armazene os logs de auditoria em uma partição ou disco separado para evitar que os logs encham o sistema de arquivos raiz. Por exemplo:
    • Crie uma partição para os logs: /var/log/audit.
    • Use ferramentas como lvcreate (Logical Volume Manager) para expandir o armazenamento dinamicamente, se necessário.
  3. Ativar a compactação: use logrotate para compactar logs de auditoria antigos, reduzindo significativamente as necessidades de armazenamento.
  4. Políticas de retenção: defina políticas de retenção com base nas necessidades da sua organização. Por exemplo:
    • Manter os logs por 30 dias para solução de problemas.
    • Arquivar logs mais antigos em armazenamento externo para fins de conformidade.

Considerações de desempenho

O impacto do Auditd no desempenho é mínimo para a maioria dos sistemas. No entanto, para servidores de alto tráfego (por exemplo, servidores web ou de banco de dados), monitore o uso de CPU e E/S após ativar a auditoria. Se necessário:

  • Limite o escopo das regras de auditoria a arquivos ou diretórios críticos em vez de monitorar o sistema inteiro.
  • Use técnicas de amostragem para reduzir a frequência dos logs.

2. Uso de auditd para rastrear e registrar eventos do sistema

A auditd ferramenta continua sendo uma das soluções mais robustas para auditoria do sistema. Abaixo estão outras considerações para o uso real.

Regras de auditoria avançadas

Em vez de auditar cada arquivo, concentre-se nas áreas críticas:

  • Arquivos de configuração do sistema:
 sudo auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config_changes
  • Diretórios sensíveis:
sudo auditctl -w /var/www/html -p rwxa -k web_access
  • Atividade de usuários:
    Monitorar usuários ou grupos específicos:
sudo auditctl -a always,exit -F uid=1001 -F arch=b64 -S execve -k user_commands

Ferramentas para analisar logs de auditoria

Os logs de auditoria podem ser esmagadores, mas várias ferramentas podem ajudar a processar e analisar os dados:

  1. Aureport: gera relatórios resumidos a partir dos logs de auditoria. sudo aureport --summary
  2. Auditbeat: uma ferramenta leve da Elastic para enviar logs de auditoria a um stack ELK centralizado para visualização e análise.
    • Instalar o Auditbeat: sudo apt install auditbeat
    • Configure-o para enviar logs ao Elasticsearch ou ao Logstash.
  3. Splunk: uma ferramenta comercial de análise de logs com recursos avançados de pesquisa e relatórios.

3. Planejamento de espaço em disco para logs de auditoria

Exemplo de plano de espaço em disco

Vamos supor:

  • Os logs de auditoria diários consomem 500 MB.
  • Os logs sofrem rotação semanal e são compactados para 20% do tamanho original.

Cálculo do espaço em disco:

  • Logs não compactados por 7 dias: 500 MB×7=3.5 GB500MB×7=3.5GB
  • Logs compactados por 30 dias: 500 MB×30×0.2=3 GB500MB×30×0.2=3GB
  • Armazenamento total necessário: 3.5 GB+3 GB=6.5 GB3.5GB+3GB=6.5GB

Reserve pelo menos 10 GB para absorver picos inesperados.


4. Configuração da rotação de logs com logrotate

A rotação de logs é fundamental para gerenciar o tamanho dos logs. Abaixo estão configurações avançadas para logs de auditoria e logs do sistema.

Rotação de logs de auditoria

Os logs de auditoria são gerenciados automaticamente pelo auditd daemon. Para personalizar a rotação:

  • Edite o /etc/audit/auditd.conf arquivo:
max_log_file = 50   # Maximum size in MB for audit.log
max_log_file_action = rotate  # Rotate logs when size exceeds limit
  • Testar a configuração:
sudo service auditd restart

Rotação de outros logs

Para logs que não são de auditoria, use logrotate:

  • Exemplo para /var/log/syslog:
/var/log/syslog {
    weekly
    rotate 4
    compress
    missingok
    notifempty
    create 0640 root root
}

5. Práticas avançadas de monitoramento e auditoria

Monitoramento de logs em tempo real

O monitoramento em tempo real é essencial para detectar eventos críticos. Aqui estão ferramentas e técnicas:

  1. Logwatch: resume os logs diários e os envia por e-mail aos administradores. sudo apt install logwatch Configure-o em /etc/logwatch/conf/logwatch.conf.
  2. Gerenciamento centralizado de logs:
    • Rsyslog: encaminha logs para um servidor central. sudo apt install rsyslog Configure /etc/rsyslog.conf para enviar logs para um servidor remoto.
    • Graylog: oferece uma interface baseada na web para análise de logs.
    • ELK Stack: Elasticsearch, Logstash e Kibana para gerenciamento escalável de logs.

Monitoramento com foco em segurança

  • Fail2ban: monitora logs em busca de tentativas de login com falha e bloqueia IPs.
sudo apt install fail2ban
  • Tripwire: detecta alterações de arquivos para detecção de intrusões.
sudo apt install tripwire

Integração de alertas

Configure alertas para eventos críticos usando ferramentas como:

  • Nagios: monitora a saúde do servidor e os logs em busca de anomalias.
  • Prometheus with Grafana: acompanha métricas e logs em tempo real.

Locais dos arquivos de log

Há muitos arquivos de log diferentes, cada um com um propósito distinto. Ao procurar um log sobre algo, você deve começar identificando o arquivo mais relevante. Abaixo está uma lista de locais comuns de arquivos de log.

Logs do sistema

Os logs do sistema tratam exatamente disso, do sistema Ubuntu, ao contrário dos aplicativos extras adicionados pelo usuário. Esses logs podem conter informações sobre autorizações, daemons do sistema e mensagens do sistema.

Log de autorização

Local: /var/log/auth.log

Acompanha os sistemas de autorização, como prompts de senha, o sudo comando e logins remotos.

Log de daemons

Local: /var/log/daemon.log

Daemons são programas executados em segundo plano, geralmente sem interação do usuário. Por exemplo, servidor de exibição, sessões SSH, serviços de impressão, Bluetooth e mais.

Log de depuração

Local: /var/log/debug

Fornece informações de depuração do sistema Ubuntu e dos aplicativos.

Log do kernel

Local: /var/log/kern.log

Logs do kernel do Linux.

Log do sistema

Local: /var/log/syslog

Contém mais informações sobre o seu sistema. Se você não encontrar nada nos outros logs, provavelmente está aqui.

Logs de aplicativos

Alguns aplicativos também criam logs em /var/log. Abaixo estão alguns exemplos.

Logs do Apache

Local: /var/log/apache2/ (subdiretório)

O Apache cria vários arquivos de log no /var/log/apache2/ subdiretório. O access.log arquivo registra todas as solicitações feitas ao servidor para acessar arquivos. error.log registra todos os erros gerados pelo servidor.

Logs do servidor X11

Local: /var/log/Xorg.0.log

O servidor X11 cria um arquivo de log separado para cada uma das suas telas. Os números de tela começam em zero, então a sua primeira tela (tela 0) registrará em Xorg.0.log. A próxima tela (tela 1) registraria em Xorg.1.log, e assim por diante.

Logs não legíveis por humanos

Nem todos os arquivos de log foram criados para serem lidos por humanos. Alguns foram feitos para serem analisados por aplicativos. Abaixo estão alguns exemplos.

Log de falhas de login

Local: /var/log/faillog

Contém informações sobre falhas de login. Você pode vê-lo com o faillog comando.

Log de últimos logins

Local: /var/log/lastlog

Contém informações sobre os últimos logins. Você pode vê-lo com o lastlog comando.

Log de registros de login

Local: /var/log/wtmp

Contém informações de login usadas por outros utilitários para descobrir quem está conectado. Para ver os usuários conectados no momento, use o who comando.


Conclusão

A auditoria e o registro são essenciais para manter um servidor Ubuntu seguro e confiável. Ao planejar cuidadosamente o espaço em disco, usar ferramentas para analisar logs e implementar práticas avançadas de monitoramento, você pode superar desafios comuns e obter melhor visibilidade das atividades do sistema.

Seja gerenciando requisitos de conformidade ou protegendo proativamente o seu servidor, as técnicas e ferramentas discutidas neste artigo ajudarão você a construir uma estratégia de registro e auditoria escalável e eficaz.

A seguir: Ferramentas de monitoramento de sistema para Ubuntu Server

No próximo artigo, vamos nos aprofundar em monitoramento e gerenciamento de desempenho. Vamos explorar poderosas ferramentas de monitoramento de sistema para Ubuntu Server, incluindo soluções como Nagios, Prometheus, Grafana e htop, para ajudá-lo a acompanhar o uso de recursos, detectar gargalos e otimizar o desempenho do servidor.

Fique atento para saber como manter o seu servidor funcionando com eficiência e resolver proativamente possíveis problemas antes que afetem as suas operações!

3 thoughts on “09. Audit and Logging on Ubuntu Server: A Comprehensive Guide”

Deixe um comentário