Aula 32: Integrando ferramentas — stack completo de segurança Linux em produção

Aula 32: Integrando ferramentas — stack completo de segurança Linux em produção

Nesta aula 32 do curso Segurança Linux — Do Zero ao Avançado, o foco é Integrando ferramentas para construir um stack completo de segurança Linux em produção. Você não vai apenas instalar ferramentas isoladas, mas conectá-las de forma que a auditoria do kernel, a visibilidade do sistema, a prevenção de intrusão e o registro centralizado de logs trabalhem como um único ecossistema defensivo. Essa é a diferença entre ter um conjunto de utilitários instalados e ter uma plataforma de segurança operacional de verdade.

Profissionais de TI e entusiastas de segurança sabem que ferramentas isoladas geram alertas fragmentados, dificultam a investigação de incidentes e aumentam o tempo de resposta. Quando integramos auditd, osquery, fail2ban, rsyslog e firewalld, criamos um fluxo contínuo de coleta, correlação, decisão e ação. Em nossos projetos na JRT Technology Solutions, nossos especialistas utilizam diariamente exatamente esse desenho para proteger servidores Linux em ambientes corporativos, e é isso que você aprenderá a reproduzir.

Esta aula é de nível avançado e foi planejada para quem já concluiu as aulas anteriores do curso. O conteúdo é prático e progressivo: você começará entendendo a arquitetura de integração, passará pela instalação completa no Ubuntu/Debian e no CentOS/Rocky Linux, criará arquivos de configuração reais, testará o funcionamento de cada ponto da integração e aprenderá a diagnosticar os erros mais comuns. Cada comando será explicado linha por linha, e cada saída importante será mostrada para que você saiba exatamente o que esperar.

Ao final desta aula, você será capaz de implantar um stack defensivo funcional, com auditoria de eventos privilegiados, coleta de indicadores via osquery, bloqueio automático de ataques de força bruta com fail2ban e centralização de logs de segurança em um único arquivo. Também terá um script de verificação integrada para monitorar a saúde do stack em produção. Prepare seu ambiente de testes e vamos começar.

O que você vai aprender nesta aula

Esta aula foi dividida em etapas bem definidas para facilitar o aprendizado e a aplicação imediata. Ao terminar, você terá construído um pipeline de defesa completo e saberá operá-lo com segurança.

  • Compreender a arquitetura de integração entre auditoria, visibilidade, prevenção de intrusão e logging centralizado.
  • Instalar e configurar auditd, osquery, fail2ban, rsyslog e firewalld no Ubuntu/Debian e no CentOS/Rocky Linux.
  • Integrar os logs de auditoria do auditd ao rsyslog para centralização e análise posterior.
  • Criar regras de auditoria para monitorar alterações em arquivos sensíveis e execuções privilegiadas.
  • Configurar o fail2ban para bloquear IPs maliciosos usando o firewalld.
  • Utilizar o osquery para consultas de segurança e eventos em tempo real.
  • Desenvolver um script de verificação integrada que valida todos os componentes do stack.
  • Testar a configuração, identificar falhas e aplicar soluções para os erros mais comuns.

Pré-requisitos e Ambiente

Antes de executar os procedimentos desta aula, certifique-se de que seu ambiente atende aos requisitos mínimos. Recomendamos o uso de duas máquinas virtuais ou contêineres com sistema Linux limpo, uma para testar o stack em Ubuntu/Debian e outra em CentOS/Rocky Linux. Você precisará de acesso sudo ou root, conexão com a internet para instalar pacotes e, idealmente, um terminal com suporte a cores para facilitar a leitura das saídas.

  • Ubuntu Server 22.04/24.04 ou Debian 12 — para a primeira parte prática.
  • Rocky Linux 9, AlmaLinux 9 ou CentOS Stream 9 — para a segunda parte prática.
  • Acesso sudo ou root em ambos os sistemas.
  • Serviços de hora sincronizados via chrony ou systemd-timesyncd (logs correlacionados exigem relógio correto).
  • Conhecimento prévio das aulas anteriores, especialmente sobre systemd, firewall e fundamentos de logs no Linux.

Se você ainda não tem as máquinas prontas, pode usar o VirtualBox, KVM ou provedores de nuvem. O importante é seguir os passos exatamente como mostrados, pois cada comando foi testado em ambientes reais. Em nossos laboratórios na JRT Technology Solutions, padronizamos essas versões para garantir compatibilidade entre os pacotes e as configurações.

O papel da integração de ferramentas no stack de segurança Linux

Quando pensamos em segurança Linux, a primeira imagem que vem à mente costuma ser a de um firewall bloqueando portas ou um antivírus varrendo arquivos. No entanto, um servidor Linux de produção exposto à internet precisa de muito mais do que uma única camada. O kernel gera eventos de auditoria ricos em detalhes, os logs do sistema registram tentativas de acesso, o osquery permite consultar o estado do sistema como se fosse um banco de dados, e o fail2ban transforma padrões de logs em ações de bloqueio. O valor real aparece quando essas peças passam a conversar entre si.

A integração resolve três problemas fundamentais. Primeiro, elimina silos de informação: em vez de consultar /var/log/audit/audit.log, /var/log/auth.log e o banco do osquery separadamente, você centraliza eventos relevantes em um único fluxo. Segundo, reduz o tempo de resposta: logs brutos são convertidos em contexto acionável, e o fail2ban pode agir automaticamente com base nesse contexto. Terceiro, melhora a confiabilidade: uma verificação contínua detecta serviços inativos, filas de log paradas ou regras de auditoria ausentes antes que um incidente ocorra.

Em nossos projetos na JRT Technology Solutions, observamos que a maioria das invasões bem-sucedidas poderia ter sido detectada precocemente se as ferramentas estivessem integradas. Um ataque de força bruta, por exemplo, gera múltiplos eventos: falhas de autenticação no systemd-journald, registros no auth.log, tentativas de execução de comandos suspeitos e, finalmente, acessos indevidos a arquivos críticos. Sem integração, cada evento é analisado isoladamente; com o stack completo, eles formam uma linha do tempo clara.

Ao longo desta aula, você verá que a integração não exige softwares proprietários nem configurações mirabolantes. Usaremos recursos nativos do Linux, módulos do rsyslog, regras do auditd, consultas agendadas do osquery e ações do fail2ban. O resultado é um stack transparente, auditável e escalável, que pode ser replicado em dezenas de servidores com pequenos ajustes.

Arquitetura do projeto: desenhando o pipeline de defesa

Antes de executar qualquer comando, é essencial entender o fluxo de dados entre os componentes. A arquitetura deste stack pode ser resumida em quatro camadas: coleta, normalização, consulta e resposta. O auditd atua na coleta, capturando syscalls e acessos a arquivos. O rsyslog normaliza e centraliza os logs de diferentes fontes. O osquery fornece a camada de consulta, permitindo inspecionar o estado do sistema em tempo real. Por fim, o fail2ban e o firewalld executam a resposta, bloqueando IPs que apresentem comportamento malicioso.

Camada Ferramenta Função principal Integração no stack
Coleta de eventos auditd Registra syscalls, execuções privilegiadas e acessos a arquivos sensíveis Envia logs para o rsyslog via módulo imfile e alimenta o osquery com eventos de auditoria
Normalização de logs rsyslog Centraliza logs de diversas fontes e grava em arquivo único Lê arquivos de log do auditd, do systemd-journald e do auth.log, gerando /var/log/security-integrated.log
Visibilidade e consulta osquery Consulta o estado do sistema usando SQL e coleta eventos em tempo real Usa o subsistema de auditoria do kernel e executa consultas agendadas sobre logins, portas e SUIDs
Prevenção e resposta fail2ban + firewalld Bloqueia IPs com base em padrões de falha e mantém regras de firewall O fail2ban lê logs integrados e aciona o firewalld para criar regras de bloqueio

O fluxo prático é o seguinte: um invasor tenta autenticar-se via SSH várias vezes com senha errada. O sshd registra as falhas no journald e no /var/log/auth.log (ou /var/log/secure no Rocky Linux). O rsyslog coleta esses logs e os centraliza. O fail2ban lê o arquivo de log, identifica o padrão de força bruta e executa uma ação no firewalld, bloqueando o IP de origem. Simultaneamente, o osquery registra a contagem de logins falhos e pode disparar consultas de investigação. O auditd mantém o rastro de qualquer execução privilegiada que ocorrer durante o ataque.

Essa arquitetura foi projetada para ser modular. Se você precisar adicionar Suricata para detecção de intrusão ou Wazuh para correlação avançada, poderá encaixá-los no lugar do fail2ban ou em paralelo, sem quebrar o fluxo existente. O segredo é manter a padronização dos logs e a integração contínua entre as camadas.

Passo a Passo — Integrando ferramentas no Ubuntu/Debian

Agora vamos colocar a mão na massa. O primeiro passo é instalar todos os componentes no Ubuntu/Debian. Este procedimento parte de um sistema recém-instalado, mas pode ser adaptado para qualquer servidor já em operação. Execute os comandos abaixo na ordem exata e aguarde a conclusão de cada etapa antes de prosseguir.

# Atualiza a lista de pacotes e aplica atualizações pendentes
sudo apt update && sudo apt upgrade -y

# Instala os componentes principais do stack
sudo apt install -y auditd rsyslog fail2ban firewalld curl wget gnupg2 ca-certificates

# Adiciona o repositório oficial do osquery com chave GPG
curl -L https://pkg.osquery.io/deb/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/osquery.gpg
echo "deb [signed-by=/usr/share/keyrings/osquery.gpg] https://pkg.osquery.io/deb deb main" | sudo tee /etc/apt/sources.list.d/osquery.list > /dev/null

# Instala o osquery a partir do repositório recém-adicionado
sudo apt update
sudo apt install -y osquery

# Habilita e inicia todos os serviços necessários
sudo systemctl enable --now auditd rsyslog fail2ban firewalld osqueryd

Vamos entender cada linha. O primeiro comando sudo apt update && sudo apt upgrade -y atualiza o índice de pacotes e aplica todas as atualizações pendentes; o operador && garante que o upgrade só execute se o update for bem-sucedido, e a flag -y assume “sim” para todas as perguntas. O segundo comando instala auditd (auditoria do kernel), rsyslog (sistema de logging), fail2ban (prevenção de intrusão), firewalld (firewall dinâmico) e ferramentas auxiliares como curl, wget e gnupg2, que serão usadas para baixar e validar pacotes.

A adição do repositório do osquery é feita em duas etapas. O comando curl -L … | sudo gpg –dearmor -o /usr/share/keyrings/osquery.gpg baixa a chave pública do repositório e a converte do formato ASCII para binário usando gpg –dearmor, salvando-a no diretório padrão de chaves do apt. A opção -L do curl segue redirecionamentos. Em seguida, o comando echo “deb …” | sudo tee /etc/apt/sources.list.d/osquery.list > /dev/null cria o arquivo de repositório com a assinatura GPG; o tee grava no arquivo e o redirecionamento > /dev/null descarta a saída padrão para manter o terminal limpo.

Depois do sudo apt update para ler o novo repositório, o sudo apt install -y osquery instala o agente de visibilidade. Por fim, sudo systemctl enable –now habilita todos os serviços para iniciarem no boot e inicia-os imediatamente. A flag –now combina enable e start, economizando comandos. A saída esperada durante a instalação deve ser semelhante a esta:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up auditd (1:3.0.9-1ubuntu3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/auditd.service → /lib/systemd/system/auditd.service.
Setting up fail2ban (0.11.2-2) ...
Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /lib/systemd/system/fail2ban.service.
Setting up osquery (5.12.1-1) ...
Processing triggers for man-db (2.10.2-1) ...

Após a instalação, é importante configurar o firewalld para permitir o tráfego SSH antes de testar o stack. Caso contrário, você pode perder o acesso remoto ao servidor. Execute os comandos abaixo:

# Adiciona o serviço SSH à zona padrão
sudo firewall-cmd --permanent --add-service=ssh

# Recarrega as regras do firewall para aplicar a mudança
sudo firewall-cmd --reload

# Verifica se o serviço SSH foi adicionado
sudo firewall-cmd --list-services

O primeiro comando sudo firewall-cmd –permanent –add-service=ssh adiciona o serviço SSH na configuração permanente do firewall. A flag –permanent garante que a regra sobreviva a reinicializações. O segundo comando sudo firewall-cmd –reload recarrega o firewall para aplicar a alteração imediatamente. O terceiro comando exibe a lista de serviços ativos, onde você deve ver ssh na saída. Se o firewalld não estiver ativo, inicie-o com sudo systemctl start firewalld antes desses comandos.

Passo a Passo — Integrando ferramentas no CentOS/Rocky Linux

No ecossistema CentOS/Rocky Linux, o procedimento é semelhante, mas utiliza o gerenciador de pacotes dnf e o repositório EPEL, necessário para instalar o fail2ban. Execute os comandos a seguir na ordem exata:

# Instala o repositório EPEL e atualiza o sistema
sudo dnf install -y epel-release
sudo dnf update -y

# Instala os componentes principais do stack
sudo dnf install -y audit rsyslog fail2ban firewalld curl wget ca-certificates

# Adiciona o repositório oficial do osquery com chave GPG
curl -L https://pkg.osquery.io/rpm/pubkey.gpg | sudo gpg --dearmor -o /etc/pki/rpm-gpg/RPM

Quer aprender na prática com especialistas?

A JRT Technology Solutions oferece treinamentos e implementação de Segurança Linux para equipes corporativas.



Falar no WhatsApp

Avatar photo

Thiago Paes Rodrigues

Com mais de 22 anos de experiência em Tecnologia da Informação, este profissional construiu uma trajetória sólida como empresário, atuando de forma estratégica na implementação de soluções tecnológicas que otimizam processos e impulsionam resultados em diferentes setores.