×

🛡 API Guard

Rate limit · Bot detect · Geo

Protecție IPTV

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.

Securitate

Prezentare securitate

Prezentare generală a securității sistemului.

UFW

Informație UFW.

Fail2ban

Informație fail2ban.

Multicast

Informație multicast.

CDN

Informație CDN.

Cele mai bune practici

Lista de cele mai bune practici.