Edge Shield für Emby — Anleitung

Installation

Du brauchst Emby Server 4.10.1 oder neuer.

  1. Melde dich in deinem MediaLab-Works-Konto an, öffne Lizenzen und lade die Plugin-DLL herunter (verfügbar bei einem aktiven Abonnement, einer Lifetime-Lizenz innerhalb ihres Update-Zeitraums oder während des kostenlosen 30-tägigen Testzeitraums).
  2. Kopiere die DLL in den Emby-Plugin-Ordner und starte Emby Server neu:
    • Linux (Paket): /var/lib/emby/plugins/
    • Docker: der Ordner plugins in deinem Emby-Config-Volume
    • Windows: %AppData%\Emby-Server\programdata\plugins\
  3. Öffne Edge Shield im Emby-Dashboard-Menü und klicke auf License. Füge deinen Lizenzschlüssel ein und aktiviere ihn, oder gib deine E-Mail-Adresse ein, um den kostenlosen 30-tägigen Testzeitraum zu starten oder eine Lizenz zu kaufen. Das Plugin kontaktiert den Lizenzserver, bindet den Schlüssel an diesen Emby-Server und zeigt die Lizenz als Active an.

Die Lizenz wird einmal am Tag (und bei jedem Emby-Start) geprüft. Ohne Internet läuft das Plugin nach der letzten erfolgreichen Prüfung noch 7 Tage weiter; danach wird es gestoppt, bis es wieder prüfen kann.

Lizenz

Ohne gültige Lizenz wird das Plugin gestoppt; nur die Seite License funktioniert weiter (dort kannst du den Test starten, kaufen, den Schlüssel eingeben oder aktualisieren).

Mit gültiger Lizenz kann dieselbe Seite Install update ausführen oder mit Roll back auf die vorherige Version zurückgehen, falls ein Update Probleme bereitet. Starte Emby danach jeweils neu.

Konfiguration

  1. Connection: Erstelle in Cloudflare einen API-Token (Create Token → Custom token), auf deine Zone beschränkt, mit den Berechtigungen, die die Seite auflistet: Zone · Zone · Read, Zone · DNS · Edit, Zone · Zone Settings · Edit, Zone · SSL and Certificates · Edit, Zone · Zone WAF · Edit, Zone · Single Redirect · Edit, Zone · Cache Rules · Edit, Zone · Origin Rules · Edit und Account · Account Filter Lists · Edit. Füge ihn ein und wähle dann die Zone (deine Domain). Der Token wird verschlüsselt auf dem Server gespeichert und nie wieder angezeigt; eine fehlende Berechtigung wird auf der Statusseite genannt.
  2. Mode:
    • Empfohlen: UI über Cloudflare, Video direkt („Stream Offload“). Der App-Host geht über den Cloudflare-Proxy; Video-, Audio- und Download-Anfragen werden (307) zum Streaming-Host umgeleitet, der „DNS only“ ist und direkt zu deinem Server geht.
    • DNS only (kein Proxy): Cloudflare nur für DNS, DDNS und das Zertifikat. WAF-Regeln und Edge-Blocking greifen nicht, weil der Traffic nicht durch Cloudflare läuft.
  3. Names and ports: der App-Host (zum Beispiel media.example.com) mit dem HTTPS-Port, den deine Clients nutzen (443 oder einer der Ports, die Cloudflare proxied: 2053, 2083, 2087, 2096, 8443), der externe Port, den dein Router an den Server weiterleitet (falls er abweicht, fügt Edge Shield eine Origin-Regel hinzu), und der Streaming-Host (zum Beispiel direct.example.com) mit seinem externen HTTPS-Port. Die öffentliche IPv4 wird erkannt, wenn das Feld leer ist; DDNS hält die Einträge aktuell, wenn sie sich ändert.
  4. Serverzertifikat: Let's Encrypt automatically (DNS-01, with the token) für beide Namen oder eines, das du selbst verwaltest. Full (strict) braucht ein gültiges Zertifikat auf dem Server. Das Zertifikat wird 30 Tage vor Ablauf erneuert.
  5. TLS: minimale TLS-Version und optional HSTS auf dem App-Host (schalte es erst ein, wenn HTTPS zuverlässig funktioniert; es lässt sich nur schwer rückgängig machen).
  6. Protection: automatisches Blockieren von IPs mit fehlgeschlagenen Anmeldungen (standardmäßig 5 in 10 Minuten und 24 Stunden, ×4 bei jeder Wiederholung), die IPs oder CIDR-Bereiche, die nie blockiert werden sollen, das Login-Rate-Limit (mehr als 10 Anfragen in 10 s von einer IP → 10 s Block), das Blockieren clientseitig gesendeter IP-Header und die erlaubten Länder (ISO-Codes; leer heißt alle).
  7. Speichere, öffne dann Status and fixes und klicke auf Fix everything, damit die Einstellungen und Regeln Cloudflare und Emby erreichen. Starte Emby Server neu, wenn die Seite es verlangt (HTTPS, das Zertifikat und die Forwarded-Address-Einstellungen greifen erst nach einem Neustart).

Im Alltag

  • Die Statusseite prüft den Token, die DNS-Einträge, die TLS-Einstellungen, das Zertifikat, die Regeln, die echte Client-IP und HTTPS in Emby; jedes Problem hat einen Button Fix.
  • Blocked IPs: Die Liste zeigt die Adresse, den Grund und das Ablaufdatum; du kannst eine IP entsperren oder von Hand sperren, mit Notiz und Dauer. Dein LAN, die Cloudflare-Bereiche und die Allowlist werden nie blockiert.
  • Under Attack: Schalte es während eines Angriffs für 30 Minuten bis 12 Stunden ein; es schaltet sich selbst wieder ab. Solange es an ist, können native Apps (Android TV, Roku, iOS, Kodi …) keine Verbindung aufbauen.
  • Port-Beschränkung (Firewall): Die Seite zeigt fertige Befehle, mit denen nur Cloudflare den Port des App-Hosts erreicht; Edge Shield ändert deine Firewall selbst nie.
  • Remove the Edge Shield rules löscht nur die Regeln, die das Plugin erstellt hat; DNS- und TLS-Einstellungen bleiben, wie sie sind.

Was es wohin sendet

  • An Cloudflare, mit deinem Token: Zone-Einstellungen, DNS-Einträge mit deiner öffentlichen IP, Regeln und die zu blockierenden IPs. Der Kommentar eines Blocklist-Eintrags enthält nur das Ablaufdatum und den Grund (die Anzahl fehlgeschlagener Anmeldungen oder „manual“ mit deiner Notiz). Seit 0.1.1 wird der versuchte Benutzername nicht an Cloudflare gesendet; er bleibt in der Blockliste und im Log auf deinem Server.
  • https://www.cloudflare.com/cdn-cgi/trace, um die öffentliche IP zu erkennen, und die öffentliche Cloudflare-API für ihre IP-Bereiche (täglich).
  • An Let's Encrypt: die Zertifikatsanfrage für deine Hostnamen; der private Schlüssel bleibt auf deinem Server.
  • An medialab.works geht nichts außer der Lizenzprüfung.

Fehlerbehebung

  • „The token lacks the … permission“: Bearbeite den Token in Cloudflare, füge die gezeigte Berechtigung hinzu und klicke erneut auf Fix.
  • „Video would flow through the Cloudflare CDN“: Der App-Host ist proxied, aber es ist kein Streaming-Host gesetzt. Setze einen Streaming-Host („DNS only“) oder wechsle in den Modus DNS only.
  • „The server's public IP could not be detected“: Trage die öffentliche IPv4 in den Einstellungen ein.
  • Die Apps können keine Verbindung aufbauen: Prüfe, dass Under Attack aus ist und dass der externe Port des Streaming-Hosts an Embys HTTPS-Port weitergeleitet ist.
  • Änderungen erscheinen nicht in Emby: Die Statusseite sagt Restart needed; starte Emby Server neu.