×

🛡 API Guard

Rate limit · Bot detect · Geo

🛡 IPTV API-skydd — Hastighetsbegränsning & Botdetektering

Arkitektur

Burst-multiplikator (standard 1,5×) tillåter korta toppar — t.ex. content auth-gräns 120 → burst-tak 180/min.

Lägen — Monitor vs Enforce

övervaka

men skickar begäran vidare

tvinga

Bot-detekteringssignaler

Tom User-Agent — blockerar klienter som inte identifierar sig.

Kända bot-UA-delsträngar — matchar curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (skiftlägesokänsligt).

Saknar Accept-Language — riktiga webbläsare skickar alltid det; de flesta skript gör det inte.

Saknar Accept-Encoding — samma som ovan.

Anpassad blockeringsregex — ditt eget mönster (skiftlägesokänsligt) t.ex. scraper|harvester|probe.

Anpassad tillåtningsregex — om satt avvisas ALL UA som inte matchar (strikt allowlist).

Om en specifik integration inte kan skicka en normal UA (t.ex. ett legitimt bakgrundsjobb), vitlista dess IP istället för att minska bot-signaler globalt.

IP / Geo / ASN-listor

Svartlista — CIDR som omedelbart får 403, ingen räknare används. Användbart för ihållande angripare.

Blockerade länder — ISO-2-koder lösta via lokal GeoIP. Tom = ingen geo-blockering.

Blockerade ASN — hosting- / VPN-leverantörer (t.ex. AS14061 Digital Ocean, AS16509 Amazon). GeoIP-löst.

Redis-nyckelreferens

Operationell handbok

Första aktivering: sätt mode = monitor, aktivera rate limiting. Vänta 24–48 h.

Granska telemetri: gnistlinje visar när eventuella 429-toppar uppstår; Topp-10 angripare visar återkommande. Justera gränser om legitima användare träffar dem.

Enforce mjukt: sätt mode = enforce med gränser 2× högre än mål. Observera gnistlinjen + supportkanal i 2–3 dagar.

Enforce slutgiltigt: sänk gränser till produktionsvärden. Behåll violations_before_block på 3 (standard) för att absorbera tillfälliga toppar.

Incidentrespons: IP-attacker → lägg till i Blacklist-textrutan och spara (propageras till nginx på ≤5 s via Redis).

Häv blockering av falskt positivt: IPTV Inställningar → Säkerhet → Topp angripare → Häv blockering. Rensar rl:blocked:{ip} + rl:violations:{ip}.

Implementeringsfiler

Sparade konfigurationsnycklar (iptv_defaults)

Alla sparade under prefix sec.*. Sparas vid varje UI-klick.

Security Konfiguration

Översikt

Stream Manager använder UFW (Uncomplicated Firewall) för nätverksåtkontroll och fail2ban för intrusionsförebyggande. Tillsammans skyddar de servern från obehörig åtkomst och brute-force-attacker.

UFW-brandvägg

UFW controls which network traffic is allowed to reach the server.|Standard rules: HTTP (80), HTTPS (443), and Media Server (8080) are open to all. SSH (22) is restricted to internal and CDN networks only.|Multicast traffic (224.0.0.0/4) is restricted to trusted source networks.|Manage rules from Config > Security tab, or via command line with 'sudo ufw'.

Fail2ban-konfiguration

fail2ban övervakar loggfiler upprepade autentiseringsfel och blockerar automatiskt angripande IP-adresser.|Fängelset sshd skyddar SSH-åtkomst genom att blockera IP-adresser efter flera misslyckade inloggningsförsök.|Använder nftables-backend för effektiv paketfiltrering.|Blockerade IP-adresser kan manuellt avblockeras från Konfiguration > Säkerhetsfliken.

Begränsningar för multicast-ruttering

Multicast-trafik (224.0.0.0/4) är begränsad till två betrodda nätverk:|10.0.0.0/8 - Internt nätverk för lokala strömkällor och hantering.|147.78.168.0/22 - CDN-nätverk för distribution till kantserver.|Detta förhindrar att obehöriga multicast-källor injicerar trafik i strömpipelinen.

CDN Nätverk Architecture

CDN-nätverket (147.78.168.0/22) används för att distribuera strömmar till kantserver.|SSH-åtkomst tillåts från CDN-IP-adresser för fjärrhantering.|Multicast-forwarding är aktiverat mellan interna nätverk och CDN-nätverk.|All annan trafik från CDN följer standardbrandväggsregler.

Bästa Practices

Keep UFW enabled at all times|Restrict SSH access to known networks only|Övervakare fail2ban jails regularly for attack patterns|Use strong passwords and key-based SSH authentication|Review firewall rules periodically and remove unused entries|Keep fail2ban and UFW packages updated