Rate limit · Bot detect · Geo

Arhitectură
Multiplicatorul burst (implicit 1,5×) permite vârfuri scurte — ex. limita auth conținut 120 → plafon burst 180/min.
Moduri — Monitor vs Enforce
monitorizare
dar permite trecerea cererii
impunere
Semnale de detectare roboți
User-Agent gol — blochează clienții care nu se identifică.
Subșiruri UA cunoscute pentru roboți — detectează curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (fără distincție majuscule/minuscule).
Accept-Language lipsă — browserele reale îl trimit întotdeauna; majoritatea scripturilor nu.
Accept-Encoding lipsă — la fel ca mai sus.
Regex blocare personalizat — propriul model (fără distincție majuscule/minuscule) ex. scraper|harvester|probe.
Regex permis personalizat — dacă este setat, ORICE UA care nu corespunde este respins (allowlist strict).
Dacă o integrare specifică nu poate trimite un UA normal (ex. un job de fundal legitim), adăugați IP-ul în whitelist în loc să relaxați semnalele bot global.
Liste IP / Geo / ASN
Blacklist — CIDR-uri care primesc 403 imediat, fără contor consumat. Util pentru ofensatori persistenți.
Țări blocate — coduri ISO-2 rezolvate prin GeoIP local. Gol = fără blocare geo.
ASN-uri blocate — furnizori de hosting/VPN (ex. AS14061 Digital Ocean, AS16509 Amazon). Rezolvate prin GeoIP.
Referință chei Redis
Ghid operațional
Prima activare: setați mode = monitor, activați limitarea ratei. Așteptați 24–48 h.
Revizuiți telemetria: sparkline arată când ar apărea vârfuri 429; tabelul Top-10 ofensatori arată infractorii repetați. Ajustați limitele dacă utilizatorii legitimi le ating.
Enforce soft: setați mode = enforce cu limite de 2× mai mari decât ținta. Urmăriți sparkline + canalul de suport 2–3 zile.
Enforce final: strângeți limitele la valorile de producție. Păstrați violations_before_block la 3 (implicit) pentru a absorbi vârfuri ocazionale.
Răspuns la incident: atacuri IP → adăugați în textarea Blacklist și salvați (se propagă la nginx în ≤5 s prin Redis).
Deblocare fals pozitiv: IPTV Settings → Security → Top offenders → Unblock. Șterge rl:blocked:{ip} + rl:violations:{ip}.
Fișiere de implementare
Chei de configurare persistate (iptv_defaults)
Toate stocate sub prefixul sec.*. Salvate la fiecare click UI.
Prezentare securitate
Prezentare generală a securității sistemului.
Informație UFW.
Informație fail2ban.
Informație multicast.
Informație CDN.
Cele mai bune practici
Lista de cele mai bune practici.