Rate limit · Bot detect · Geo

Architettura
Il moltiplicatore burst (default 1.5×) consente brevi picchi — es. limite autenticazione contenuti 120 → soglia burst 180/min.
Modalità — Monitor vs Applica
monitor
ma lascia passare la richiesta
applica
Segnali di rilevamento bot
User-Agent vuoto — blocca i client che non si identificano.
Sottostringhe UA bot note — corrisponde a curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (senza distinzione maiuscole/minuscole).
Accept-Language mancante — i browser reali lo inviano sempre; la maggior parte degli script no.
Accept-Encoding mancante — come sopra.
Regex di blocco personalizzata — il tuo pattern (senza distinzione maiuscole/minuscole) es. scraper|harvester|probe.
Regex di permesso personalizzata — se impostata, qualsiasi UA che non corrisponde viene rifiutato (lista bianca rigida).
Se una specifica integrazione non può inviare un UA normale (es. un job in background legittimo), mettere in whitelist il suo IP invece di allentare i segnali bot globalmente.
Liste IP / Geo / ASN
Lista nera — CIDR che ottengono 403 immediatamente, nessun contatore speso. Utile per i trasgressori persistenti.
Paesi bloccati — codici ISO-2 risolti tramite GeoIP locale. Vuoto = nessun blocco geo.
ASN bloccati — provider di hosting / VPN (es. AS14061 Digital Ocean, AS16509 Amazon). Risolto via GeoIP.
Riferimento chiavi Redis
Runbook operativo
Prima abilitazione: impostare modalità = monitor, abilitare la limitazione della frequenza. Attendere 24–48 ore.
Revisione telemetria: il grafico sparkline mostra quando si verificherebbero i picchi 429; la tabella Top-10 trasgressori mostra i recidivi. Regolare i limiti se gli utenti legittimi li stanno raggiungendo.
Applicazione graduale: impostare modalità = applica con limiti 2× superiori al target. Osservare il grafico sparkline + canale supporto per 2–3 giorni.
Applicazione finale: stringere i limiti ai valori di produzione. Mantenere violations_before_block a 3 (default) per assorbire picchi occasionali.
Risposta agli incidenti: attacchi IP → aggiungere alla textarea Lista nera e salvare (si propaga a nginx in ≤5 s via Redis).
Sblocco falso positivo: Impostazioni IPTV → Sicurezza → Top trasgressori → Sblocca. Cancella rl:blocked:{ip} + rl:violations:{ip}.
File di implementazione
Chiavi di config persistenti (iptv_defaults)
Tutte memorizzate con prefisso sec.*. Salvate ad ogni click UI.
Panoramica
Stream Manager utilizza UFW per controllo accessi rete e fail2ban per prevenzione intrusioni
UFW controlla quale traffico di rete è consentito. Regole predefinite: HTTP (80), HTTPS (443), servizi multimediali
fail2ban monitora i file di log per tentativi falliti e banna automaticamente gli IP. Jail sshd, nginx-http-auth, nginx-badbot configurati
Il traffico multicast (224.0.0.0/4) è limitato a due reti: 10.0.0.0/8 (interna), 172.16.0.0/12 (backup)
La rete CDN (147.78.168.0/22) è utilizzata per distribuire gli stream. SSH consentito dagli IP CDN per manutenzione
Migliori pratiche
Mantenere UFW abilitato | Limitare SSH a reti note | Monitorare fail2ban | Aggiornare il sistema | Usare chiavi SSH