-
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.