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, éste es un método clásico
de abrir puertos específicos en tu router
para exponer tu Homelab.
Es simple pero conlleva altos riesgos
de seguridad si dependes sólo de ello.
Ten en mente que NAT usualmente se usa
junto a otros métodos como los anteriores,
pero usarlo sólamente para enrutamiento
de puertos no es recomendado.
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.
Lo mejor 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 nueva cuenta.
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 clic 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,
así 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.
Luego vamos a "Networks",
"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 el exterior.
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 "Add the public hostname".
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 exponerlo.
¿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.
Clic en Me gusta y comparte si llegaste
hasta aquí. Nos vemos luego.