×

🛡 API Guard

Rate limit · Bot detect · Geo

🛡 IPTV API apsauga — greičio apribojimas ir robotų aptikimas

Architektura

Papildymo daugintuvas (numatytasis 1,5x) leidzia trumpus suolius — pvz. turinio autentifikacijos limitas 120 -> papildymo lubos 180/min.

Rezimai — Stebejimas vs Vykdymas

stebėti

taciau praleido uzklausas

priversti

Roboto aptikimo signalai

Tuscias User-Agent — blokuoja klientus, kurie saves neidentifikuoja.

Zinomu robotu UA posekiai — atitinka curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper.

Trukstamas Accept-Language — tikros narsykles ji visada siuncia; dauguma skriptu — ne.

Trukstamas Accept-Encoding — tas pats kaip auksciau.

Pasirinkinis blokavimo regex — jusu sablonas (neatsizvelgiant i didziasias/mazasias raides), pvz. scraper|harvester|probe.

Pasirinkinis leidimo regex — jei nustatytas, bet kuris UA, kuris neatitinka, atmetamas (grietas leidimu sarasas).

Jei konkrrti integracija negali siusti iprasto UA (pvz., teiseta fonine uzduotis), vietoj to i baltaji sarasa itraukite jos IP.

IP / Geo / ASN sarasai

Juodasis sarasas — CIDR adresai, kurie gauna 403 iskarto, be skaitiklio. Naudingas nuolatiniems pazeidejams.

Blokuotos salys — ISO-2 kodai, nusprEndziami per vietine GeoIP. Tuscia = jokio geo blokavimo.

Blokuoti ASN — prieglobos / VPN teikeejai (pvz. AS14061 Digital Ocean, AS16509 Amazon). GeoIP nusprendziami.

Redis raktu nuoroda

Operacinis vadovas

Pirmasis ijungimas: nustatykite rezima = monitor, ijunkite greicio ribojima. Palaukite 24-48 val.

Perziurekite telemetrija: kibirkstiu grafikas rodo, kada atsiranda 429 suoliai. Koreguokite limitus, jei teiseti vartotojai juos pasiekia.

Svelniai vykdyti: nustatykite rezima = enforce su limitais 2x auksciau tikslo. Stebeklite kibirkstiu grafika 2-3 dienas.

Galutinis vykdymas: sumazinkite limitus iki gamybos reiksmiu. Palikite violations_before_block ties 3 (numatytasis).

Incidentu reagavimas: IP atakos -> pridekite i Blacklist teksta ir issaugokite (platinama i nginx per <=5 s per Redis).

Atblokuoti klaidingai teigiama: IPTV Nustatymai -> Saugumas -> Didziausi paziedejai -> Atblokuoti.

Igyvendinimo failai

Islaikytos konfiguuracijos raktai (iptv_defaults)

Visi saugomi po prefiksu sec.*. Issaugoma kiekvienam UI paspaudimui.

Security Konfigūracija

Apžvalga

Srauto valdytojas uses UFW (Uncomplicated Firewall) for tinklas access control and fail2ban for intrusion prevention. Together they protect the serveris from unauthorized access and brute-force attacks.

UFW ugniasienį

UFW controls which tinklas traffic is allowed to reach the serveris.|Numatytasis taisyklės: HTTP (80), HTTPS (443), and Media Serveris (8080) are atidaryti to visi. SSH (22) is restricted to internal and CDN networks only.|Daugiaadresinis siuntimas traffic (224.0.0.0/4) is restricted to trusted šaltinis networks.|Manage taisyklės from Config > Security tab, or via komanda line with 'sudo ufw'.

fail2ban įbrėžimo prevencija

fail2ban monitors žurnalas failai for repeated authentication failures and automatically bans offending IP addresses.|The sshd jail protects SSH access by banning IPs after multiple nepavyko prisijungti attempts.|Uses nftables backend for efficient packet filtering.|Banned IPs can be manually unbanned from Config > Security tab.

Daugiaadresinis siuntimas Routing Restrictions

Daugiaadresinis siuntimas traffic (224.0.0.0/4) is restricted to two trusted networks:|10.0.0.0/8 - Internal tinklas for local srautas sources and management.|147.78.168.0/22 - CDN tinklas for edge serveris distribution.|This prevents unauthorized multicast sources from injecting traffic into the streaming pipeline.

CDN Tinklas Architecture

The CDN tinklas (147.78.168.0/22) is used for distributing srautai to edge servers.|SSH access is allowed from CDN IPs for remote management.|Daugiaadresinis siuntimas forwarding is enabled between internal and CDN networks.|Visi other traffic from CDN follows standard firewall taisyklės.

Geriausia praktika

Keep UFW enabled at visi times|Restrict SSH access to known networks only|Monitor fail2ban jails regularly for attack patterns|Use strong passwords and raktas-based SSH authentication|Review firewall taisyklės periodically and pašalinti unused entries|Keep fail2ban and UFW packages updated