
Tras adquirir un equipo NAS de la marca Ugreen, se me planteó la cuestión de cómo acceder a él y a los distintos servicios que pretendía alojar, de forma remota. Al tratarse de un equipo para uso familiar, dicho acceso debía de poder realizarse de la forma más sencilla posible sin comprometer por ello la seguridad.
Las formas más comunes de abordar éste tema pueden resumirse en tres:
- Utilizar la aplicación del propio fabricante.
- Habilitar un servidor VPN propio.
- Utilizar alguna solución basada en túneles como las proporcionadas por ZeroTier, Tailscale, Cloudflare, etcétera.
Antes de proseguir, quiero enfatizar que todo lo que se va a comentar no es exclusivo para acceder a un equipo NAS, sino que puede hacerse extensible a cualquier otro que forme parte de nuestra red doméstica. Desde el Router, hasta una Raspberry Pi pasando por un miniPC y acabando con nuestro televisor. He decidido centrar el ejemplo en un NAS por la cantidad de servicios y usos que nos puede ofrecer, y porque, después de haber probado distintas soluciones, la considero con mucha diferencia la más óptima de todas.
Acceso mediante aplicación del fabricante
Básicamente se trata de un servicio DDNS como el que ofrecen la práctica totalidad de routers neutros y NAS (Asus, TP-Link, D-Link, Fritzbox, Synology, Ugreen…) o el archiconocido DuckDNS.
De forma muy resumida consiste en asociar nuestra IP Wan (dinámica) a un nombre de subdominio. La idea es facilitar un nombre, mucho más sencillo de recordar que una dirección IP, para acceder a equipos o servicios alojados en nuestro domicilio. Con la ventaja añadida, de que es el servicio DDNS quien se encarga de redireccionar los cambios de IP Wan que lleve a cabo nuestro proveedor de Internet (ISP) al dominio que hayamos registrado.
La forma en que se gestionan los nombres de dominio varía en función del proveedor. DuckDNS permite anteponer un nombre personalizado (subdominio) al dominio (alt43.duckdns.org) mientras que Ugreen utiliza un identificativo iD de hasta 32 caracteres (ug.link/alt43).
Su principal ventaja radica en ser un servicio gratuito e integrado en el sistema operativo. Su mayor desventaja es que tan sólo nos provee el acceso al equipo principal (NAS en éste caso) pero no a los servicios que tengamos corriendo en él.
En el caso de DuckDNS y gracias a su formato de subdominio, sí es posible acceder a servicios internos añadiendo su puerto correspondiente.
Por ejemplo: alt43.duckdns.org:9000 para acceder a Portainer.
Aquí surgirá un pequeño -molesto- inconveniente debido a que la conexión que habilita no está cifrada (TLS), de forma que el navegador mostrará de forma constante el correspondiente aviso. Se puede solucionar fácilmente mediante un Proxy Inverso como Nginx, Traefik, Caddy + Let’s Encrypt.
Acceso mediante servidor VPN propio
Desde hace bastantes años, la mayoría de routers neutros permiten habilitar un servidor VPN, tanto con OpenVPN como con Wireguard. Si no fuera el caso o porque seguimos utilizando el proporcionado por la operadora; todos los NAS permiten la instalación de alguno de ellos. Bien mediante una aplicación nativa o bien mediante Docker.
La mayor ventaja de ésta opción radica en la sencillez a la hora de habilitar el servidor, y que una vez establecida la VPN, tendremos acceso total a nuestra red, equipos y servicios como si estuviéramos conectados de forma local.
Como desventajas:
- Volveremos a encontrarnos el problema de falta de cifrado (TLS) al acceder a equipos y servicios (la solución es la misma que en el caso de los DDNS).
- Tendremos que gestionar todo el mapeo de puertos (NAT) que se requiera.
- Y siendo ésto lo más importante, toda la seguridad del acceso recaerá en nosotros.
Acceso mediante túneles de terceros
Por mi experiencia, resulta de lejos la opción más sencilla y segura.
Sin entrar en demasiados detalles, el acceso tunelizado elimina tanto el router -NAT inclusive, como la falta de cifrado y el tener que gestionar la seguridad de la ecuación. Dos son las soluciones más extendidas:
- SDN ó Software Defined Network.
- Túneles sobre subdominios propios.
SDNs
Si el concepto de SDN te resulta extraño, es posible que hayas oído hablar de soluciones como ZeroTier o Tailscale, las cuales se basan (en mayor o menor medida) en redes definidas por software.
Su despliegue es muy sencillo:
- Nos damos de alta en el servicio gratuito, el cual permite hasta 10 conexiones (Tailscale) ó 25 (ZeroTier) – ésto puede variar.
- Instalamos el servicio en todas y cada una de las ubicaciones que queramos interconectar. Existen versiones para todos los sistemas operativos de escritorio, móviles y mediante Docker.
- El servicio se encarga de levantar una subred propia y tunelizada que habilita la visibilidad entre todas ellas.
- Ambos servicios soportan enrutamiento de subredes; de forma que basta con instalarlo en un equipo de nuestra red (y configurarlo para ello) para que el resto también puedan acceder a la nueva subred tunelizada.
- Elude cualquier tipo de Cgnat por parte del ISP.
Inconvenientes, prácticamente ninguno:
- No hay forma de instalarlo en un Router (Asus plantea incluir Docker en futuros lanzamientos).
- Configurar el enrutamiento de subredes en Docker requiere conocimientos sobre el mismo.
Túneles sobre subdominios propios (Cloudflare)
El servicio en sí mismo, no deja de ser sino un túnel sólo de salida hacía los servidores de Cloudflare, desde donde redirigirán el tráfico siempre que tengamos nuestro dominio usando sus DNS.
En la práctica es mucho más sencillo:
- Registramos o trasladamos un dominio propio en Cloudflare.
- Creamos un túnel definiendo un nombre de subdominio apuntando a la ip LAN + Puerto (si es necesario) donde se encuentra el servicio.
Ejemplo: Supongamos que nuestro NAS tiene la ip privada 192.168.1.4 y el puerto de acceso que nos indica el fabricante es el 9999.
En Cloudflare crearíamos la siguiente linea:
nas.alt43.net -> 192.168.1.4:9999
De ésta forma, podremos acceder desde cualquier localización, de forma segura y sin hacer nada en nuestro Router, al NAS ubicado en nuestro domicilio.
Éste proceso se puede repetir de forma indefinida para cualquier equipo o servicio local; siempre siguiendo la misma plantilla:
Ip LAN de la máquina + puerto del servicio que corre sobre ella
Portainer en nuestro NAS:
portainer.alt43.net -> 192.168.1.4:9000
Raspberry Pi:
raspberry.alt43.net -> 192.168.1.5
Jellyfin en nuestra Raspberry Pi:
jellyfin.alt43.net -> 192.168.1.5:8096
Pese a lo expuesto, también tiene sus desventajas:
- La puesta en marcha de los túneles es sencilla, pero puede llevar un tiempo manejarse por los extensos menús que ofrece el servicio.
- Necesidad de un dominio propio. Actualmente son muy baratos (de 8 a 12 € anuales), pero hay que disponer de uno.
- Tamaño máximo de archivo limitado a 100 Mb en el plan gratuito (Gracias a Audric por la información).
- Compromiso con una empresa. Si bien Cloudflare se caracteriza por su respaldo a la privacidad y ofrecer soluciones gratuitas, ésto puede llegar a cambiar. Además, en España, sufrimos el bloqueo de algunas de sus ips públicas por la mafia del conocido como «Laligagate«. Lo que puede conllevar caídas en el servicio de DNS y túneles.
Conclusiones
La elección de una u otra opción no tiene porque descartar al resto. De hecho, es recomendable disponer de redundancia por si alguna de ellas falla.
Si no disponemos de conocimientos o tiempo, es recomendable empezar por la opción que nos ofrezca el fabricante. Su funcionamiento suele estar contrastado, dispone de soporte oficial y presentan desarrollo a futuro. A posteriori, siempre podremos probar e implementar otras.
