CrowdSec é um Intrusion Prevention System (IPS) colaborativo, gratuito e open-source que analisa comportamentos e responde ataques baseado em dados compartilhados por sua grande comunidade de utilizadores. Para conhecer mais sobre este projeto clique aqui.

Como parceira oficial CrowdSec, a Cloudfence incluiu em seus repositórios o plugin para facilitar o processo de instalação. Com isto a instalação do plugin CrowdSec será feito 100% através da interface Web do OPNsense.

Nota
Apesar de incluído no repositório da Cloudfence, o plugin e seus respectivos pacotes de dependência são obtidos do repositório oficial da CrowdSec.


Pré-requisitos


Para instalar o plugin, é necessário que o repositório Cloudfence esteja instalado no OPNsense (versão 22.1). Caso, ainda não tenha o repositório Cloudfence ativo, basta seguir estes passos:


Introdução ao CrowdSec


Através da análise dos logs monitorizados, o CrowdSec detecta e faz o bloqueio de possíveis comportamentos malíciosos identificados. 

A figura abaixo, retirada da documentação oficial do projeto, ilustra o funcionamento da pilha CrowdSec:

Image Placeholder


Alguns conceitos importantes, da arquitetura da solução:

  • Scenarios: o "scenarios" são arquivos em formato YAML que permitem a detecção de comportamentos específicos (ataque por ex.) nos logs analisados para posteriormente produzir um alerta.
  • Decision: uma "decision" é a definição da ação a ser tomada contra um possível ofensor.
  • CrowdSec Agent - O agente faz a interação entre a API local, CLI local, os bouncers e com a API central da CrowdSec, compartilhando e consumindo dados com a central.
  • Bouncers - O "bouncer" é que toma uma ação que é disparada por um alerta consultando as "decisions" na API local do agente.


Instalação do CrowdSec no OPNsense


Com o repositório Cloudfence ativo e instalado, na  console Web do OPNsense, vá até a página System / Firmware e clique na aba Plugins:

Image Placeholder
Fig. 2 - System: Firmware

  • Para facilitar a localização do plugin, na caixa de pesquisa, digite: "crowd".
  • Clique no botão '+'  do plugin os-crowdsec para adicionar o plugin ao OPNsense - o plugin será instalado já com os pacotes de dependência (crowdsec e crowdsec-firewall-bouncer)

Será exibido um aviso que este plugin é fornecido por um terceiro (fora do repositório oficial OPNsense):


Image Placeholder
Fig. 3 - Confirmação de instalação

Caso concorde em continuar, será necessário clicar no botão Install


Configuração


Após instalado, a página de configuração do plugin deve ser acessada através do caminho - Service / CrowdSec / Settings aba Settings:


Image Placeholder
Fig. 4 - Services: CrowdSec: Settings

O plugin para OPNsense é composto por dois componentes: o agente CrowdSec e o Firewall Bouncer.

Ao habilitarmos o CrowdSec agent e o Firewall Bouncer iremos proteger o OPNsense contra milhares de endereços IPs de atacantes conhecidos (base de dados compartilhada da CrowdSec). O plugin no OPNsense por padrão tem a capacidade de analisar os logs dos acessos SSH e da WebGUI para detectar se há algum possível ataque de brute-force.

Para ativar o serviço marque as opções:

Image Placeholder
Fig. 5 - Services: CrowdSec: Settings

Marque as opções:

  1. Enable CrowdSec Agent
  2. Enable CrowdSec Firewall Bouncer
  3. Clique no botão Save

Serão criados dois novos Aliases de firewall: crowdsec_blacklists e crowdsec6_blacklists. O conteúdo destes aliases pode ser verificado em Firewall / Diagnostics / Aliases:

Image Placeholder
Fig. 6 - Firewall: Diagnostics: Aliases

Para bloquear a comunicação com os IPs destes Aliases, basta criar uma regra de firewall.

Exemplo de regras de bloqueio:


Image Placeholder
Fig. 7 - Firewall: Rules: Floating


Conclusão


Feito isto, seu OPNsense já conta com a proteção da CrowdSec!