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.
Son similares a VPNs normales, sólo 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 agregar.
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.