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
- Instalar CrowdSec
- Bouncers e Bloqueio
- Threat Intelligence Comunitária
- Erros Comuns
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
- O motor local detecta um ataque (ex: brute-force SSH) e gera uma decisão de banimento.
- A decisão é enviada anonimamente para a Central do CrowdSec.
- A Central agrega e valida a decisão (score, frequência, tipo de ataque).
- Todos os servidores comunitários recebem o IP na sua lista de bloqueio local.
- 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.