Rate limit · Bot detect · Geo

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.
Ö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 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 ö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.
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ä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