Rate limit · Bot detect · Geo

Architektúra
Burst multiplikátor (default 1.5×) povoľuje krátke špičky — napr. content auth limit 120 → burst strop 180/min.
Režimy — Monitor vs Enforce
monitorovať
ale prepustí request
vynútiť
Signály detekcie botov
Prázdny User-Agent — blokuje klientov ktorí sa neidentifikujú.
Známe bot UA podreťazce — matchuje curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (case-insensitive).
Chýbajúci Accept-Language — reálne prehliadače ho vždy posielajú; väčšina skriptov nie.
Chýbajúci Accept-Encoding — to isté ako vyššie.
Vlastný block regex — tvoj vlastný vzor (case-insensitive) napr. scraper|harvester|probe.
Vlastný allow regex — ak je nastavený, akýkoľvek UA ktorý nematchuje je odmietnutý (striktný allowlist).
Ak konkrétna integrácia nemôže posielať normálny UA (napr. legitímny background job), whitelistni jej IP namiesto globálneho uvoľnenia bot signálov.
IP / Geo / ASN zoznamy
Blacklist — CIDR ktoré dostanú 403 okamžite, bez minutia countera. Užitočné pre opakovaných narušiteľov.
Blokované krajiny — ISO-2 kódy rozlíšené cez lokálny GeoIP. Prázdne = žiadny geo block.
Blokované ASN — hosting / VPN provideri (napr. AS14061 Digital Ocean, AS16509 Amazon). GeoIP-rozlíšené.
Referencia Redis kľúčov
Operačný runbook
Prvé zapnutie: nastav mode = monitor, zapni rate limiting. Počkaj 24–48 h.
Skontroluj telemetriu: sparkline ukazuje kedy nastávajú would-be-429 špičky; tabuľka Top-10 narušiteľov ukazuje opakovaných. Uprav limity ak na ne narážajú legitímni používatelia.
Enforce soft: nastav mode = enforce s limitmi 2× vyššími než cieľ. Sleduj sparkline + support kanál 2–3 dni.
Enforce final: stiahni limity na produkčné hodnoty. Drž violations_before_block na 3 (default) na absorpciu občasných špičiek.
Reakcia na incident: IP útoky → pridaj do Blacklist textarea a ulož (propaguje sa do nginx za ≤5 s cez Redis).
Odblokovanie false positive: IPTV Settings → Security → Top offenders → Unblock. Vyčistí rl:blocked:{ip} + rl:violations:{ip}.
Implementačné súbory
Perzistované config kľúče (iptv_defaults)
Všetko uložené pod prefixom sec.*. Ukladané pri každom kliku v UI.
Prehľad
Stream Manager používa UFW (Uncomplicated Firewall) na riadenie prístupu k sieti a fail2ban na prevenciu prienikov. Spoločne chránia server pred neoprávneným prístupom a útokmi hrubou silou.
UFW kontroluje, aká sieťová prevádzka môže dosiahnuť server.|Predvolené pravidlá: HTTP (80), HTTPS (443) a Media Server (8080) sú otvorené pre všetkých. SSH (22) je obmedzený len na interné a CDN siete.|Multicast prevádzka (224.0.0.0/4) je obmedzená na dôveryhodné zdrojové siete.|Pravidlá spravujte v Config > Bezpečnosť alebo cez príkazový riadok s 'sudo ufw'.
fail2ban monitoruje log súbory pre opakované zlyhania autentifikácie a automaticky blokuje útočiace IP adresy.|Väznica sshd chráni SSH prístup blokovaním IP po viacerých neúspešných pokusoch o prihlásenie.|Používa nftables backend pre efektívne filtrovanie paketov.|Zablokované IP sa dajú manuálne odblokovať v Config > Bezpečnosť.
Multicast prevádzka (224.0.0.0/4) je obmedzená na dve dôveryhodné siete:|10.0.0.0/8 - Interná sieť pre lokálne zdroje streamov a správu.|147.78.168.0/22 - CDN sieť pre distribúciu na edge servery.|Toto zabraňuje neoprávneným multicast zdrojom vkladať prevádzku do streaming pipeline.
CDN sieť (147.78.168.0/22) sa používa na distribúciu streamov na edge servery.|SSH prístup je povolený z CDN IP adries pre vzdialenú správu.|Multicast presmerovanie je povolené medzi internou a CDN sieťou.|Všetka ostatná prevádzka z CDN podlieha štandardným pravidlám firewallu.
Najlepšie postupy
Majte UFW stále zapnutý|Obmedzte SSH prístup len na známe siete|Pravidelne kontrolujte fail2ban väznice pre vzory útokov|Používajte silné heslá a SSH autentifikáciu kľúčom|Pravidelne kontrolujte pravidlá firewallu a odstraňujte nepoužívané|Udržujte balíky fail2ban a UFW aktualizované