Edge Shield para Emby — guía

Instalación

Necesitas Emby Server 4.10.1 o posterior.

  1. Inicia sesión en tu cuenta de MediaLab Works, abre Licenses y descarga el DLL del plugin (disponible con una suscripción activa, con una licencia de por vida dentro de su período de actualizaciones o durante la prueba gratuita de 30 días).
  2. Copia el DLL en la carpeta de plugins de Emby y reinicia Emby Server:
    • Linux (paquete): /var/lib/emby/plugins/
    • Docker: la carpeta plugins dentro del volumen de configuración de Emby
    • Windows: %AppData%\Emby-Server\programdata\plugins\
  3. Abre Edge Shield en el menú del panel de Emby y haz clic en License. Pega tu clave de licencia y actívala, o escribe tu correo para empezar la prueba gratuita de 30 días o comprar una licencia. El plugin contacta con el servidor de licencias, vincula la clave a este servidor de Emby y muestra la licencia como Active.

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; después se detiene hasta que pueda comprobarla de nuevo.

Licencia

Sin una licencia válida, el plugin se detiene; solo sigue funcionando la página License (desde ella puedes empezar la prueba, comprar, introducir la clave o actualizar).

Con una licencia válida, esa misma página puede instalar una actualización o volver a la versión anterior si una actualización causa problemas. Reinicia Emby después de cualquiera de las dos.

Configuración

  1. Connection: en Cloudflare crea un token de API (Create Token → Custom token), restringido a tu zona, con los permisos que enumera la página: 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 y Account · Account Filter Lists · Edit. Pégalo y, después, elige la zona (tu dominio). El token se guarda cifrado en el servidor y nunca se vuelve a mostrar; un permiso que falta se indica en la página de estado.
  2. Mode:
    • Recomendado: la interfaz a través de Cloudflare, el vídeo directo («stream offload»). El app host pasa por el proxy de Cloudflare; las solicitudes de vídeo, audio y descarga se redirigen (307) al streaming host, que está como «DNS only» y va directo a tu servidor.
    • DNS only (sin proxy): Cloudflare solo para DNS, DDNS y el certificado. Las reglas WAF y el bloqueo en el borde no se aplican, porque el tráfico no pasa por Cloudflare.
  3. Nombres y puertos: el app host (por ejemplo media.example.com) con el puerto HTTPS que usan tus clientes (443, o uno de los puertos que Cloudflare proxifica: 2053, 2083, 2087, 2096, 8443), el puerto externo que tu router redirige al servidor (si es distinto, Edge Shield añade una regla de origen) y el streaming host (por ejemplo direct.example.com) con su puerto HTTPS externo. La IPv4 pública se detecta cuando el campo está vacío; el DDNS mantiene los registros actualizados cuando cambia.
  4. Certificado del servidor: Let's Encrypt automáticamente (DNS-01, con el token) para ambos nombres, o uno que gestiones tú. Full (strict) necesita un certificado válido en el servidor. El certificado se renueva 30 días antes de caducar.
  5. TLS: la versión mínima de TLS y, opcionalmente, HSTS en el app host (actívalo solo cuando HTTPS funcione de forma fiable; es difícil de deshacer).
  6. Protección: bloqueo automático de las IP con inicios de sesión fallidos (5 en 10 minutos y 24 horas por defecto, ×4 en cada repetición), las IP o rangos CIDR que nunca deben bloquearse, el límite de velocidad de inicio de sesión (más de 10 solicitudes en 10 s desde una IP → bloqueo de 10 s), el bloqueo de las cabeceras IP enviadas por el cliente y los países permitidos (códigos ISO; vacío significa todos).
  7. Guarda y, después, abre Status and fixes y haz clic en Fix everything, para que los ajustes y las reglas lleguen a Cloudflare y a Emby. Reinicia Emby Server cuando la página lo indique (los ajustes de HTTPS, el certificado y la dirección reenviada se aplican tras reiniciar).

Uso diario

  • La página de estado comprueba el token, los registros DNS, los ajustes de TLS, el certificado, las reglas, la IP real del cliente y HTTPS en Emby; cada problema tiene un botón Fix.
  • Blocked IPs: la lista muestra la dirección, el motivo y la caducidad; puedes desbloquear una IP o bloquear una a mano, con una nota y una duración. Tu LAN, los rangos de Cloudflare y la lista de permitidos nunca se bloquean.
  • Under Attack: actívalo de 30 minutos a 12 horas durante un ataque; se desactiva solo. Mientras está activo, las apps nativas (Android TV, Roku, iOS, Kodi…) no pueden conectarse.
  • Restricción de puertos (firewall): la página muestra comandos listos para que solo Cloudflare alcance el puerto del app host; Edge Shield nunca cambia tu firewall por sí mismo.
  • Remove the Edge Shield rules borra solo las reglas que creó el plugin; los ajustes de DNS y TLS se quedan como están.

Qué envía y adónde

  • A Cloudflare, con tu token: los ajustes de la zona, los registros DNS con tu IP pública, las reglas y las IP que bloquear. El comentario de una entrada de la lista de bloqueo solo contiene la caducidad y el motivo (el número de inicios de sesión fallidos, o «manual» con tu nota). Desde la versión 0.1.1 el nombre de usuario intentado no se envía a Cloudflare; permanece en la lista de bloqueo y en el registro de tu servidor.
  • https://www.cloudflare.com/cdn-cgi/trace para detectar la IP pública, y la API pública de Cloudflare para sus rangos de IP (cada día).
  • A Let's Encrypt: la solicitud de certificado para tus nombres de host; la clave privada permanece en tu servidor.
  • No va nada a medialab.works salvo la comprobación de la licencia.

Resolución de problemas

  • «The token lacks the … permission»: edita el token en Cloudflare, añade el permiso que se muestra y vuelve a hacer clic en Fix.
  • «Video would flow through the Cloudflare CDN»: el app host está proxificado pero no hay ningún streaming host configurado. Configura un streaming host («DNS only») o cambia al modo DNS only.
  • «The server's public IP could not be detected»: introduce la IPv4 pública en los ajustes.
  • Las apps no pueden conectarse: comprueba que Under Attack esté desactivado y que el puerto externo del streaming host se redirija al puerto HTTPS de Emby.
  • Los cambios no aparecen en Emby: la página de estado indica Restart needed; reinicia Emby Server.