CrowdSec 2026: IPS Comunitário para Proteger Servidores PME

O CrowdSec é um sistema de prevenção de intrusões (IPS) open-source que combina detecção local com inteligência de ameaças comunitária. Ao contrário do Fail2ban, que age isoladamente em cada servidor, o CrowdSec partilha automaticamente os IPs maliciosos detectados com uma rede global de utilizadores. Neste guia mostramos como instalar, configurar bouncers, aproveitar a threat intelligence comunitária e evitar os erros mais comuns em servidores de pequenas e médias empresas (PME) portuguesas.

ℹ Nota: O CrowdSec é gratuito para uso individual e PME. O plano gratuito inclui a lista de IPs maliciosos da comunidade. Para listas premium e alertas Slack/e-mail, existe o plano Edge/Pro pago.

Neste artigo

Introdução: CrowdSec vs Fail2ban

O Fail2ban tem sido a ferramenta padrão para bloquear IPs que tentam brute-force SSH, FTP ou HTTP. Funciona analisando ficheiros de log e adicionando regras de iptables para banir IPs temporariamente. O problema: cada servidor age de forma isolada, sem partilhar informação sobre ameaças. Um IP que ataca o servidor A pode atacar o servidor B sem qualquer aviso prévio.

O CrowdSec muda este paradigma. Cada detecção local é enviada anonimamente para a Central de Inteligência do CrowdSec, que agrega dados de milhares de instalações e redistribui a lista de IPs maliciosos para todos os participantes. O resultado: quando um IP ataca um servidor na rede comunitária, todos os outros servidores bloqueiam-no automaticamente antes de serem alvo.

Característica Fail2ban CrowdSec
Arquitetura Local, isolado Local + rede comunitária
Linguagem Python Go (leve, rápido)
Partilha de ameaças Não Sim, automática
Consumo de RAM 50-150 MB 10-30 MB
Bouncers iptables/nftables iptables, nftables, nginx, Cloudflare, WAF
Console web Não Sim (Console CrowdSec)

Para uma PME com 3-5 servidores (VPS cloud ou on-premise), o CrowdSec oferece vantagens imediatas: instalação simples via script, baixo consumo de recursos, e a vantagem decisiva de receber bloqueios preventivos da comunidade antes de um ataque atingir os seus servidores.

Instalar CrowdSec

A instalação do CrowdSec é feita através de um script oficial que detecta a distribuição (Debian, Ubuntu, CentOS, RHEL, AlmaLinux) e instala o motor (cscli), o agente de leitura de logs e os coletores (collections) pré-configurados para SSH, nginx, Apache, MySQL e outros serviços comuns.

Passo 1 — Instalar via script oficial

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
sudo apt install crowdsec -y

Para distribuições baseadas em RPM (CentOS, RHEL, AlmaLinux):

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.rpm.sh | sudo bash
sudo dnf install crowdsec -y

Passo 2 — Verificar instalação

sudo cscli metrics
sudo systemctl status crowdsec

O comando cscli metrics mostra o número de eventos processados, decisões ativas e alertas gerados. Se o serviço estiver ativo (active (running)), o motor está a ler os logs e a aplicar coletores.

Passo 3 — Registar no Console (opcional)

sudo cscli console enroll END-XXXXXX

Substitua END-XXXXXX pelo token obtido em app.crowdsec.net após criar conta gratuita. O Console permite ver alertas, decisões e métricas num dashboard web centralizado — útil para gerir múltiplos servidores PME.

Bouncers e Bloqueio

O motor CrowdSec detecta ameaças e toma decisões, mas não bloqueia nada por si só. O bloqueio real é feito pelos bouncers — componentes separados que aplicam as decisões do motor no nível adequado (firewall, aplicação, proxy). Esta separação permite escalar e escolher o ponto de aplicação ideal.

Bouncer iptables (padrão Linux)

sudo apt install crowdsec-firewall-bouncer-iptables -y
sudo systemctl enable --now crowdsec-firewall-bouncer

Este bouncer adiciona regras de iptables que dropam pacotes de IPs banidos. Funciona em qualquer distribuição Linux sem dependências adicionais. É a opção recomendada para servidores VPS e PME que usam iptables clássico.

Bouncer nftables (recomendado para Debian 12+/Ubuntu 22.04+)

sudo apt install crowdsec-firewall-bouncer-nftables -y
sudo systemctl enable --now crowdsec-firewall-bouncer

Sistemas modernos usam nftables como backend padrão. Este bouncer é mais eficiente em servidores com alto tráfego, pois nftables processa regras em espaço de kernel com melhor performance.

Bouncer nginx (bloqueio na camada de aplicação)

sudo apt install crowdsec-nginx-bouncer -y
sudo nginx -t && sudo systemctl reload nginx

O bouncer nginx devolve HTTP 403 em vez de bloquear no firewall. É útil quando se quer manter o IP acessível para serviços legítimos mas negar acesso web a IPs maliciosos. Ideal para servidores web com múltiplos vhosts.

Verificar decisões ativas

sudo cscli decisions list
sudo cscli bouncers list

O comando decisions list mostra todos os IPs actualmente banidos, a duração do banimento e o cenário que o triggered. bouncers list confirma que o bouncer está registado e a receber decisões do motor.

ℹ Dica: Pode combinar múltiplos bouncers no mesmo servidor — por exemplo, iptables para bloqueio de rede e nginx para bloqueio HTTP. As decisões são distribuídas a todos os bouncers registados.

Threat Intelligence Comunitária

A maior vantagem do CrowdSec face a ferramentas tradicionais é a threat intelligence comunitária. Quando qualquer instalação CrowdSec no mundo detecta um IP malicioso, essa decisão é enviada para a Central e redistribuída a todos os participantes. Um servidor numa PME em Portugal beneficia automaticamente dos ataques detectados por milhares de servidores globalmente.

Como funciona o fluxo

  1. O motor local detecta um ataque (ex: brute-force SSH) e gera uma decisão de banimento.
  2. A decisão é enviada anonimamente para a Central do CrowdSec.
  3. A Central agrega e valida a decisão (score, frequência, tipo de ataque).
  4. Todos os servidores comunitários recebem o IP na sua lista de bloqueio local.
  5. O bouncer local aplica o bloqueio — o IP nunca chega a atacar o seu servidor.

Verificar listas comunitárias ativas

sudo cscli capi status
sudo cscli metrics --capi

O capi status mostra se a ligação à Central está activa e quantos IPs comunitários estão a ser recebidos. Em 2026, a comunidade CrowdSec processa mais de 2 milhões de decisões por dia, cobrindo ataques SSH, web crawlers maliciosos, scanners de vulnerabilidades e bots de credenciais.

Adicionar listas de bloqueio personalizadas

sudo cscli parsers install crowdsecurity/whitelist-good-ips
sudo systemctl reload crowdsec

Para além das listas comunitárias, pode instalar coletores adicionais do CrowdSec Hub — o repositório oficial de cenários, parsers e listas mantidos pela comunidade. Há coletores para WordPress, CPanel, Postfix, Traefik e muitos outros serviços comuns em PME.

ℹ Importante: A participação na threat intelligence comunitária é automática após instalação. Não é necessário configurar nada extra — o motor envia decisões e recebe listas por defeito. Pode desactivar o envio de dados em /etc/crowdsec/config.yaml se houver requisitos de privacidade ou compliance.

Erros Comuns

A tabela seguinte resume os problemas mais frequentes ao implementar CrowdSec em servidores PME, a causa provável e a solução recomendada.

Problema Causa provável Solução
Bouncer não bloqueia IPs Bouncer não registado no motor Verificar cscli bouncers list e reiniciar o serviço do bouncer
Falsos positivos em IPs legítimos Cenário demasiado agressivo Adicionar IP a whitelist: cscli decisions add --ip X.X.X.X --type ban ou ajustar threshold no cenário
Erro “api client not found” Registo no Console expirado ou inválido Re-gerar token em app.crowdsec.net e executar cscli console enroll NOVO-TOKEN
Alto consumo de CPU Muitos coletores activos para serviços inexistentes Remover coletores não usados: cscli collections remove crowdsecurity/COLETOR
IP próprio banido por engano Brute-force SSH de IP corporativo legítimo Adicionar IP à whitelist permanente em /etc/crowdsec/parsers/s02-enrich/whitelist.yaml
Bouncer nftables não arranca Conflito com regras iptables legadas Migrar totalmente para nftables ou usar bouncer iptables; não misturar os dois
Decisões não aparecem no Console Lagent não consegue ligar à Central Verificar DNS e conectividade: sudo cscli capi status e firewall de saída na porta 443
Logs não processados Parser não instalado para o serviço Instalar parser do Hub: cscli parsers install crowdsecurity/SERVICO

⚠ Aviso: Nunca adicionar o IP público do seu escritório à lista de bloqueio. Adicione sempre à whitelist em whitelist.yaml antes de testar cenários agressivos, para evitar ficar sem acesso SSH ao servidor.

O CrowdSec representa a evolução natural do conceito Fail2ban para 2026: detecção local inteligente combinada com inteligência de ameaças partilhada em tempo real. Para PME com infraestrutura cloud ou on-premise, oferece proteção enterprise sem custo de licença, com instalação em minutos e baixo consumo de recursos. A chave do sucesso está em instalar os bouncers correctos, manter os coletores actualizados e configurar whitelists para IPs corporativos legítimos.