×

🛡 API Guard

Rate limit · Bot detect · Geo

🛡 IPTV API-beveiliging — Snelheidsbeperking en botdetectie

Architectuur

Burst-multiplier (standaard 1,5×) staat korte pieken toe — bijv. contentauthlimiet 120 → burstplafond 180/min.

Modi — Monitor vs Handhaven

monitor

maar laat het verzoek door

afdwingen

Bot-detectiesignalen

Lege User-Agent — blokkeert clients die zichzelf niet identificeren.

Bekende bot UA-substrings — vergelijkt curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (hoofdletterongevoelig).

Ontbrekende Accept-Language — echte browsers sturen dit altijd; de meeste scripts niet.

Ontbrekende Accept-Encoding — zelfde als hierboven.

Aangepaste blokkeringsregex — uw eigen patroon (hoofdletterongevoelig) bijv. scraper|harvester|probe.

Aangepaste toestemmingsregex — indien ingesteld wordt elke UA die niet overeenkomt geweigerd (strikte allowlist).

Als een specifieke integratie geen normale UA kan sturen, voeg dan het IP op de whitelist toe in plaats van bot-signalen globaal te versoepelen.

IP / Geo / ASN-lijsten

Zwarte lijst — CIDR's die direct 403 krijgen, geen teller verbruikt. Nuttig voor hardnekkige overtreders.

Geblokkeerde landen — ISO-2-codes opgelost via lokale GeoIP. Leeg = geen geoblokkering.

Geblokkeerde ASN's — hosting-/VPN-providers (bijv. AS14061 Digital Ocean, AS16509 Amazon). GeoIP-opgelost.

Redis-sleutelreferentie

Operationeel draaiboek

Eerste activering: stel modus in op monitor, schakel snelheidslimiet in. Wacht 24–48 uur.

Telemetrie beoordelen: sparkline toont wanneer would-be-429-pieken optreden; Top-10 overtrederstabel toont herhaalovertreders.

Zachte handhaving: stel modus in op enforce met limieten 2× hoger dan doel. Bekijk sparkline + ondersteuningskanaal 2–3 dagen.

Definitieve handhaving: verscherp limieten tot productiewaarden. Houd violations_before_block op 3 (standaard) om incidentele pieken op te vangen.

Incidentrespons: IP-aanvallen → voeg toe aan Zwarte lijst textarea en sla op (propageert naar nginx in ≤5 s via Redis).

Fout-positief deblokkeren: IPTV-instellingen → Beveiliging → Top-overtreders → Deblokkeren.

Implementatiebestanden

Gecachede configuratiesleutels (iptv_defaults)

Alle opgeslagen onder prefix sec.*. Opgeslagen bij elke UI-klik.

Beveiligingsconfiguratie

Overzicht

Stream Manager gebruikt UFW (Uncomplicated Firewall) voor netwerktoegangscontrole en fail2ban voor inbraakpreventie. Samen beschermen ze de server tegen ongeautoriseerde toegang en brute-force-aanvallen.

UFW-firewall

UFW bepaalt welk netwerkverkeer de server kan bereiken.|Standaardregels: HTTP (80), HTTPS (443) en Media Server (8080) zijn voor iedereen open. SSH (22) is alleen toegankelijk voor interne en CDN-netwerken.|Multicast-verkeer (224.0.0.0/4) is beperkt tot vertrouwde bronnetwerken.|Beheer regels via Config > Tabblad Beveiliging, of via de opdrachtregel met 'sudo ufw'.

fail2ban-inbreukpreventie

fail2ban bewaakt logbestanden op herhaalde authenticatiefouten en blokkeert automatisch de dader-IP-adressen.|De sshd-jail beschermt SSH-toegang door IP-adressen te blokkeren na meerdere mislukte inlogpogingen.|Gebruikt de nftables-backend voor efficiënte pakketfiltering.|Geblokkeerde IP-adressen kunnen handmatig worden gedeblokkeerd via Config > Beveiliging-tabblad.

Beperkingen voor multicast-routing

Multicast-verkeer (224.0.0.0/4) is beperkt tot twee vertrouwde netwerken:|10.0.0.0/8 - Intern netwerk voor lokale streambronnen en beheer.|147.78.168.0/22 - CDN-netwerk voor distributie naar edge-servers.|Dit voorkomt dat ongeautoriseerde multicast-bronnen verkeer injecteren in de streamingspijpleiding.

CDN-netwerkarchitectuur

Het CDN-netwerk (147.78.168.0/22) wordt gebruikt voor het distribueren van streams naar edge-servers.|SSH-toegang is toegestaan vanaf CDN-IP-adressen voor extern beheer.|Multicast-forwarding is ingeschakeld tussen interne netwerken en CDN-netwerken.|Al het andere verkeer van CDN volgt de standaardfirewallregels.

Best practices

Houd UFW altijd ingeschakeld|Beperk SSH-toegang tot bekende netwerken|Monitor fail2ban-regels regelmatig op aanpatronen|Gebruik sterke wachtwoorden en SSH-authenticatie op basis van sleutels|Bekijk firewallregels periodiek en verwijder ongebruikte items|Houd fail2ban- en UFW-pakketten bijgewerkt