Rate limit · Bot detect · Geo

Architektur
Burst-Multiplikator (Standard 1,5×) erlaubt kurze Spitzen — z.B. Inhalts-Auth-Limit 120 → Burst-Obergrenze 180/min.
Modi — Überwachung vs. Durchsetzung
Monitor
lässt die Anfrage jedoch durch
erzwingen
Bot-Erkennungssignale
Leerer User-Agent — blockiert Clients, die sich nicht identifizieren.
Bekannte Bot-UA-Teilstrings — erkennt curl, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, bot, crawler, spider, scraper (Groß-/Kleinschreibung unbeachtlich).
Fehlender Accept-Language — echte Browser senden ihn immer; die meisten Skripte nicht.
Fehlender Accept-Encoding — wie oben.
Benutzerdefiniertes Block-Regex — eigenes Muster (Groß-/Kleinschreibung unbeachtlich), z.B. scraper|harvester|probe.
Benutzerdefiniertes Allow-Regex — wenn gesetzt, wird JEDER UA, der nicht passt, abgelehnt (strenge Allowlist).
Wenn eine bestimmte Integration keinen normalen UA senden kann (z.B. ein legitimer Hintergrunddienst), dessen IP auf die Whitelist setzen, anstatt Bot-Signale global zu lockern.
IP / Geo / ASN-Listen
Blacklist — CIDRs, die sofort 403 erhalten, ohne Zähler zu verbrauchen. Nützlich für hartnäckige Angreifer.
Gesperrte Länder — ISO-2-Codes per lokalem GeoIP aufgelöst. Leer = keine Geo-Sperre.
Gesperrte ASNs — Hosting-/VPN-Anbieter (z.B. AS14061 Digital Ocean, AS16509 Amazon). GeoIP-aufgelöst.
Redis-Schlüsselreferenz
Betriebshandbuch
Erstaktivierung: Modus auf monitor setzen, Rate-Limiting aktivieren. 24–48 Stunden warten.
Telemetrie prüfen: Sparkline zeigt, wann potenzielle 429-Spitzen auftreten; Top-10-Täter-Tabelle zeigt Wiederholungstäter. Limits anpassen, wenn legitime Benutzer sie erreichen.
Sanfte Durchsetzung: Modus auf enforce setzen mit Limits 2× höher als das Ziel. Sparkline + Supportkanal 2–3 Tage beobachten.
Endgültige Durchsetzung: Limits auf Produktionswerte anpassen. violations_before_block bei 3 (Standard) lassen, um gelegentliche Spitzen zu absorbieren.
Incident-Reaktion: IP-Angriffe → zur Blacklist-Textarea hinzufügen und speichern (wird in ≤5 s über Redis an nginx weitergegeben).
Falsch-Positiv entsperren: IPTV-Einstellungen → Sicherheit → Top-Täter → Entsperren. Löscht rl:blocked:{ip} + rl:violations:{ip}.
Implementierungsdateien
Gespeicherte Konfigurationsschlüssel (iptv_defaults)
Alle unter Präfix sec.* gespeichert. Bei jedem UI-Klick gespeichert.
Übersicht
Stream Manager verwendet UFW (Uncomplicated Firewall) zur Netzwerkzugriffskontrolle und fail2ban zur Intrusion Prevention. Zusammen schützen sie den Server vor unbefugtem Zugriff und Brute-Force-Angriffen.
UFW steuert, welche Netzwerk-Verkehr den Server erreicht.|Standard-Regeln: HTTP (80), HTTPS (443) und Media Server (8080) sind offen für alle. SSH (22) ist auf interne und CDN-Netzwerke beschränkt.|Multicast-Verkehr (224.0.0.0/4) ist auf vertrauenswürdige Quellnetzwerke beschränkt.|Verwalten Sie Regeln von Config > Security Tab oder über Kommandozeile mit 'sudo ufw'.
fail2ban überwacht Log-Dateien auf wiederholte Authentifizierungsfehler und sperrt automatisch die betreffenden IP-Adressen.|Das sshd-Jail schützt den SSH-Zugriff, indem IPs nach mehreren fehlgeschlagenen Login-Versuchen gesperrt werden.|Verwendet das nftables-Backend für effizientes Paketfiltering.|Gesperrte IPs können manuell über Konfiguration > Sicherheit-Tab entsperrt werden.
Multicast-Verkehr (224.0.0.0/4) ist auf zwei vertrauenswürdige Netzwerke beschränkt:|10.0.0.0/8 - Internes Netzwerk für lokale Stream-Quellen und Management.|147.78.168.0/22 - CDN-Netzwerk für die Verteilung an Edge-Server.|Dies verhindert, dass unbefugte Multicast-Quellen Verkehr in die Streaming-Pipeline einspeisen.
Das CDN-Netzwerk (147.78.168.0/22) wird zur Verteilung von Streams an Edge-Server verwendet.|SSH-Zugriff ist von CDN-IPs für das Remote-Management erlaubt.|Multicast-Forwarding ist zwischen internem und CDN-Netzwerk aktiviert.|Aller andere Verkehr vom CDN folgt den Standard-Firewall-Regeln.
Beste Praktiken für die Stream-Sicherheit
UFW jederzeit aktiviert halten|SSH-Zugriff auf bekannte Netzwerke beschränken|Fail2ban Jails regelmäßig auf Angriffsmuster überwachen|Starke Passwörter und schlüsselbasierte SSH-Authentifizierung verwenden|Firewall-Regeln regelmäßig überprüfen und ungenutzte Einträge entfernen|Fail2ban und UFW Pakete aktualisiert halten