Crowdsec e Cloudflare
Abbiamo già parlato di Crowdsec e oggi vedremo come installare e configurare il buttafuori di Cloudflare.
Cloudflare è una CDN (una rete globale per distribuire contenuti web) che mette a disposizione vari servizi che tra le altre cose permettono di gestire le zone dns, distribuire contenuti web, proteggere le applicazioni e le infrastrutture.
Ci sono varie modalità di abbonamento e quello che vi mostrerò è realizzabile a partire dall’account free.
Come prima cosa generiamo un token partendo da questa pagina inserendo i giusti permessi.
Salviamo e mettiamo al sicuro il token appena generato e recuperiamo gli id della zona e dell’account partendo dalla scheda “Panoramica” della zona. Esiste una guida in inglese
Installazione e configurazione
Daremo per già eseguita l’installazione di Crowdsec api su una macchina Debian 11.
Installiamo il bouncer
# apt install crowdsec-cloudflare-bouncer
A questo punto non ci resta che configurare il nostro buttafuori: editiamo il file /etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml
# CrowdSec Config
crowdsec_lapi_url: http://localhost:8080/
crowdsec_lapi_key: ${LAPI_KEY}
crowdsec_update_frequency: 10s
# Cloudflare Config.
cloudflare_config:
accounts:
- id: [ID]
token: [TOKEN]
ip_list_prefix: crowdsec
default_action: challenge
zones:
- actions:
- challenge # valid choices are either of challenge, js_challenge, block
zone_id: [ZONE_ID]
update_frequency: 30s # the frequency to update the cloudflare IP list
# Bouncer Config
daemon: true
log_mode: file
log_dir: /var/log/
log_level: info # valid choices are either debug, info, error
cache_path: /var/lib/crowdsec/crowdsec-cloudflare-bouncer/cache/cloudflare-cache.json
prometheus:
enabled: false
listen_addr: 127.0.0.1
listen_port: 2112
Le cose su cui soffermarsi sono:
- id : L’id dell’account;
- token : il token generato per crowdsec;
- zone_id: l’id della zona che vogliamo proteggere;
- prometeus. Se non ci interessa disabilitiamolo.
Avviamo il servizio
# systemctl start crowdsec-cloudflare-bouncer
se tutto va come deve andare troveremo la lista nella sezione sicurezza della zona configurata
Gestire più zone
Se volessimo gestire più zone dobbiamo modificare leggermente il file di configurazione
...
# Cloudflare Config.
cloudflare_config:
accounts:
- id: [ID]
token: [TOKEN]
ip_list_prefix: crowdsec
default_action: challenge
zones:
- zone_id: [ZONE1_ID]
actions:
- challenge
- zone_id: [ZONE2_ID]
actions:
- challenge
[...]
...
diamo per scontato che le zone appartengano allo stesso account.
Nel caso in cui avessimo già avviato il servizio troverete il file di cache /var/lib/crowdsec/crowdsec-cloudflare-bouncer/cache/cloudflare-cache.json; conviene fermare il servizio, eliminare il file di cache e farlo ripartire, in modo da forzare la rilettura della configurazione.
NB: sembra che questo non sia più necessario per le versioni successive alla 0.1.0.
Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.
Risorse: