Configurar Caddy para exponer solo enlaces de compartir en servicios privados

Fuentes: Configuring Caddy to Expose Only Share Links from Private Services

Este artículo técnico detalla cómo utilizar el proxy inverso Caddy para exponer selectivamente enlaces de compartir de servicios privados, como Immich o Nextcloud, sin comprometer la seguridad de la infraestructura. El objetivo es permitir que usuarios externos accedan al contenido mediante un enlace directo, sin necesidad de instalar clientes VPN ni crear cuentas, manteniendo el resto del servicio restringido a la red privada.

La solución se basa en la directiva forward_auth de Caddy, que actúa como un filtro de autenticación previa. Antes de reenviar una solicitud al servicio principal, Caddy verifica si el enlace proporcionado es válido consultando una ruta específica de la API del servicio. Si la clave de compartir es válida, el acceso se autoriza; si no, se devuelve un error 404, impidiendo que el visitante descubra la existencia del servicio.

El artículo proporciona ejemplos prácticos para Immich y Nextcloud, mostrando cómo configurar reglas de expresión regular estrictas para restringir las rutas de API accesibles. Se elimina la autenticación tradicional mediante cabeceras, limitando el acceso únicamente a las rutas necesarias para la visualización de contenido compartido. Este enfoque minimiza la superficie de ataque, ya que el servicio completo sigue siendo accesible solo a través de la VPN, y solo se exponen las rutas mínimas requeridas para la funcionalidad de compartir.