Por qué un servidor Emby público necesita oídos
Si tu servidor Emby responde en una dirección pública, ahora mismo lo están escaneando. Los bots recorren rutas habituales, prueban un puñado de contraseñas y siguen adelante. Casi todo ese ruido es inofensivo, pero entre él se esconden los pocos eventos que importan: alguien probando contraseñas en tus cuentas, un inicio de sesión desde un país en el que nunca has estado, un administrador nuevo que no has creado o una sonda a /.env.
El problema no es la detección —Emby ya registra mucho—, sino la atención. No quieres leer un archivo de registro cada mañana. Quieres un mensaje corto en el móvil cuando algo merezca la pena mirarlo.
Eso es exactamente lo que hace Security Notifications: vigila tu servidor Emby en busca de eventos anómalos y sensibles para la seguridad y envía alertas a Telegram, por correo, a un webhook o al registro de actividad de Emby. En este tutorial verás cómo instalarlo, configurar un canal y ajustar las reglas para que las alertas sigan siendo útiles. La referencia completa está en la guía de usuario.
Requisitos previos
- Emby Server 4.10.1 o posterior, en Linux, Windows o Docker.
- Una cuenta de MediaLab Works con una licencia activa, una licencia de por vida dentro de su ventana de actualizaciones o la prueba gratuita de 30 días.
- Un canal de entrega: un bot de Telegram, un servidor SMTP o una dirección de webhook (Discord, Slack, ntfy, Gotify o JSON sin formato). El registro de actividad de Emby funciona sin ninguno de ellos.
- Opcional pero recomendable: un proxy inverso que reenvíe la dirección real del visitante, para que las alertas muestren la IP del atacante y no la de tu proxy.
Paso 1 — Instalar el plugin
- Inicia sesión en tu cuenta de MediaLab Works, abre Licenses y descarga el DLL del plugin.
- Cópialo en la carpeta de plugins de Emby y reinicia Emby Server:
- Linux (paquete):
/var/lib/emby/plugins/ - Docker: la carpeta
pluginsdentro de tu volumen de configuración de Emby - Windows:
%AppData%\Emby-Server\programdata\plugins\
- Linux (paquete):
- Abre Security Notifications en el menú del panel de Emby, haz clic en Open License page, pega tu clave de licencia y actívala, o introduce tu correo para empezar la prueba. La licencia se comprueba una vez al día y en cada arranque de Emby; sin internet, el plugin sigue funcionando 7 días después de la última comprobación correcta.
Sin una licencia válida el plugin se detiene: no se ejecuta ninguna regla ni se envía ninguna alerta, aunque tus ajustes y tu historial se conservan.
Paso 2 — Conectar un canal y enviar una prueba
Abre el plugin y ve a la pestaña Channels. Todos los canales están desactivados por defecto y cada uno tiene su propia gravedad mínima.
Telegram. Crea un bot, pega su token, envía /start al bot (o añádelo a un grupo) y haz clic en Find para rellenar el chat. Usa Send a test para confirmar que el mensaje llega.
Correo. Introduce los destinatarios y tu servidor SMTP. Se recomienda el puerto 587 con STARTTLS; el puerto 465 con TLS implícito no es compatible. Si tienes instalado el plugin Registration, puedes reutilizar su servidor SMTP.
Webhook. Elige Discord, Slack, ntfy, Gotify o JSON y pega la dirección. Para Gotify, añade ?token=… a la dirección /message. La dirección contiene el token y se guarda aparte de los ajustes.
Registro de actividad de Emby. Las alertas también aparecen en la lista de actividad del panel, una buena base mientras ajustas.
Empieza con Telegram o correo con una gravedad mínima alta y deja activado el registro de actividad.
Paso 3 — Configurar la ubicación y los aspectos básicos de red
En Settings:
- Ubicación: elige DB-IP Lite (gratis, sin cuenta), MaxMind GeoLite2 (tu id de cuenta y clave de licencia) o desactívala. La geolocalización se hace en local; las direcciones IP no se envían a ningún sitio. Sin una fuente de ubicación, las reglas de país nuevo, viaje imposible y red nueva no pueden funcionar.
- Red: indica las redes de confianza en CIDR —tu propia VPN, por ejemplo—. Las redes privadas se incluyen automáticamente. Activa The server is behind its own proxy si Emby está detrás de nginx, Caddy, Traefik o similar, para que se esperen las cabeceras reenviadas. Cloudflare se reconoce por sí solo.
- Listas de IP maliciosas: las salidas de Tor (actualizadas cada hora) y Spamhaus DROP (a diario) están activadas por defecto y se pueden desactivar.
Si más adelante todas las alertas muestran la misma dirección, este es el ajuste que debes revisar; consulta la sección de solución de problemas.
Paso 4 — Decidir qué reglas merecen una alerta
La pestaña Rules contiene 20 reglas, cada una con su propio interruptor, su gravedad y, cuando corresponde, sus umbrales. Piénsalas en cuatro grupos.
Ataques a cuentas. Una ráfaga de contraseñas incorrectas desde una dirección, muchas cuentas probadas desde la misma dirección (password spraying), un inicio de sesión correcto tras muchos fallos, una cuenta bloqueada. Son las señales clásicas de que alguien está adivinando. El umbral lo pones tú: cuántas contraseñas incorrectas en cuántos minutos.
Inicios de sesión inusuales. Un país nuevo para la cuenta o un viaje imposible: dos lugares demasiado lejanos en demasiado poco tiempo. Para administradores: un inicio de sesión desde un dispositivo nuevo, una red nueva, desde fuera de la red local o a una hora inusual. También inicios de sesión desde una salida de Tor o desde una red maliciosa conocida.
Cambios sensibles. Un administrador nuevo o derechos sensibles concedidos, una contraseña cambiada, una cuenta eliminada, una clave de API creada o eliminada, un plugin instalado, actualizado o eliminado y ajustes críticos modificados (acceso remoto, HTTPS, proxies de confianza, puertos, UPnP). Son eventos silenciosos y son justo los que quieres conocer.
Daños y signos de compromiso. Eliminación masiva de una biblioteca, una cuenta usada desde demasiados sitios a la vez, una sesión activa de una cuenta deshabilitada. Escaneos y sondas como /.env, wp-login o path traversal, cabeceras de proxy falsificadas, uso de "Forgot password", los archivos conocidos del ataque de mayo de 2023 a servidores Emby, DLL que aparecen en la carpeta de plugins sin una instalación desde catálogo y una versión del servidor con vulnerabilidades publicadas.
Un punto de partida práctico: mantén las reglas de ataques a cuentas y de cambios sensibles en gravedad alta, deja activadas las de país nuevo y viaje imposible cuando la ubicación funcione, y trata las reglas de escaneo como informativas hasta que conozcas cómo es tu propio tráfico.
Paso 5 — Filtrar el spam
También en la pestaña Channels, los controles antispam mantienen tu móvil en silencio:
- Intervalo de repetición: la misma alerta se envía como máximo una vez por intervalo.
- Agrupación: una ráfaga de eventos similares llega como un solo mensaje.
- Horas de silencio: solo las alertas críticas salen al momento; el resto llega en un resumen cuando terminan las horas de silencio.
- Resumen diario: opcional, para alertas de gravedad media e informativas.
Cada alerta te dice qué ha pasado, qué cuenta, desde dónde (dirección, país, ciudad, red, dispositivo), por qué parece sospechoso y qué revisar. Los nombres escritos por un atacante —dispositivo, aplicación, cuenta— se transmiten como texto plano, así que trátalos como texto no confiable.
Paso 6 — Leer el historial, ajustar y repetir
La pestaña Overview muestra las alertas recientes y el estado del plugin. History lista todas las alertas con la cuenta, la dirección, la ubicación, el dispositivo y los canales a los que se enviaron; filtra por gravedad, regla y periodo, o exporta a CSV. Tras una semana, revisa qué se ha disparado: sube la gravedad de las reglas que para tu configuración son puro ruido y bájala en las que te habría gustado saber antes.
Consejos y solución de problemas
- Todas las alertas muestran la misma dirección. Es tu proxy o Cloudflare. Configura tu proxy inverso para que Emby reciba la dirección real del visitante y activa The server is behind its own proxy en Settings.
- No llegan mensajes de Telegram. Envía
/startal bot de nuevo y haz clic en Find; comprueba la gravedad mínima del canal. - No hay ubicación. Revisa la fuente de ubicación en Settings; con MaxMind, comprueba el id de cuenta y la clave.
- La detección de escaneos tiene límites. Emby solo registra algunas peticiones, así que las reglas de escaneo ven 404 y POST, no todos los GET. Trátalas como una señal más entre varias.
- fail2ban es complementario, no redundante. Security Notifications te dice qué está pasando; fail2ban puede actuar ante fallos repetidos en la capa de red o del proxy. Usa ambos: la alerta te avisa de que ocurre y el bloqueo reduce el ruido.
- Mantén activado el canal del registro de actividad como respaldo local, sobre todo mientras sigues ajustando gravedades.
- Actualizaciones. La página de licencia puede instalar una actualización o volver a la versión anterior; reinicia Emby después de cualquiera de las dos. Consulta el changelog para ver qué ha cambiado.
Conclusión
Exponer Emby a internet es una decisión que muchos tomamos; hacerlo a ciegas, no. Con Security Notifications recibes un mensaje corto y legible cuando alguien ataca una cuenta, inicia sesión desde un sitio inesperado, cambia algo sensible o sondea tu servidor, y silencio cuando no pasa nada. Instálalo, conecta un canal, empieza por las reglas de gravedad alta y ajusta a partir del historial. Si te atascas, la base de conocimiento y las preguntas frecuentes son un buen siguiente paso, o contacta con nosotros.