Wer meldet sich an deinem Emby-Server an? Login-Protokoll mit IP, Gerät und Standort

Richte Access Log auf Emby Server 4.10.1 oder neuer ein: jede Anmeldung und jeder Fehlversuch mit IP, App, Gerät und lokalem GeoLite2-Standort, dazu Filter und CSV-Export gegen Passwort-Weitergabe und Angriffe.

Emby zeigt dir, wer gerade schaut – aber kaum, wer anklopft. Wenn du einen Server für Familie, Freunde oder eine kleine Community betreibst, ist die entscheidende Frage früher oder später ganz einfach: Wer hat sich angemeldet, von wo, mit welcher App und welchem Gerät – und hat jemand versucht, ein Passwort zu erraten? Das Anmeldeprotokoll von Access Log beantwortet das direkt auf deinem eigenen Server, ohne externen Geolocation-Dienst.

Access Log ist ein Plugin, das den Login-Verlauf deines Emby-Servers führt. Es zeichnet jede Anmeldung und jeden fehlgeschlagenen Versuch auf und zeigt sie in einer Tabelle: Benutzer, Zeit, IP-Adresse, Gerät, App sowie das ungefähre Land und die Stadt aus einer lokalen GeoLite2-Datenbank. Genau darum geht es in dieser Anleitung: Die Zuordnung passiert auf deiner Maschine, die IP-Adressen verlassen sie nie.

Was Emby zeigt und was fehlt

Emby hat eigene Aktivitätsansichten, und für den Alltag reichen die völlig. Für eine Prüfung sind sie aber nicht gebaut. Du kannst nicht ohne Weiteres nach Land filtern, bekommst keinen stabilen Verlauf pro Benutzer mit Gerät und App-Version nebeneinander, und fehlgeschlagene Versuche lassen sich nur schwer als Muster über die Zeit auswerten.

Access Log schließt diese Lücke, ohne dass sich für irgendjemanden die Nutzung des Servers ändert. Die Erfassung läuft serverseitig (über die Anmelde- und Sitzungsereignisse des Servers) und funktioniert daher mit jedem Client: Emby Web, native Apps auf Android, iOS, Android TV, Samsung, LG, Roku, Apple TV und TV-Browser. App- und Gerätename werden so angezeigt, wie der Client sie meldet. Das Plugin liest außerdem das lokale Log embyserver.txt für die Request-Header aus und erkennt so, ob eine Sitzung direkt oder über Cloudflare hereinkam.

Voraussetzungen

  • Emby Server 4.10.1 oder neuer.
  • Ein MediaLab-Works-Konto mit Lizenz (monatlich, jährlich, lebenslang oder das Emby-Bundle) oder die kostenlose 30-Tage-Testversion.
  • Optional, aber empfohlen: ein kostenloses MaxMind-Konto für die GeoLite2-City- und -ASN-Datenbanken. Ohne Konto wird keine Datenbank heruntergeladen, und du bekommst keine Standortdaten.
  • Zugriff auf deinen Emby-Plugin-Ordner und die Berechtigung, den Server neu zu starten.

Schritt 1: Plugin installieren

  1. Melde dich in deinem MediaLab-Works-Konto an, öffne Licenses und lade die Plugin-DLL herunter.
  2. Kopiere die DLL in den Emby-Plugin-Ordner und starte Emby Server neu:
    • Linux (Paket): /var/lib/emby/plugins/
    • Docker: der Ordner plugins im Emby-Konfigurationsvolume
    • Windows: %AppData%\Emby-Server\programdata\plugins\
  3. Öffne Emby Dashboard → Plugins, klicke auf das Plugin, füge deinen Lizenzschlüssel ein und speichere. Das Plugin kontaktiert den Lizenzserver, bindet den Schlüssel an diesen Emby-Server und zeigt die Lizenz als Active an.

Die Lizenz wird einmal täglich 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. Im gestoppten Zustand werden keine neuen Anmeldungen erfasst, das bestehende Protokoll bleibt aber erhalten, und alles läuft weiter, sobald die Lizenz wieder gültig ist.

Schritt 2: GeoLite2-Datenbank einrichten

Öffne Dashboard → Plugins → Access Log.

Trage unter GeoLite2 deinen MaxMind-Lizenzschlüssel ein (kostenloses Konto), damit das Plugin die City-Datenbank herunterlädt und aktualisiert, oder lade die .mmdb-Datei manuell hoch. Die MaxMind-Account-ID gehört in die Plugin-Konfiguration; der Lizenzschlüssel wird im Ruhezustand verschlüsselt in secrets.enc.json im Plugin-Datenordner gespeichert und nie an den Browser gesendet – die Seite zeigt nur „set ✓“.

Der Download ist optional und standardmäßig aus. Wenn du ihn aktivierst, holt das Plugin die GeoLite2-City- und -ASN-Datenbanken von download.maxmind.com, authentifiziert mit deinem eigenen Konto. Es werden keine IP-Adressen oder Nutzerdaten gesendet. Die Datenbanken werden erneuert, wenn sie älter als 7 Tage sind (einstellbar). Danach läuft die Geolokalisierung lokal in der heruntergeladenen Datenbank; private und lokale Adressen werden nicht nachgeschlagen.

Schritt 3: Aufbewahrung und Umgang mit Fehlversuchen einstellen

Weiterhin unter Dashboard → Plugins → Access Log:

  • Retention: wie viele Tage Einträge aufbewahrt werden. Standard sind 365. Es werden ganze Monatsdateien gelöscht, daher kann bis zu etwa ein zusätzlicher Monat auf der Festplatte bleiben.
  • Failed attempts: standardmäßig erfasst. Du kannst dich optional benachrichtigen lassen, nachdem N Fehlversuche von einer IP kamen. Warnungen gehen nur an das lokale Aktivitätsprotokoll des Servers.

Denk über die Aufbewahrungsdauer nach, bevor du Monate an Daten sammelst. Ein Jahr ist ein sinnvoller Standard für einen Heimserver; kürze es, wenn Speicherplatz oder deine eigenen Datenschutzvorstellungen das verlangen.

Schritt 4: Protokoll lesen

Die Plugin-Seite listet Anmeldungen absteigend nach Zeit. Jede Zeile zeigt Benutzer, Zeit, IP-Adresse, App, Gerätename und -version sowie den ungefähren Standort aus GeoLite2. Klicke auf einen Benutzer, um nur dessen Verlauf zu sehen.

Nutze die Filter – nach Benutzer, Zeitraum, Land und Gerät –, um die Auswahl einzugrenzen. Der Filter nach Land ist der schnellste Weg, Anmeldungen von Orten zu finden, die du nicht erwartest. Wenn du einen Nachweis außerhalb der Oberfläche brauchst, exportiere nach CSV; der Export wird vom Admin ausgelöst.

Im Hintergrund liegt alles im Plugin-Datenordner:

  • events/events-YYYY-MM.jsonl: jede Anmeldung, jeder Fehlversuch, Wiedergabe und Adresswechsel mit Zeit, Benutzer, IP, Standort (Land, Region, Stadt, ungefähre Koordinaten, ASN/ISP), Zugriffspfad (direkt oder über Cloudflare, Host, User-Agent, X-Forwarded-For-Kette), App, Version, Gerät und Sitzung. Das eingegebene Passwort wird nie gespeichert.
  • events/known.json: bekannte Geräte und Länder pro Benutzer, ohne Ablauf.
  • geoip/*.mmdb: die MaxMind-Datenbanken.

Schritt 5: Auf Warnsignale achten

Mit ein paar Wochen Verlauf werden Muster sichtbar:

  • Fehlversuch-Serien von einer IP. Eine Reihe von Fehlversuchen gegen einen oder mehrere Benutzer ist das klassische Rate-Muster. Wenn du die Benachrichtigung aktiviert hast, sagt dir das Aktivitätsprotokoll, wann der Schwellenwert überschritten wird.
  • Neue Länder. Ein Benutzer, der normalerweise aus einem Land kommt und plötzlich in einem anderen auftaucht, verdient eine freundliche Nachfrage. Die Datei mit den bekannten Ländern pro Benutzer macht das leicht zu prüfen.
  • Unbekannte Geräte. Ein Gerätename, den du noch nie an einem Konto gesehen hast, kann auf ein geteiltes oder geleaktes Passwort hindeuten.
  • Geteilte Passwörter. Dasselbe Passwort, das weitergegeben wurde, zeigt sich daran, dass ein Benutzer in kurzer Zeit aus mehreren unzusammenhängenden Ländern und Geräten erscheint. Die Ansicht pro Benutzer und der Länderfilter machen das ohne Rätselraten sichtbar.
  • Gefälschte Header. Emby akzeptiert X-Forwarded-For von jedem; das Plugin kennzeichnet gefälschte Header, damit dich eine vorgetäuschte „via Cloudflare“-Zeile nicht täuscht.

Tipps und Fehlersuche

  • Keine Standorte? Prüfe, ob die GeoLite2-Datenbank heruntergeladen oder hochgeladen wurde. Ohne MaxMind-Konto und ohne manuelle .mmdb hat das Plugin nichts zum Nachschlagen.
  • Private Adressen zeigen keinen Standort. Das ist so gewollt; lokale und private IPs werden nicht nachgeschlagen.
  • Falscher App- oder Gerätename. Das Plugin zeigt, was der Client meldet. Die Erfassung selbst hängt nicht vom Client ab.
  • Cloudflare-Erkennung wirkt falsch. „Via Cloudflare / direkt“ hängt davon ab, was Emby in embyserver.txt schreibt. Wenn sich dein Reverse-Proxy-Setup ändert, prüfe ein paar aktuelle Einträge erneut.
  • Plugin gestoppt. Die Seiten und die API antworten mit dem Grund, und nur die Seite License funktioniert weiter. Behebe die Lizenz dort; nichts wird gelöscht.
  • Speicherplatz. Monatsdateien plus Aufbewahrungsdauer bedeuten planbares Wachstum. Exportiere nach CSV und senke die Aufbewahrungsdauer, wenn du weniger Platz belegen willst.

Datenschutz in einem Absatz

Der Standort stammt aus der GeoLite2-Datenbank auf deinem Server. IP-Adressen werden an keinen externen Dienst gesendet. Warnungen gehen nur an das lokale Aktivitätsprotokoll des Servers. Die Seiten laden keine CDN-Skripte und keine externen Schriften. Der einzige ausgehende Datenverkehr ist der optionale MaxMind-Download mit deinem eigenen Konto und der Lizenz-Client, den alle unsere Plugins gemeinsam nutzen; siehe Lizenzierung und Datenschutz in unseren Plugins.

Fazit

Access Log macht aus dem Anmelde-Strom von Emby eine Prüfspur, die dir wirklich gehört: jede Anmeldung und jeder Fehlversuch mit IP, App, Gerät und lokalem GeoLite2-Standort, filterbar nach Benutzer, Zeitraum, Land und Gerät und exportierbar nach CSV. Installiere es, verbinde es mit einer kostenlosen MaxMind-Datenbank, lege die Aufbewahrungsdauer fest und schau ab und zu nach den Warnsignalen. Einrichtungsdetails und die vollständige Referenz findest du auf der Produktseite und im Benutzerhandbuch; das Changelog zeigt, was sich geändert hat, und die Wissensdatenbank sowie die FAQ decken den Rest ab.

Dieser Beitrag wurde mit KI-Unterstützung auf Grundlage unserer Produktdokumentation oder der aufgeführten Quellen verfasst und vor der Veröffentlichung automatisch geprüft.

Als Nächstes lesen

Du betreibst Emby, Jellyfin oder Nextcloud?

Unsere Plugins und Apps bringen Live-TV, Untertitel, Registrierung und Sicherheit auf deinen eigenen Server, mit kostenlosem Testzeitraum.