Cloudflare Rate Limiting: protezione brute-force e flood
Il Rate Limiting di Cloudflare permette di limitare il numero di richieste che un singolo IP, ASN o sessione può effettuare verso un'endpoint in un determinato intervallo di tempo. È lo strumento ideale per fermare brute-force su pagine di login, flood di API, scraping aggressivo e attacchi DDoS applicativi (Layer 7). Dal 2022 Cloudflare ha integrato Rate Limiting all'interno del WAF moderno con regole più flessibili.
Come funziona Rate Limiting
Una regola di rate limiting definisce: il pattern URL da proteggere, la soglia (richieste per finestra temporale), la durata del blocco e l'azione (Block, Challenge, Managed Challenge, JS Challenge, Log). Cloudflare tiene conteggi distinti per IP o per coppia IP+sessione e applica l'azione non appena la soglia viene superata. Sul piano Free è disponibile una regola; Pro, Business ed Enterprise sbloccano configurazioni più complesse.
Procedura passo-passo
- Vai su Security → WAF → Rate limiting rules.
- Clicca Create rule.
- Nomina la regola in modo descrittivo (es. "Brute force WP login").
- Definisci il filtro: URI Path equals /wp-login.php oppure più articolato.
- Imposta la soglia: 5 requests per 1 minute è un buon valore per login.
- Scegli l'azione: Block per 10 minuti.
- Aggiungi caratteristiche di counting: per IP o per IP+Header Cookie.
- Salva e monitora la scheda Events filtrando per Rate limiting.
- Aggiungi regole simili per /xmlrpc.php (50 req/min), /api/login (10 req/min), POST a /contact (3 req/min).
- Documenta le regole per il team con thresholds e ragioni.
Esempi di regole pratiche
WordPress wp-login.php: 5 richieste/minuto, block 10 minuti. Ferma efficacemente la maggior parte dei brute-force automatizzati. API generica: 100 richieste/minuto per IP non autenticato. Endpoint reset password: 3 richieste/ora per evitare abuse di invio email. Form contatti: 5 richieste/ora per IP. Search interna: 30 richieste/minuto per evitare scraping. XML-RPC: 10 richieste/minuto o blocco totale se non usato.
Counting characteristics avanzate
Oltre al conteggio per IP, Cloudflare permette di contare per JA3 fingerprint (firma del client TLS), per cookie session, per header custom. Questo è cruciale per proteggere da attacchi distribuiti che usano molti IP: la firma JA3 spesso identifica botnet anche con IP rotanti. Combinare IP + JA3 + User-Agent fornisce un conteggio molto preciso.
Errori comuni e come risolverli
- Utenti legittimi bloccati: soglia troppo bassa. Aumenta o usa Managed Challenge invece di Block.
- Rate limit bypass tramite IP multipli: l'attaccante usa botnet. Aggiungi conteggio per JA3 o pattern.
- NAT condiviso causa block: molti utenti dietro la stessa IP pubblica (azienda, scuola). Usa Challenge invece di Block.
- API mobile blocca utenti: app mobili spesso fanno polling. Aumenta soglia o esenta specifici endpoint.
- Bot legittimi (monitoring) bloccati: aggiungi exception per IP fidati o ASN dei provider monitoring.
Differenze tra Rate Limiting e WAF rules
Le WAF rules bloccano in base a pattern statici (regex, header, payload). Il Rate Limiting blocca in base a frequenza, quindi è efficace contro abusi che si camuffano da traffico legittimo. La combinazione delle due tipologie è essenziale: WAF blocca attacchi noti, Rate Limiting blocca attacchi distribuiti o nuovi.
Monitoraggio e tuning
Cloudflare fornisce un cruscotto dettagliato in Security Events con grafici per dominio e per regola. Conviene rivedere settimanalmente i grafici per identificare picchi anomali, soglie troppo restrittive, IP ricorrenti da bloccare manualmente. Esporta i log in formato JSON per analisi su strumenti esterni come Splunk o ELK.
Domande frequenti
D: Quante regole rate limiting nel piano Free?
R: Una regola con max 10.000 richieste/giorno bloccate. Il Pro ha 5 regole con limite più alto.
D: Posso esentare specifici IP?
R: Sì, con una WAF Skip rule che ha la stessa condizione path ma azione Skip e priorità superiore.
D: Il conteggio è per data center o globale?
R: È globale: Cloudflare aggrega in tempo reale tra tutti i POP.
D: Rate limiting si applica anche a richieste in HTTP/3?
R: Sì, è agnostico rispetto al protocollo HTTP.
Considerazioni operative finali
Quando applichi una configurazione di questo tipo in produzione è sempre buona norma seguire un'approccio incrementale: parti con un test su staging, monitora gli effetti per qualche giorno, poi estendi gradualmente al traffico live. La rete Cloudflare elabora ogni cambiamento in pochi secondi a livello globale, quindi le modifiche sono effettive quasi immediatamente, ma gli effetti collaterali su utenti reali possono richiedere ore o giorni per emergere. Annota nel runbook interno data, motivo e parametri di ogni modifica significativa. Una documentazione precisa accelera enormemente il troubleshooting futuro e facilita il passaggio di consegne tra membri del team.
Vale anche la pena ricordare che Cloudflare aggiorna frequentemente l'interfaccia del dashboard e le posizioni delle voci di menu. La logica e le funzionalità descritte in questa guida restano valide, ma il percorso esatto per raggiungere ogni opzione può variare leggermente nel tempo. In caso di difficoltà a trovare una specifica voce, utilizza la barra di ricerca interna del dashboard oppure consulta la documentazione ufficiale aggiornata. La community Cloudflare sul forum ufficiale e su Stack Overflow è inoltre molto attiva e offre spesso risposte rapide a problemi specifici di configurazione.
Per progetti complessi che coinvolgono più servizi Cloudflare contemporaneamente (CDN, Workers, WAF, Access, R2) conviene strutturare la configurazione come codice tramite Terraform o Pulumi. Questo permette versioning, code review, rollback atomici e deploy ripetibili tra environment. Per team con esigenze più semplici la gestione manuale via dashboard resta perfettamente valida, soprattutto se accompagnata da una checklist scritta delle impostazioni applicate. La scelta dell'approccio dipende dalle dimensioni del progetto e dal grado di automazione desiderato. L'importante è essere consistenti e mantenere tracciabilità delle modifiche effettuate.
Hai bisogno di aiuto?
Se vuoi configurare Cloudflare per il tuo sito con il team di G Tech Group, scrivici tramite il modulo di contatto.