Aula 22: Automatizando bloqueio de IPs maliciosos com scripts e APIs

Aula 22: Automatizando bloqueio de IPs maliciosos com scripts e APIs

Automatizando bloqueio de IPs maliciosos é o estágio em que a segurança operacional deixa de depender exclusivamente da reação humana e passa a responder em escala, de forma consistente e auditável. Ao final deste curso, você já domina os fundamentos de firewall, fail2ban e CrowdSec, mas ainda existe uma lacuna comum em muitos ambientes: a integração entre essas ferramentas e fontes externas de inteligência, bem como a execução de ações coordenadas de bloqueio. Nesta aula, vamos fechar essa lacuna com scripts shell, chamadas de API e agendamento automático.

O cenário real de operação exige mais do que instalar um bouncer ou ajustar uma jail. Você precisará consumir listas de reputação, consultar a API local do CrowdSec, acionar o fail2ban de forma programática e garantir que cada IP bloqueado seja persistido no firewall correto, sem duplicações ou riscos de autobloqueio. A automação dessas tarefas reduz o tempo de resposta de minutos para segundos e permite que a equipe de infraestrutura foque em análises mais complexas.

Para acompanhar esta aula, você precisa ter concluído as aulas anteriores do curso, em especial as que cobrem a instalação e configuração do fail2ban, os fundamentos do CrowdSec e a administração de firewalls com firewalld, iptables ou nftables. Também é importante ter acesso root ou sudo em um servidor Ubuntu/Debian ou CentOS/RHEL/Rocky Linux, pois todos os scripts e serviços serão executados com privilégios elevados. As ferramentas curl, jq e ipset serão utilizadas intensamente.

Você sairá desta aula apto a criar scripts idempotentes para bloqueio e desbloqueio de IPs, integrar decisões do CrowdSec com conjuntos do ipset, configurar ações personalizadas no fail2ban que disparam APIs externas e agendar sincronizações automáticas com systemd timers ou cron. Em nossos projetos na JRT Technology Solutions, nossos especialistas utilizam diariamente exatamente esse tipo de automação para reduzir o ruído operacional e manter ambientes de produção protegidos sem intervenção manual constante.

O que você vai aprender nesta aula

  • Diferenciar automação síncrona e assíncrona no contexto de bloqueio de IPs maliciosos.
  • Criar scripts shell que validam IPs, evitam bloqueio de redes internas e aplicam regras de forma idempotente.
  • Utilizar a API local do CrowdSec para extrair decisões de banimento e sincronizá-las com ipset, firewalld ou nftables.
  • Configurar ações customizadas no fail2ban capazes de disparar comandos e chamadas de API em eventos de banimento.
  • Agendar execuções recorrentes com systemd timers e cron, garantindo resiliência e reinício automático.
  • Testar, depurar e monitorar scripts de automação com logs estruturados e comandos de verificação.
  • Aplicar boas práticas de segurança para evitar autobloqueio, vazamento de tokens e falta de auditabilidade.

Pré-requisitos e Ambiente

Antes de executar qualquer passo desta aula, certifique-se de que o ambiente atende aos requisitos mínimos. Em nossos laboratórios na JRT Technology Solutions, padronizamos as distribuições Ubuntu Server 22.04/24.04, Debian 12, CentOS Stream 9, RHEL 9 e Rocky Linux 9. Para esta aula, os serviços fail2ban e CrowdSec devem estar instalados e funcionais, pois faremos integração direta com eles. Além disso, o firewall local deve estar ativo, preferencialmente com firewalld ou nftables.

Os pacotes essenciais para a automação são curl, jq, ipset e coreutils. O curl será usado para consumir APIs REST, o jq para manipular respostas JSON, e o ipset para manter conjuntos de IPs bloqueados com suporte a expiração automática. Em distribuições baseadas em Red Hat, o pacote ipset pode ser instalado a partir do repositório EPEL. Já em Debian/Ubuntu, ele está disponível nos repositórios oficiais sem custo.

Outro ponto crítico é o acesso às credenciais da API local do CrowdSec. O arquivo /etc/crowdsec/local_api_credentials.yaml contém a chave que permite consultar decisões e gerenciar o motor de segurança localmente. Você também pode utilizar uma chave de API de uma plataforma externa de inteligência de ameaças, como AbuseIPDB ou GreyNoise, para enriquecer a automação. Nesta aula, usaremos a API local do CrowdSec como base, pois ela já está disponível em qualquer instalação padrão.

  • Servidor com Ubuntu 22.04/24.04, Debian 12, CentOS Stream 9, RHEL 9 ou Rocky Linux 9.
  • Privilégios de root ou sudo configurados corretamente.
  • fail2ban 0.11 ou superior instalado e ativo.
  • CrowdSec 1.4 ou superior instalado, com API local habilitada.
  • Firewalld ou nftables/iptables operacionais.
  • Pacotes curl, jq, ipset e systemd disponíveis.

Fundamentos da Automação de Bloqueio de IPs

Automatizando bloqueio de IPs exige que você entenda, primeiro, a diferença entre processamento orientado a eventos e processamento agendado. O fail2ban é um exemplo de processamento orientado a eventos: ele monitora arquivos de log e, quando uma falha de autenticação é detectada, executa uma ação imediatamente. Já uma sincronização com uma API de inteligência de ameaças é tipicamente agendada, pois a fonte de dados é consultada em intervalos regulares, como a cada cinco minutos. Ambos os modelos podem conviver no mesmo ambiente, desde que você projete seus scripts com idempotência.

Idempotência é a propriedade que garante que uma operação pode ser executada várias vezes sem causar efeitos colaterais indesejados. No contexto de bloqueio de IPs, isso significa que adicionar um IP que já está bloqueado não deve gerar erro, não deve duplicar regras e não deve interromper a execução do script. O comando ipset add com a flag -exist e as verificações firewall-cmd –query-rich-rule são exemplos de mecanismos que tornam o processo seguro para execuções repetidas.

Outro conceito essencial é a fonte de verdade. Você precisa definir onde um bloqueio é registrado de forma canônica. Em nossa arquitetura de referência na JRT Technology Solutions, o ipset funciona como a camada primária de bloqueio porque é extremamente rápido e permite expiração automática via timeout. O fail2ban e o CrowdSec alimentam esse conjunto, mas não são obrigados a modificar diretamente o firewall. Isso evita conflitos de regras e simplifica a remoção de bloqueios antigos.

A tabela a seguir compara os mecanismos mais comuns de automação que você pode empregar:

Mecanismo Disparo Latência Customização Complexidade
fail2ban + ações padrão Evento em log Baixa Média Baixa
CrowdSec + bouncers Decisão local/global Baixa Alta Média

Quer aprender na prática com especialistas?

A JRT Technology Solutions oferece treinamentos e implementação de Firewall, fail2ban e CrowdSec para equipes corporativas.



Falar no WhatsApp

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.