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?
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?
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?
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