Instalando CrowdSec com pfSense: o casamento improvável que funciona

Você já pensou em juntar o pfSense — nosso firewall de guerra — com uma solução de defesa comportamental e colaborativa como o CrowdSec?

A integração exige um pouco de criatividade técnica, mas no final das contas entrega um nível de proteção difícil de bater. Bora pro passo a passo?

O que é o CrowdSec?

O CrowdSec funciona como um “fail2ban bombado”. Ele analisa os logs do sistema em tempo real, identifica comportamentos maliciosos e responde automaticamente com bloqueios.

A diferença? Ele compartilha os IPs identificados com toda a comunidade. Resultado: um firewall colaborativo, que aprende com ataques registrados por outros administradores ao redor do mundo.

E onde entra o pfSense?

O pfSense, como você já deve saber, não roda o CrowdSec nativamente. Mas isso não impede a integração! O segredo está em:

  • Enviar os logs do pfSense para um servidor Linux
  • Instalar o CrowdSec nesse servidor
  • Configurar um bouncer que se comunique com o pfSense (via API ou SSH)

Pré-requisitos

  • pfSense CE 2.7.2 (ou compatível)
  • Um servidor/VM Linux (Debian/Ubuntu)
  • Acesso SSH ou API do pfSense liberada
  • Café ou chimarrão à mão ?

Configurando o envio de logs no pfSense

No pfSense:

  1. Vá até Status > System Logs > Settings
  2. Ative a opção Enable Remote Logging
  3. Insira o IP do servidor Linux e porta (514/UDP)
  4. Marque os logs que deseja enviar (Firewall, DHCP, etc.)

Instalando o CrowdSec no Linux

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

Criando um parser personalizado (opcional)

Se os logs estiverem sendo recebidos corretamente, mas o CrowdSec não os interpreta bem, pode ser necessário criar um parser personalizado:

sudo nano /etc/crowdsec/parsers/s01-parse/pfsense.yaml

Bloqueando IPs no pfSense com o CrowdSec

Opção A: via SSH + pfctl

Configure um script no bouncer que use o comando pfctl para criar regras de bloqueio:

ssh admin@firewall 'pfctl -t crowdsec_blocklist -T add 192.0.2.123'

Opção B: via API REST (se ativada no pfSense)

Use a API do pfSense para criar aliases dinamicamente com os IPs bloqueados. Esse método exige cuidado com autenticação e TLS.

Dica: testando o sistema

Você pode simular um scan malicioso com o nmap a partir de outro host:

nmap -Pn -p- <ip_do_pfsense>

Visualizando os bloqueios

cscli decisions list

Conclusão

Juntar pfSense com CrowdSec é como fazer um firewall clássico aprender kung fu moderno. O processo exige uma ponte (via logs), mas te dá:

  • Detecção baseada em comportamento
  • Bloqueio automático e colaborativo
  • Um toque de inteligência a um firewall que já é robusto por si só

Se curtiu ou testou esse cenário, comenta aí ou me chama nas redes! Vamos afiar essa integração juntos.