×

🛡 API Guard

Rate limit · Bot detect · Geo

🛡 IPTV API-beskyttelse — satsbegrænsning & botdetektering

Arkitektur

Burstmultiplikator (standard 1,5×) tillader korte spidsbelastninger — f.eks. indholds-auth-grænse 120 → burst-loft 180/min.

Tilstande — Overvågning vs Håndhævelse

overvågning

men lader anmodningen passere igennem

håndhævelse

Bot-detektionssignaler

Tom User-Agent — blokerer klienter der ikke identificerer sig selv.

Kendte bot-UA-understrenge — matcher curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (case-insensitiv).

Manglende Accept-Language — rigtige browsere sender det altid; de fleste scripts gør ikke.

Manglende Accept-Encoding — samme som ovenstående.

Brugerdefineret blokerings-regex — dit eget mønster (case-insensitiv) f.eks. scraper|harvester|probe.

Brugerdefineret tilladelses-regex — hvis sat, afvises ENHVER UA der ikke matcher (streng tilladelsesliste).

Hvis en specifik integration ikke kan sende en normal UA (f.eks. et legitimt baggrundsjob), hvidliste dens IP i stedet for at slække på bot-signaler globalt.

IP / Geo / ASN-lister

Sortliste — CIDR-blokke der straks får 403, ingen tæller brugt. Nyttigt for vedvarende overtrædere.

Blokerede lande — ISO-2 koder opløst via lokal GeoIP. Tom = ingen geo-blokering.

Blokerede ASN'er — hosting / VPN-udbydere (f.eks. AS14061 Digital Ocean, AS16509 Amazon). GeoIP-opløst.

Redis nøglereference

Operationel håndbog

Første aktivering: sæt tilstand = overvågning, aktiver hastighedsbegrænsning. Vent 24–48 timer.

Gennemgå telemetri: gnistlinje viser hvornår der ville opstå 429-spidsbelastninger; Top-10 overtrædere-tabel viser gentagne overtrædere. Juster grænser hvis legitime brugere rammer dem.

Blød håndhævelse: sæt tilstand = håndhævelse med grænser 2× højere end målet. Overvåg gnistlinjen og supportkanalen i 2–3 dage.

Endelig håndhævelse: stram grænser til produktionsværdier. Hold violations_before_block på 3 (standard) for at absorbere lejlighedsvise spidsbelastninger.

Hændelsesrespons: IP-angreb → tilføj til Sortliste-tekstfeltet og gem (propagerer til nginx på ≤5 s via Redis).

Afblokér falsk positiv: IPTV-indstillinger → Sikkerhed → Topovertrædere → Afblokér. Rydder rl:blocked:{ip} + rl:violations:{ip}.

Implementeringsfiler

Gemte konfigurationsnøgler (iptv_defaults)

Alle gemt under præfiks sec.*. Gemt ved hvert UI-klik.

Sikkerhedskonfiguration

Oversigt

Stream Manager bruger UFW (Uncomplicated Firewall) til netværksadgangskontrol og fail2ban til trusselsforebyggelse. Sammen beskytter de serveren mod uautoriseret adgang og brute-force-angreb.

UFW-firewall

UFW kontrollerer, hvilken netværkstrafik der har tilladelse til at nå serveren.|Standardregler: HTTP (80), HTTPS (443) og Media Server (8080) er åbne for alle. SSH (22) er begrænset til interne og CDN-netværk kun.|Multicast-trafik (224.0.0.0/4) er begrænset til tillidelige netværk.|Administrer regler fra Konfiguration > Sikkerhedsfanen, eller via kommandolinjen med 'sudo ufw'.

fail2ban-trusselsforebyggelse

fail2ban overvåger logfiler for gentagne autentificeringsfejl og blokerer automatisk angribende IP-adresser.|sshd-jail beskytter SSH-adgang ved at blokere IP'er efter flere mislykkede loginforsøg.|Bruger nftables-backend til effektiv pakkefiltrering.|Blokerede IP'er kan manuelt opslås fra Konfiguration > Sikkerhedsfanen.

Multicast-ruterestriktioner

Multicast-trafik (224.0.0.0/4) er begrænset til to tillidelige netværk:|10.0.0.0/8 — Internt netværk til lokale streamkilder og håndtering.|147.78.168.0/22 — CDN-netværk til edge-serverdistribution.|Dette forhindrer uautoriserede multicast-kilder i at injicere trafik i stream-pipeline.

CDN-netværksarkitektur

CDN-netværket (147.78.168.0/22) bruges til at distribuere streams til edge-servere.|SSH-adgang er tilladt fra CDN-IP'er til fjernhåndtering.|Multicast-forwarding er aktiveret mellem interne og CDN-netværk.|Al anden trafik fra CDN følger standard-firewallregler.

Bedste praksis

Hold UFW slået til til alle tider|Begræns SSH-adgang til kendte netværk kun|Overvåg fail2ban-jails regelmæssigt for angrebsmønstre|Brug stærke adgangskoder og nøglebaseret SSH-autentificering|Gennemgå firewallregler regelmæssigt og fjern ikke-anvendte poster|Hold fail2ban og UFW-pakker opdateret