Marvin Pascale

[B.Log]

03 Giugno 2022

Crowdsec e Cloudflare

Crowdsec_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.

Cloudflare_token

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

Cloudflare_api

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

sec_list

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: