×

🛡 API Guard

Rate limit · Bot detect · Geo

🛡 Ochrana IPTV API — Rate Limiting & Bot Detection

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.

Konfigurácia bezpečnosti

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 Firewall

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 Ochrana pred útokmi

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ť.

Obmedzenia multicast smerovania

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.

Architektúra CDN siete

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é