Crowdsec e Opnsense: Uma história de integração e automatização.

Olá a todos.

No seguimento do post anterior sobre o CrowdSec, irei demonstrar esta semana como integrar a nossa plataforma central de alerting (neste caso a ingerir dados de um syslog centralizado), com os bouncer engines (firewalls) para mitigarem os ataques aos nossos sistemas.

Com o aumento das cyber threats, este tipo de segurança de rede tornou-se uma prioridade crucial para empresas e indivíduos. Integrar soluções de segurança eficientes e de fácil implementação é essencial para proteger infraestruturas de TI, sejam elas na nossa empresa, sejam elas no nosso homelab.
O CrowdSec é uma dessas soluções, que oferece uma abordagem colaborativa para a segurança cibernética, e sua integração com firewalls OPNsense pode aumentar significativamente a segurança da nossa rede de perímetro. Neste post, vamos explorar passo a passo como integrar o CrowdSec com OPNsense.

O que é CrowdSec?

 

CrowdSec - CrowdSec community

Como vimos num dos nossos últimos posts, o CrowdSec é uma plataforma de cybersecurity em código aberto que usa inteligência coletiva para detetar e mitigar ameaças. Ele analisa logs em tempo real, identifica comportamentos maliciosos e compartilha informações sobre essas ameaças com uma comunidade global de usuários. Com CrowdSec, as organizações podem fortalecer suas defesas com base em dados de segurança colaborativos.

O que é o/a OPNsense?

File:Opnsense-logo.svg - Wikipedia

O/A OPNsense é um/uma firewall de código aberto baseado em FreeBSD – e uma preferida minha – que oferece uma gama completa de funcionalidades de rede e segurança. Ela é conhecida por sua interface muito user friendly, atualizações regulares e um conjunto robusto de plugins que permitem a personalização de acordo com as necessidades específicas da rede.

E porque devo eu integrar CrowdSec com a minha OPNsense?

Integrar CrowdSec com OPNsense irá nos dar vários benefícios:

  • Proteção Avançada: Utilizando a inteligência coletiva do CrowdSec, é possível identificar e bloquear ameaças em tempo real.
  • Automação: Reduz a necessidade de intervenção manual, melhorando a eficiência operacional.
  • Escalabilidade: Fácil de integrar e escalonar conforme a rede cresce.
  • Comunidade: Beneficiar-se da comunidade global do CrowdSec, recebendo e contribuindo com informações sobre ameaças.

E quais os passos para Integrar CrowdSec com OPNsense?

Secure your Opnsense with Crowdsec - windgate

1. Preparação

Antes de iniciar a instalação e integração, certifiquem-se de que o vossos sistema OPNsense está atualizado e que têm acesso apropriado de administração ao mesmo.

2. Instalação do CrowdSec

A instalação do CrowdSec em OPNsense pode ser realizada via linha de comando. Para tal sigam os passos abaixo:

  • Acedam ao Sistema via SSH:
    Utilizem um cliente SSH para acessar ao terminal do OPNsense.
  • Instalem o CrowdSec:
    Adicionem o pacote e dependências do CrowdSec:

    pkg install crowdsec

3. Iniciem e Habilitem o CrowdSec:

Para iniciar o serviço CrowdSec e garantir que ele inicie automaticamente com o sistema, executem:

sysrc crowdsec_enable="YES"
service crowdsec start

4. Configuração do CrowdSec:

Depois de instalarem o agente CrowdSec, é necessário configurá-lo para que ele funcione corretamente com o OPNsense e para tal iremos integrar os logs do nosso servidor de syslog centralizado:

Nota: estou a assumir que teem ja o vosso servidor de syslog centralizado a funcionar, com o software crowdsec já instalado como descrito num dos nossos últimos posts.

– Configurem o CrowdSec para monitorizar os logs do OPNsense. Por exemplo, para monitorizar os logs de firewall:

cscli parsers install crowdsecurity/syslog-logs
cscli parsers install crowdsecurity/iptables-logs

Assim sendo, e para criar “filtros” para o crowdsec saber o que fazer, efetuem:

mkdir /etc/crowdsec/acquis.d/

No meu caso, o meu syslog centralizado recebe via rede e entrega os dados em ficheiros onde o crowdsec e outras ferramentas o irão processar e ingerir.
Assim sendo, criem um yaml file para fazer o ingest aos conteúdos e coloquem ele nessa diretoria com a extensão .yaml

filenames:
- "/var/log/ingest-*.log" ## no meu caso todos os ficheiros de syslog exportados são exportados com a sintaxe ingest-*.log
labels:
type: syslog

Nota: Lembrem-se que quanto maior a diversidade de parsers que configurem, maior será a rede que ele apanhará de eventuais tentativas de ataques.

Finalmente reiniciem o crowdsec para validar que ele está a ingerir corretamente os log files:

sudo systemctl reload crowdsec

5. Configurem o API endpoint da vossa instância de CrowdSec que irá efetuar as decisões de bloqueio:

Alterem o ficheiro /etc/crowdsec/config.yaml

http:
listen_uri: 0.0.0.0:8080 # mudem de 127.0.0.1 to 0.0.0.0 ou o ip especifico que querem que esteja a escuta.

6. Configurar o Bouncer (que é a firewall):

– O bouncer do CrowdSec é responsável por aplicar as decisões de bloqueio. No caso do OPNsense, é possível utilizar o plugin de bouncer específico para firewalls. Portanto instalem o bouncer na firewall:

pkg install crowdsec-firewall-bouncer

7- Configurem o bouncer para se conectar ao CrowdSec na firewall:

sysrc crowdsec_firewall_enable="YES"
service crowdsec_firewall start
cscli lapi register -u http://192.168.122.214:8080 # Este ip/porta é o ip/porta que definiram acima como acesso para a API. Garantam que teem conectividade IP/Porta para ele.

8 – No servidor de API (onde instalaram a vossa instancia de decisão de crowdsec – no meu caso no servidor de syslog centralizado) efetuem:

[root@api-server ~]# cscli machines list
---------------------------------------------------------------------------------------------------...
NAME IP ADDRESS LAST UPDATE STATUS ...
---------------------------------------------------------------------------------------------------...
saZs0PI7vwR6ocvPfLcOTVxVkVRUakRSOfxJe01abMyJmKUN 192.168.122.214 2023-07-05T14:15:36Z ✔️ v1.3.4...
ctdTNwS9xDaMGwskcZCBAyNr4abXn7CekNMYgcCNm4dhrT6l 192.168.122.246 2023-07-05T14:21:43Z 🚫 ...
---------------------------------------------------------------------------------------------------...
[root@lapi-server ~]# cscli machines validate ctdTNwS9xDaMGwskcZCBAyNr4abXn7CekNMYgcCNm4dhrT6l
INFO[05-07-2022 04:34:54 PM] machine 'ctdTNwS9xDaMGwskcZCBAyNr4abXn7CekNMYgcCNm4dhrT6l' validated successfully

Sendo que o bouncer (firewall) com o UID ctdTNwS9xDaMGwskcZCBAyNr4abXn7CekNMYgcCNm4dhrT6l é o que acabaram de registar agora mesmo. O vosso UID será diferente como é óbvio.

9 – Efetuem um restart aos agentes na firewall:

service crowdsec restart
service crowdsec_firewall restart

10. Testem a Configuração:

Verifiquem se o CrowdSec está a funcionar corretamente:

cscli metrics
cscli decisions list

11. Integração com a Interface OPNsense

  • Plugin OPNsense:
    Instalem o plugin do CrowdSec no OPNsense. Acedam a interface web do OPNsense, naveguem até **System > Firmware > Plugins** e procure por `os-crowdsec`.
    Instalem o plugin e configurem-o conforme necessário.
  • Configuração do Plugin:
    Após a instalação, configurem o plugin do CrowdSec através da interface do OPNsense. Naveguem até **Services > CrowdSec** e ajustem as configurações de acordo com vossas necessidades, como seleção de listas de bloqueio e ajustes de bouncer.

Monitorização e Manutenção

Como tudo na vida, este tipo de instalação por muito automatizada que seja, ira necessitar sempre de monitorização. Como tal recomendo que:

1. Monitorização de Logs:

Regularmente visualizem os logs do CrowdSec (pode ser feito em qualquer dos lados, embora eu pessoalmente prefira e recomendo do lado do API) para garantir que ele está a funcionar conforme esperado.

cscli alerts list

2. Atualizações e Manutenção:

Mantenham o CrowdSec e os pacotes do OPNsense atualizados para garantir a proteção contra as ameaças mais recentes. Usem para tal os comandos e em alternativa a webui da opnsense:

pkg update
pkg upgrade
cscli hub update

E na pratica, quais os benefícios da Integração CrowdSec e OPNsense?

A integração do CrowdSec com o OPNsense proporciona uma série de benefícios significativos para a nossa segurança de rede:

  • Deteção de Ameaças em Tempo Real: Com o CrowdSec, podemos detectar e mitigar ameaças em tempo real, utilizando a inteligência coletiva da comunidade global.
  • Automatização das Regras de Firewall: O bouncer do CrowdSec pode automatizar a aplicação de regras de firewall com base nas decisões de segurança, reduzindo a necessidade de intervenção manual e aumentando a eficiência.
  • Melhoria Contínua: Ao participar da comunidade CrowdSec, estamos a contribuir para a base de dados global de ameaças, ajudando a melhorar continuamente a eficácia da plataforma para todos os utilizadores.
  • Flexibilidade e Escalabilidade: A integração é flexível e pode ser escalada conforme necessário, permitindo que adicionemos novos parsers, bouncers e outras funcionalidades à medida que a nossa rede cresce. Hell, até plugins para bloqueio via cloudflare tem agora 😀

 

Chegamos ao fim de mais um post semanal. Neste vimos como integrar o CrowdSec com firewalls OPNsense de perímetro e como isso é uma maneira eficaz de fortalecer a segurança da nossa rede.
Com a inteligência coletiva do CrowdSec e as robustas funcionalidades de firewall do OPNsense, podemos criar uma camada de defesa poderosa contra cyberattacks. Este guia detalha os passos necessários para realizar essa integração, desde a instalação inicial até a configuração e monitorização continua, garantindo que sua rede esteja protegida contra ameaças emergentes.

Ao seguir esses passos, nós estaremos  numa posição sólida para defender a nossa infraestrutura contra uma ampla gama de ataques, utilizando uma abordagem colaborativa e automatizada até para capítulos tão importantes como a cybersecurity.. Com o CrowdSec e o OPNsense a trabalhar juntos, nos podemos ter mais um bocadinho de confiança que a nossa rede está bem protegida.

Até a próxima semana, e já sabem. Alguma coisa incorreta, sabem onde me encontrar.
Um abraço

Nuno