⌂ Self-hosting

CrowdSec e fail2ban: difendere i servizi di casa esposti

Proteggere i servizi self-hosted esposti su Internet: leggere i log, bloccare chi abusa con fail2ban o CrowdSec, limitare le richieste, esporre meno.

Appena un servizio di casa diventa raggiungibile da Internet, nei log cominciano a comparire tentativi di accesso da indirizzi sconosciuti. Non è un attacco mirato: sono scansioni automatiche che provano password comuni, cercano pannelli di amministrazione dimenticati e vulnerabilità note. La prima difesa resta esporre il meno possibile. Per ciò che deve restare pubblico, strumenti come fail2ban e CrowdSec osservano i log e bloccano chi si comporta male, riducendo il rumore e il rischio.

Prima di tutto: ridurre l'esposizione

Nessuno strumento di blocco sostituisce una buona architettura. Prima di installare qualunque protezione conviene chiedersi:

  • Questo servizio deve davvero essere pubblico, o basta raggiungerlo tramite VPN?
  • Il pannello di amministrazione è separato dalla parte pubblica e accessibile solo dalla rete di casa?
  • Tutti gli account hanno password robuste e, dove possibile, un secondo fattore?
  • Il software è aggiornato?

Se la risposta alla prima domanda è «basta la VPN», il resto dell'articolo diventa quasi superfluo. Per i servizi da condividere con amici o parenti, invece, una difesa attiva ha senso.

Il principio comune: leggere i log

fail2ban e CrowdSec funzionano allo stesso modo di base: leggono i log dei servizi, riconoscono schemi sospetti e decidono di bloccare l'indirizzo che li produce. Esempi tipici di comportamenti riconoscibili:

  1. Molti tentativi di accesso falliti in pochi minuti.
  2. Richieste a percorsi inesistenti tipici di altri software, come pannelli di amministrazione di CMS che non si usano.
  3. Richieste con firme di vulnerabilità note.
  4. Un numero anomalo di richieste in un intervallo breve.

Perché funzionino, i log devono contenere l'indirizzo reale del client. Dietro un reverse proxy questo richiede attenzione: il servizio deve fidarsi delle intestazioni inviate dal proxy, altrimenti vedrà sempre l'indirizzo del proxy stesso e bloccherebbe se stesso.

fail2ban: semplice e locale

fail2ban è uno strumento storico e collaudato. Si configura con «jail», ognuna associata a un servizio: un filtro con espressioni regolari che riconosce le righe di log sospette, una soglia (per esempio cinque errori in dieci minuti) e un'azione, di solito una regola del firewall che blocca l'indirizzo per un certo tempo.

Pregi: è leggero, non dipende da servizi esterni e i filtri si scrivono a mano per qualunque applicazione. Limiti: ogni server impara solo da ciò che vede, e scrivere filtri affidabili per applicazioni web moderne può richiedere tempo.

CrowdSec: rilevamento e blocco separati

CrowdSec divide il lavoro in componenti distinti:

Componente Ruolo
Agente (security engine) Legge i log, applica gli scenari e prende decisioni
Collezioni Pacchetti di parser e scenari per servizi comuni
Bouncer (remediation component) Applica le decisioni: firewall, reverse proxy, pagina di verifica
Blocklist della comunità Elenco di indirizzi segnalati da altre installazioni

Il vantaggio della separazione è pratico: l'agente può girare su una macchina e i bouncer su altre, per esempio nel firewall e nel reverse proxy. Le collezioni pronte per servizi diffusi evitano di scrivere filtri a mano. La blocklist della comunità permette di bloccare in anticipo indirizzi già noti per comportamenti aggressivi, in cambio della condivisione dei propri segnali.

Lo strumento a riga di comando cscli permette di vedere cosa succede: quali decisioni sono attive, quali scenari si sono attivati e quali indirizzi sono stati bloccati.

Evitare di bloccare se stessi

Il rischio più concreto di questi strumenti è chiudere fuori proprio chi deve entrare. Alcune precauzioni:

  • Liste bianche: aggiungere la rete di casa e gli indirizzi della VPN tra quelli mai bloccati.
  • Durate ragionevoli: un blocco di qualche ora scoraggia le scansioni senza punire troppo un familiare che ha sbagliato password più volte.
  • Modalità di prova: osservare per qualche giorno cosa verrebbe bloccato prima di applicare le decisioni.
  • Accesso alternativo: tenere sempre un modo per entrare nel server anche se il firewall blocca tutto, per esempio dalla console locale.

Limitare le richieste al proxy

Oltre al blocco basato sui log, il reverse proxy può limitare il numero di richieste per indirizzo in un certo intervallo. È una difesa semplice contro chi prova password a raffica o scarica il sito in modo aggressivo. Conviene applicarla soprattutto alle pagine di accesso, lasciando più margine alle parti che caricano molte risorse, come le gallerie di foto.

Cosa questi strumenti non fanno

fail2ban e CrowdSec riducono il rumore e fermano gli attacchi automatici più comuni, ma non correggono una vulnerabilità del software, non proteggono da una password rubata e non vedono gli attacchi che non lasciano tracce nei log. Sono uno strato in più, non un sostituto di aggiornamenti, autenticazione forte ed esposizione minima.

In sintesi

  • Esporre il meno possibile resta la difesa più efficace.
  • fail2ban e CrowdSec leggono i log e bloccano gli indirizzi che abusano.
  • Dietro un reverse proxy i log devono riportare l'indirizzo reale del client.
  • CrowdSec separa rilevamento e blocco e offre scenari pronti e una blocklist condivisa.
  • Liste bianche e accesso alternativo evitano di chiudersi fuori.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche