Pourquoi un serveur Emby public a besoin d'oreilles
Si votre serveur Emby répond sur une adresse publique, il est scanné en ce moment même. Des bots parcourent des chemins courants, essaient quelques mots de passe, puis passent à autre chose. L'essentiel de ce bruit est inoffensif, mais quelques événements importants y sont enfouis : quelqu'un qui teste des mots de passe sur vos comptes, une connexion depuis un pays que vous n'avez jamais visité, un nouvel administrateur que vous n'avez pas créé, ou une sonde sur /.env.
Le problème n'est pas la détection — Emby journalise déjà beaucoup — mais l'attention. Vous ne voulez pas lire un fichier de log chaque matin. Vous voulez un court message sur votre téléphone quand quelque chose mérite un coup d'œil.
C'est exactement ce que fait Security Notifications : il surveille votre serveur Emby pour détecter les événements anormaux et sensibles à la sécurité, et envoie des alertes par Telegram, e-mail, webhook ou dans le journal d'activité d'Emby. Ce tutoriel vous guide dans l'installation, la configuration d'un canal et le réglage des règles pour que les alertes restent utiles. La référence complète se trouve dans le guide utilisateur.
Prérequis
- Emby Server 4.10.1 ou plus récent, sous Linux, Windows ou Docker.
- Un compte MediaLab Works avec une licence active, une licence à vie dans sa fenêtre de mise à jour, ou l'essai gratuit de 30 jours.
- Un canal de diffusion : un bot Telegram, un serveur SMTP ou une adresse webhook (Discord, Slack, ntfy, Gotify ou JSON brut). Le journal d'activité d'Emby fonctionne sans aucun de ces canaux.
- Facultatif mais recommandé : un reverse proxy qui transmet la véritable adresse du visiteur, pour que les alertes affichent l'IP de l'attaquant et non celle de votre proxy.
Étape 1 — Installer le plugin
- Connectez-vous à votre compte MediaLab Works, ouvrez Licences et téléchargez la DLL du plugin.
- Copiez-la dans le dossier des plugins d'Emby et redémarrez Emby Server :
- Linux (paquet) :
/var/lib/emby/plugins/ - Docker : le dossier
pluginsdans le volume de configuration d'Emby - Windows :
%AppData%\Emby-Server\programdata\plugins\
- Linux (paquet) :
- Ouvrez Security Notifications dans le menu du tableau de bord Emby, cliquez sur Ouvrir la page de licence, collez votre clé de licence et activez-la — ou saisissez votre e-mail pour démarrer l'essai. La licence est vérifiée une fois par jour et à chaque démarrage d'Emby ; sans internet, le plugin continue de fonctionner 7 jours après la dernière vérification réussie.
Sans licence valide, le plugin est arrêté : aucune règle ne s'exécute et aucune alerte n'est envoyée, mais vos réglages et votre historique sont conservés.
Étape 2 — Connecter un canal et envoyer un test
Ouvrez le plugin et allez dans l'onglet Canaux. Chaque canal est désactivé par défaut et possède sa propre gravité minimale.
Telegram. Créez un bot, collez son token, envoyez /start au bot (ou ajoutez-le à un groupe), puis cliquez sur Rechercher pour renseigner la conversation. Utilisez Envoyer un test pour confirmer que le message arrive.
E-mail. Saisissez les destinataires et votre serveur SMTP. Le port 587 avec STARTTLS est recommandé ; le port 465 avec TLS implicite n'est pas pris en charge. Si le plugin Registration est installé, vous pouvez réutiliser son serveur SMTP.
Webhook. Choisissez Discord, Slack, ntfy, Gotify ou JSON et collez l'adresse. Pour Gotify, ajoutez ?token=… à l'adresse /message. L'adresse contient le token et est stockée séparément des réglages.
Journal d'activité d'Emby. Les alertes apparaissent aussi dans la liste d'activité du tableau de bord — une bonne base pendant le réglage.
Commencez par Telegram ou l'e-mail avec une gravité minimale élevée, et laissez le journal d'activité activé.
Étape 3 — Configurer la localisation et les bases réseau
Dans Paramètres :
- Localisation : choisissez DB-IP Lite (gratuit, sans compte), MaxMind GeoLite2 (votre identifiant de compte et clé de licence) ou désactivé. La géolocalisation se fait localement ; les adresses IP ne sont jamais envoyées ailleurs. Sans source de localisation, les règles de nouveau pays, de voyage impossible et de nouveau réseau ne peuvent pas fonctionner.
- Réseau : listez les réseaux de confiance en CIDR — votre propre VPN, par exemple. Les réseaux privés sont inclus automatiquement. Activez Le serveur est derrière son propre proxy si Emby se trouve derrière nginx, Caddy, Traefik ou équivalent, pour que les en-têtes transférés soient attendus. Cloudflare est reconnu automatiquement.
- Listes d'IP malveillantes : les sorties Tor (actualisées toutes les heures) et Spamhaus DROP (quotidienne) sont activées par défaut et peuvent être désactivées.
Si toutes les alertes affichent ensuite la même adresse, c'est ce réglage qu'il faut revoir — voir la section de dépannage.
Étape 4 — Décider quelles règles méritent une alerte
L'onglet Règles contient 20 règles, chacune avec son interrupteur, sa gravité et, le cas échéant, ses seuils. On peut les regrouper en quatre catégories.
Attaques sur les comptes. Une rafale de mots de passe erronés depuis une adresse, de nombreux comptes essayés depuis la même adresse (password spraying), une connexion réussie après de nombreux échecs, un compte verrouillé. Ce sont les signes classiques d'une tentative de devinette. Le seuil est le vôtre : combien de mots de passe erronés en combien de minutes.
Connexions inhabituelles. Un nouveau pays pour le compte, ou un voyage impossible — deux endroits trop éloignés en trop peu de temps. Pour les administrateurs : une connexion depuis un nouvel appareil, un nouveau réseau, depuis l'extérieur du réseau local ou à une heure inhabituelle. Également les connexions depuis une sortie Tor ou un réseau malveillant connu.
Changements sensibles. Un nouvel administrateur ou des droits sensibles accordés, un mot de passe modifié, un compte supprimé, une clé d'API créée ou supprimée, un plugin installé, mis à jour ou retiré, et des paramètres critiques modifiés (accès distant, HTTPS, proxys de confiance, ports, UPnP). Ce sont des événements discrets, et ce sont exactement ceux dont vous voulez être informé.
Dommages et signes de compromission. Suppression massive depuis une bibliothèque, un compte utilisé depuis trop d'endroits à la fois, une session active d'un compte désactivé. Les scans et sondes comme /.env, wp-login ou la traversée de chemin, les en-têtes de proxy usurpés, l'usage de « Mot de passe oublié », les fichiers connus de l'attaque de mai 2023 sur les serveurs Emby, les DLL qui apparaissent dans le dossier des plugins sans installation par catalogue, et une version du serveur présentant des vulnérabilités publiées.
Un point de départ pratique : gardez les règles d'attaque sur les comptes et de changement sensible en gravité élevée, laissez activées les règles de nouveau pays et de voyage impossible une fois la localisation opérationnelle, et traitez les règles de scan comme informatives jusqu'à ce que vous connaissiez votre propre trafic.
Étape 5 — Éliminer le spam
Toujours dans l'onglet Canaux, les contrôles anti-spam gardent votre téléphone au calme :
- Intervalle de répétition — la même alerte n'est envoyée qu'une fois par intervalle au maximum.
- Regroupement — une rafale d'événements similaires arrive en un seul message.
- Heures de silence — seules les alertes critiques partent immédiatement ; les autres arrivent dans un résumé à la fin des heures de silence.
- Résumé quotidien — facultatif, pour les alertes de gravité moyenne et informative.
Chaque alerte indique ce qui s'est passé, quel compte, depuis où (adresse, pays, ville, réseau, appareil), pourquoi cela semble suspect et quoi vérifier. Les noms saisis par un attaquant — appareil, application, compte — sont transmis en texte brut : traitez-les comme du texte non fiable.
Étape 6 — Lire l'historique, ajuster, recommencer
L'onglet Aperçu affiche les alertes récentes et l'état du plugin. Historique liste chaque alerte avec le compte, l'adresse, la localisation, l'appareil et les canaux utilisés ; filtrez par gravité, règle et période, ou exportez en CSV. Au bout d'une semaine, examinez ce qui a déclenché : augmentez la gravité des règles qui ne produisent que du bruit dans votre configuration, baissez-la pour tout ce que vous auriez voulu savoir plus tôt.
Conseils et dépannage
- Toutes les alertes affichent la même adresse. C'est votre proxy ou Cloudflare. Configurez votre reverse proxy pour qu'Emby reçoive la véritable adresse du visiteur, et activez Le serveur est derrière son propre proxy dans les Paramètres.
- Aucun message Telegram. Envoyez de nouveau
/startau bot et cliquez sur Rechercher ; vérifiez la gravité minimale du canal. - Pas de localisation. Vérifiez la source de localisation dans les Paramètres ; avec MaxMind, vérifiez l'identifiant de compte et la clé.
- La détection de scan a ses limites. Emby ne journalise qu'une partie des requêtes : les règles de scan voient les 404 et les POST, pas tous les GET. Considérez-les comme un signal parmi d'autres.
- fail2ban est complémentaire, pas redondant. Security Notifications vous dit ce qui se passe ; fail2ban peut agir sur les échecs répétés au niveau du réseau ou du proxy. Utilisez les deux : l'alerte vous prévient, le bannissement réduit le bruit.
- Laissez le canal journal d'activité activé comme solution de repli locale, surtout pendant le réglage des gravités.
- Mises à jour. La page de licence peut installer une mise à jour ou revenir à la version précédente ; redémarrez Emby dans les deux cas. Consultez le changelog pour connaître les changements.
Conclusion
Exposer Emby sur internet est un choix que beaucoup d'entre nous font ; naviguer à l'aveugle n'en est pas un. Avec Security Notifications, vous recevez un message court et lisible quand quelqu'un attaque un compte, se connecte depuis un endroit inattendu, modifie quelque chose de sensible ou sonde votre serveur — et le silence quand tout va bien. Installez-le, connectez un canal, commencez par les règles de gravité élevée et ajustez à partir de l'historique. Si vous bloquez, la base de connaissances et la FAQ sont un bon prochain arrêt, ou contactez-nous.