-
Hola a todos, bienvenidos.
-
Hoy vamos a intentar algo distinto.
-
Vamos a empezar una nueva serie de videos
-
sobre las distintas formas de exponer
-
o acceder a Homelab desde internet.
-
Principalmente porque hay muchas opciones
-
y siento que no se habla mucho en YouTube.
-
Sobre todo la parte de seguridad,
la más importante
-
Todos asumen que es segura,
lo cual no es siempre el caso,
-
así que recuerda hacer clic en
Like, suscribirte y compartir,
-
y empecemos.
-
Bien, ¿cómo lo hacemos?
-
para exponer nuestro Homelab
tenemos 5 formas principales.
-
1. Túneles seguros como Cloudflare.
-
2. Proxies inversos como Nginx.
-
3. VPNs tradiciones como
Wireguard o protocolos de OpenVPN.
-
4. Redes Mesh como ZeroTier y Tailscale.
-
y por último 5. El clásico enrutamiento
de puertos o NAT.
-
Así que analicemos cada uno de ellos
para entender sus diferencias.
-
Primero túneles seguros como Cloudflare.
-
A veces se define como túneles seguros
para acceder a tu app sin exponer tu IP
-
facilitando el acceso remoto.
-
También son fáciles de configurar
-
sin embargo, no son muy
seguros al principio
-
y sólo dependen de la seguridad de tu app,
-
pero puede mejorarse.
-
Cubriremos esto más tarde en otro video.
-
Después tenemos proxies
inversos como Nginx.
-
Es un servidor posicionado en el medio,
que envía peticiones a tu Homelab,
-
ayudando a gestionar múltiples
servicios bajo un dominio.
-
Mientras agrega una capa de protección,
-
también tendrás más control
sobre tus servicios,
-
y sobre cómo manejarlos.
-
Sin embargo, expone tu IP y debes abrir
un puerto en tu router para accederlo.
-
Después, VPNs tradicionales
como Wireguard o OpenVPN.
-
Éstas crean un túnel encriptado entre tu dispositivo y tu Homelab
-
haciendo sentir que estás en la misma red local.
-
Son buenas para privacidad y seguridad
-
pero sólo son útiles cuando eres el único usuario porque
-
es imposible compartir el acceso sin entregar tu clave privada
-
a otros usuarios.
-
Luego, redes Mesh como ZeroTier o Tailscale.
-
Éstas son similares a VPNs normales excepto que conectan dispositivos entre ellos
-
en vez de conectarlos a un servidor central.
-
Tienen más control que las VPNs en el sentido de que puedes escoger a cuáles
-
dispositivos compartir, pero debes conectarte manualmente a la red
-
cada vez para cada dispositivo que quieras darle acceso.
-
Finalmente NAT, ésta es una forma clásica de abrir puertos específicos en tu router
-
para exponer tu Homelab.
-
Es simple pero también conlleva altos riesgos de seguridad si dependes sólo de ello.
-
Ten en mente que NAT usualmente se usa junto con otros métodos como los anteriores,
-
pero usarlo sólamente para enrutamiento de puertos no es recomendado para configuraciones de seguridad.
-
Ahora, tal vez te preguntes,
-
¿cuál es el método más seguro para exponer tu Homelab?
-
En realidad, depende de tus apps y de qué quieras hacer.
-
En mi opinión, no es sobre cuál método usar
-
sino sobre cómo los combinas.
-
El mejor método es combinarlos y hacer que funcionen entre ellos
-
para lograr el método perfecto.
-
Bien, primero vamos a cloudflare.com.
-
Ve a "Sign Up"
-
y "Free" en el sitio
-
y creamos una cuenta nueva.
-
Después de esto, si ya tienes un dominio
-
ingrésalo. En mi caso voy a crear un nuevo dominio.
-
Por alguna razón tuve un error al tratar de pagar
-
así que sólo voy a importar un dominio existente. Sólo voy a escribirlo aquí.
-
Bien, entonces ve hacia abajo
-
y escoge el paquete gratuito.
-
Luego haz click en "Continue to Activation".
-
Confirma. Después hacemos algunos cambios.
-
Necesitamos cambiar el nombre del servidor actual
-
con el nombre de servidor de Cloudflare
-
para que Cloudflare controle el dominio.
-
Para hacerlo,
-
vamos al proveedor del dominio, en mi caso es NameCheap.
-
En mi caso voy a "Custom DNS" y luego copio
-
el NAMESERVERS,
-
y luego guardo.
-
Dice que puede tomar hasta 48 horas
-
pero no es cierto, puede tardar unos segundos o minutos máximo
-
Pero, por si acaso
-
si toma mucho tiempo de actualizar
-
es normal así que espera.
-
No hay otra opción.
-
Bien, luego de un rato,
-
llegamos a esta página, significa que todo está bien.
-
Ahora vamos a "Access"
-
y luego "Launch Zero Trust".
-
Escogemos nuestra cuenta.
-
Luego vamos a "Access".
-
Después escogemos un nombre de equipo,
-
cualquier cosa.
-
Después escogemos el pack gratuito,
-
no hay que pagar.
-
Después vamos a "Netwotks",
-
"Tunnels",
-
y añadimos un túnel.
-
Escogemos el de Cloudflare.
-
Nombramos nuestro túnel Homelab_test.
-
Luego nos dará a escoger nuestro entorno,
-
en este caso sólo escoge Docker
-
y copiamos el comentario
-
porque sólo necesitamos el token. No necesitamos correr algo en Docker.
-
Después vamos a TrueNAS
-
e instalamos
-
la app de Cloudflare.
-
Ésta.
-
Y aquí pegamos lo que tenemos
-
y seguimos.
-
Borra todo, sólo deja el token
-
Va todo antes de esto.
-
Listo.
-
No necesitamos configurar algo más.
-
Ni el almacenamiento, no es necesario.
-
E instalamos.
-
Bien, ya esta listo y andando.
-
Volvemos al perfil de Cloudflare.
-
Ahora esperamos hasta tener algo en Connectors.
-
Buscará automáticamente.
-
Muy bien, aquí vamos.
-
Está conectado. Podemos continuar.
-
Siguiente.
-
Estamos listos para añadir nuestro primer servicio.
-
Empecemos por añadir el mismo TrueNAS.
-
Sólo copiamos la IP.
-
Luego escogemos el subdominio
-
TrueNAS
-
y elegimos el dominio.
-
Luego escogemos HTTP
-
y después la IP.
-
No hay algo para escoger acá.
-
Guardamos.
-
Para probar esto voy a desconectarme de la VPN.
-
Como no estoy en casa, estoy conectado a mi VPN hogareña.
-
Sólo voy a desactivar esto y hacer esto
-
para mostrarles que si trato de acceder a la misma IP
-
no funcionará, porque me desconecté de la VPN.
-
Y si trato
-
un dominio,
-
nuevo dominio,
-
funciona.
-
Así que ahora
-
TrueNAS es accesible
-
desde afuera.
-
Pero esto no es recomendado.
-
Si quieres exponer apps sólo hazlo individualmente,
-
no expongas todo.
-
Así que,
-
ahora voy a borrarla
-
y agregaré algo.
-
Bien, ahora quiero agregar otro servicio.
-
Talvez, Proxmox.
-
Vamos a "Añadir nombre de host público".
-
Proxmox.
-
Lo mismo.
-
Aquí escogemos HTTPS en vez de HTTP
-
y luego la IP
-
como así también el puerto que es 8
-
8006,
-
y luego vamos a Additional Settings, TLS
-
y activamos No TLS Verify.
-
No revisará certificados.
-
Bien, ahora guardamos.
-
Intentemos otra vez.
-
¡Bien! Ahora funciona.
-
Y desconectamos la VPN.
-
y actualizamos.
-
y sigue funcionando.
-
Bueno, ahora antes de terminar el video
-
hagamos un último servicio, Paperless.
-
Como ya vimos esto en un video anterior,
-
vamos a ver cómo exponer ésto.
-
¿Porqué escogí Paperless? Porque es algo complicado de configurar.
-
No es tan simple como
-
añadir un nombre de host.
-
Primero añadimos el nombre de host,
-
lo mismo de siempre,
-
HTTPS, y luego tomamos la URL,
-
la cual es la IP y el puerto.
-
Escoge HTTP no HTTTPS.
-
Nombre de servicio.
-
Entonces, primero funcionará normalmente
-
cuando trato de acceder.
-
Muy bien.
-
Pero el problema está cuando tratas de conectarte.
-
Tienes este error. La verificación CSRF falló.
-
¿Porqué?
-
Necesitamos cambiar algunas cosas para que sea accesible.
-
Según la documentación,
-
necesitamos definir esta variable de entorno PAPERLESS_URL
-
y definir el nombre de dominio
-
que usamos en Cloudflare.
-
Así que hagamos eso.
-
Ve a Paperless > Edit
-
y sólo la añadimos como variable de entorno aquí.
-
PAPERLES_URL.
-
Ponemos paperless, punto, tu dominio,
-
asegúrate de añadir HTTPS al principio,
-
y listo. Actualizar.
-
En caso de que te quedes en Deploying,
-
el cual fue mi caso,
-
no estoy seguro pero el contenedor Paperless
-
se quedó así por un largo tiempo.
-
Así que lo que hice fue detener esta instancia
-
y crear otra instancia
-
usando el dataset ya creado.
-
Así no pierdes ninguno de tus archivos.
-
Así que empecemos otra instancia.
-
Llamémosla paperless-cloudflare.
-
Puedes cambiar la clave si quieres.
-
Por cierto, puedes usar la llave secreta que quieras. Escoge cualquiera.
-
No necesitas recordarla.
-
Bien, añade un email,
-
uno falso.
-
Contraseña.
-
Ahora añadimos otra vez la variable de entorno
-
PAPERLESS_URL
-
HTTPS
-
paperless
-
punto
-
tu dominio,
-
y luego añadimos la otra ruta del puerto.
-
Paperless, éstos son los datos.
-
Copiemos esto.
-
Y ahora Media,
-
y luego Consume,
-
y Trash.
-
Esto es Postgre.
-
Recuerda activar "Automatic Permissions".
-
Luego instalamos.
-
Esperemos un poco. Funciona pero tarda.
-
Bien, ya está funcionando.
-
Corrámosla.
-
Primero obtenemos la IP,
-
es decir, el puerto IP, es lo mismo.
-
Vuelve a Cloudflare.
-
Haz clic.
-
Voy a poner el puerto nuevo.
-
Guardar.
-
Intentemos ahora.
-
Bien, una nueva contraseña.
-
Y ahora funciona, sin el error anterior.
-
Y como ven, aún tenemos el mismo documento
-
que antes de perderlo todo.
-
Aún tenemos todos nuestros documentos.
-
Los abrimos.
-
Y todo funciona bien.
-
Eso es.
-
Básicamento, así es como
-
expones tus servicios a la nube.
-
En resumen:
-
Así es como puedes exponer tu app.
-
No accedemos directamente a ella, sino al servidor en la nube,
-
al servidor Cloudflare, que conectará
-
con tu red LAN a través de Cloudflare,
-
y luego
-
dará acceso a tu app.
-
De esta forma no accederás directamente a tu app, exponiendo
-
tu IP y no irás a través de NAT,
-
no necesitas abrir un puerto.
-
Pero ten cuidado si tu app es insegura y eres hackeado.
-
Así expones todo tu Homelab.
-
Sin importar si usas o no Cloudflare.
-
Haz clic en Me gusta y comparte si haz llegado hasta aquí.
Nos vemos en el siguiente video.