CrowdSec su più server¶
L'obiettivo¶
Più server indipendenti, ciascuno con il proprio CrowdSec, e un solo pannello in casa che ne mostra blocchi e avvisi. I server non devono poter raggiungere la rete di casa.
Lo schema¶
- Su ogni server: CrowdSec con la sua API locale (LAPI) e un bouncer per il firewall.
- In casa: un'interfaccia web che si collega alle LAPI dei server attraverso la rete privata.
Il collegamento parte sempre da casa.
Passi su ogni server¶
- Installare CrowdSec dal repository ufficiale. Alcune distribuzioni propongono una versione molto vecchia dal proprio repository: in quel caso fissare la priorità di quello ufficiale con un file in
/etc/apt/preferences.d/. - Installare le collezioni adatte ai servizi presenti (SSH, server web, posta).
- Dichiarare i log da leggere in
/etc/crowdsec/acquis.d/. Per un proxy in container si può leggere il log del container. - Installare il bouncer nftables. Agganciarlo anche alla catena
forward, altrimenti le porte pubblicate dai container restano scoperte. - Creare una lista bianca in
/etc/crowdsec/parsers/s02-enrich/con il proprio indirizzo pubblico, gli altri server e la rete privata. Se l'indirizzo di casa è dinamico va aggiornata quando cambia. - Far ascoltare la LAPI anche sull'interfaccia della rete privata, e chiuderla a Internet con il firewall.
- Creare un'utenza macchina per l'interfaccia web e aggiungere l'indirizzo privato di casa ai
trusted_ips.
Insidie¶
- Porta occupata. La LAPI usa la 8080, spesso già presa da un server web. Si sposta nel file di configurazione, e va cambiata anche nelle credenziali locali del client.
- Siti dietro una CDN. Nei log compare l'indirizzo della CDN, non quello del visitatore. Il server web va configurato per fidarsi dell'intestazione con l'indirizzo reale solo quando la richiesta arriva dalle reti della CDN.
- Chiudersi fuori. La lista bianca va creata prima di attivare il bouncer.