WEBVTT 00:00:00.521 --> 00:00:02.162 Hola a todos, bienvenidos. 00:00:02.162 --> 00:00:05.092 Hoy vamos a intentar algo distinto. 00:00:05.142 --> 00:00:08.126 Vamos a empezar una nueva serie de videos 00:00:09.247 --> 00:00:11.621 sobre las distintas formas de exponer 00:00:11.621 --> 00:00:14.059 o acceder a Homelab desde internet. NOTE Paragraph 00:00:14.779 --> 00:00:17.411 Principalmente porque hay muchas opciones 00:00:18.411 --> 00:00:21.131 y siento que no se habla mucho en YouTube. 00:00:21.393 --> 00:00:24.735 Sobre todo la parte de seguridad, la más importante NOTE Paragraph 00:00:24.799 --> 00:00:28.675 Todos asumen que es segura, lo cual no es siempre el caso, 00:00:28.885 --> 00:00:31.748 así que recuerda hacer clic en Like, suscribirte y compartir, 00:00:31.929 --> 00:00:33.450 y empecemos. 00:00:33.738 --> 00:00:35.256 Bien, ¿cómo lo hacemos? 00:00:35.527 --> 00:00:38.719 para exponer nuestro Homelab tenemos 5 formas principales. 00:00:39.126 --> 00:00:41.689 1. Túneles seguros como Cloudflare. 00:00:42.058 --> 00:00:44.000 2. Proxies inversos como Nginx. 00:00:44.289 --> 00:00:48.129 3. VPNs tradiciones como Wireguard o protocolos de OpenVPN. 00:00:48.493 --> 00:00:51.204 4. Redes Mesh como ZeroTier y Tailscale. 00:00:51.531 --> 00:00:55.349 y por último 5. El clásico enrutamiento de puertos o NAT. 00:00:55.349 --> 00:00:59.146 Así que analicemos cada uno de ellos para entender sus diferencias. 00:00:59.441 --> 00:01:02.330 Primero túneles seguros como Cloudflare. 00:01:02.330 --> 00:01:06.722 A veces se define como túneles seguros para acceder a tu app sin exponer tu IP 00:01:06.722 --> 00:01:08.856 facilitando el acceso remoto. 00:01:08.856 --> 00:01:10.949 También son fáciles de configurar 00:01:11.129 --> 00:01:14.169 sin embargo, no son muy seguros al principio 00:01:14.240 --> 00:01:16.916 y sólo dependen de la seguridad de tu app, 00:01:16.916 --> 00:01:18.520 pero puede mejorarse. 00:01:18.520 --> 00:01:21.599 Cubriremos esto más tarde en otro video. 00:01:21.599 --> 00:01:24.154 Después tenemos proxies inversos como Nginx. 00:01:24.226 --> 00:01:28.198 Es un servidor posicionado en el medio, que envía peticiones a tu Homelab, 00:01:28.416 --> 00:01:31.520 ayudando a gestionar múltiples servicios bajo un dominio. 00:01:31.662 --> 00:01:33.758 Mientras agrega una capa de protección, 00:01:33.758 --> 00:01:38.660 también tendrás más control sobre tus servicios, 00:01:38.983 --> 00:01:40.668 y sobre cómo manejarlos. 00:01:41.032 --> 00:01:46.288 Sin embargo, expone tu IP y debes abrir un puerto en tu router para accederlo. 00:01:47.000 --> 00:01:51.006 Después, VPNs tradicionales como Wireguard o OpenVPN. 00:01:51.006 --> 00:01:54.938 Éstas crean un túnel encriptado entre tu dispositivo y tu Homelab, 00:01:55.076 --> 00:01:57.854 haciendo sentir que estás en la misma red local. 00:01:57.854 --> 00:02:00.634 Son buenas para privacidad y seguridad, 00:02:00.634 --> 00:02:03.318 pero sólo son útiles cuando eres el único usuario porque 00:02:03.318 --> 00:02:07.198 es imposible compartir el acceso sin entregar tu clave privada 00:02:07.198 --> 00:02:09.530 a otros usuarios. 00:02:09.530 --> 00:02:14.306 Luego, redes Mesh como ZeroTier o Tailscale. 00:02:14.306 --> 00:02:18.984 Son similares a VPNs normales, sólo que conectan dispositivos entre ellos 00:02:18.984 --> 00:02:21.702 en vez de conectarlos a un servidor central. 00:02:21.702 --> 00:02:25.476 Tienen más control que las VPNs en el sentido de que puedes escoger a cuáles 00:02:25.476 --> 00:02:29.067 dispositivos compartir, pero debes conectarte manualmente a la red 00:02:29.067 --> 00:02:31.606 cada vez para cada dispositivo que quieras agregar. 00:02:31.606 --> 00:02:36.176 Finalmente NAT, éste es un método clásico de abrir puertos específicos en tu router 00:02:36.176 --> 00:02:37.667 para exponer tu Homelab. 00:02:37.667 --> 00:02:42.200 Es simple pero conlleva altos riesgos de seguridad si dependes sólo de ello. 00:02:42.200 --> 00:02:46.623 Ten en mente que NAT usualmente se usa junto a otros métodos como los anteriores, 00:02:46.750 --> 00:02:50.843 pero usarlo sólamente para enrutamiento de puertos no es recomendado. 00:02:51.402 --> 00:02:52.773 Ahora, tal vez te preguntes, 00:02:53.137 --> 00:02:56.117 ¿cuál es el método más seguro para exponer tu Homelab? NOTE Paragraph 00:02:56.236 --> 00:02:59.759 En realidad, depende de tus apps y de qué quieras hacer. 00:02:59.759 --> 00:03:02.555 En mi opinión, no es sobre cuál método usar 00:03:02.555 --> 00:03:05.529 sino sobre cómo los combinas. 00:03:05.529 --> 00:03:09.779 Lo mejor es combinarlos y hacer que funcionen entre ellos 00:03:09.779 --> 00:03:11.731 para lograr el método perfecto. 00:03:13.593 --> 00:03:16.780 Bien, primero vamos a cloudflare.com. 00:03:16.780 --> 00:03:18.320 Ve a "Sign up", 00:03:18.767 --> 00:03:21.625 y "Free" en el sitio, 00:03:23.020 --> 00:03:25.981 y creamos una nueva cuenta. 00:03:29.304 --> 00:03:32.378 Después de esto, si ya tienes un dominio 00:03:32.379 --> 00:03:36.447 ingrésalo. En mi caso voy a crear un nuevo dominio. 00:03:39.574 --> 00:03:42.307 Por alguna razón tuve un error al tratar de pagar 00:03:42.506 --> 00:03:47.308 así que sólo voy a importar un dominio existente. Sólo voy a escribirlo aquí. 00:03:51.347 --> 00:03:53.683 Bien, entonces ve hacia abajo 00:03:54.517 --> 00:03:56.227 y escoge el paquete gratuito. 00:03:59.963 --> 00:04:02.678 Luego haz clic en "Continue to activation". 00:04:03.224 --> 00:04:07.187 Confirma. Después hacemos algunos cambios. 00:04:07.467 --> 00:04:10.949 Necesitamos cambiar el nombre del servidor actual 00:04:11.124 --> 00:04:12.859 con el nombre de servidor de Cloudflare 00:04:13.243 --> 00:04:16.360 para que Cloudflare controle el dominio. 00:04:16.750 --> 00:04:17.631 Para hacerlo, 00:04:17.957 --> 00:04:22.157 vamos al proveedor del dominio, en mi caso es NameCheap. 00:04:25.978 --> 00:04:30.843 En mi caso voy a "Custom DNS" y luego copio 00:04:35.710 --> 00:04:37.504 el NAMESERVERS, 00:04:38.754 --> 00:04:39.796 y luego guardo. 00:04:42.779 --> 00:04:46.192 Dice que puede tomar hasta 48 horas 00:04:46.192 --> 00:04:49.761 pero no es cierto, puede tardar unos segundos o minutos máximo 00:04:50.361 --> 00:04:52.118 Pero, por si acaso, 00:04:53.139 --> 00:04:55.176 si toma mucho tiempo de actualizar 00:04:55.426 --> 00:04:58.024 es normal así que espera. 00:04:58.254 --> 00:05:00.183 No hay otra opción. 00:05:00.725 --> 00:05:02.085 Bien, luego de un rato, 00:05:02.085 --> 00:05:04.453 llegamos a esta página, así que todo está bien. 00:05:04.603 --> 00:05:07.324 Ahora vamos a "Access" 00:05:07.524 --> 00:05:09.709 y luego "Launch Zero Trust". 00:05:10.446 --> 00:05:11.865 Escogemos nuestra cuenta. 00:05:12.218 --> 00:05:14.409 Luego vamos a "Access". 00:05:15.202 --> 00:05:17.558 Después escogemos un nombre de equipo, 00:05:17.599 --> 00:05:18.783 cualquier cosa. 00:05:23.051 --> 00:05:26.135 Después escogemos el pack gratuito, 00:05:27.473 --> 00:05:29.562 no hay que pagar. 00:05:33.126 --> 00:05:34.940 Luego vamos a "Networks", 00:05:35.299 --> 00:05:36.254 "Tunnels", 00:05:37.337 --> 00:05:39.403 y añadimos un túnel. 00:05:39.595 --> 00:05:41.237 Escogemos el de Cloudflare. 00:05:41.581 --> 00:05:45.112 Nombramos nuestro túnel Homelab_test. 00:05:47.279 --> 00:05:50.189 Luego nos dará a escoger nuestro entorno, 00:05:50.339 --> 00:05:53.319 en este caso sólo escoge Docker, 00:05:53.404 --> 00:05:55.267 y copiamos el comentario 00:05:55.267 --> 00:06:00.015 porque sólo necesitamos el token. No necesitamos correr algo en Docker. 00:06:00.104 --> 00:06:01.747 Después vamos a TrueNAS 00:06:02.278 --> 00:06:03.742 e instalamos 00:06:03.942 --> 00:06:05.846 la app de Cloudflare. 00:06:07.320 --> 00:06:08.621 Ésta. 00:06:10.581 --> 00:06:13.442 Y aquí pegamos lo que tenemos 00:06:13.442 --> 00:06:14.577 y seguimos. 00:06:15.957 --> 00:06:19.195 Borra todo, sólo deja el token. 00:06:24.636 --> 00:06:27.117 Va todo antes de esto. 00:06:29.145 --> 00:06:30.366 Listo. 00:06:31.599 --> 00:06:34.373 No necesitamos configurar algo más. 00:06:35.159 --> 00:06:37.754 Ni el almacenamiento, no es necesario. 00:06:39.630 --> 00:06:40.859 E instalamos. 00:06:43.528 --> 00:06:45.364 Bien, ya esta listo y andando. 00:06:45.791 --> 00:06:47.918 Volvemos al perfil de Cloudflare. 00:06:48.858 --> 00:06:52.825 Ahora esperamos hasta tener algo en "Connectors". 00:06:53.067 --> 00:06:54.585 Buscará automáticamente. 00:06:54.585 --> 00:06:56.029 Muy bien, aquí vamos. 00:06:56.029 --> 00:06:58.749 Está conectado. Podemos continuar. 00:06:58.922 --> 00:07:00.107 Siguiente. 00:07:01.852 --> 00:07:05.704 Estamos listos para añadir nuestro primer servicio. 00:07:06.627 --> 00:07:09.269 Empecemos por añadir el mismo TrueNAS. 00:07:09.529 --> 00:07:11.873 Sólo copiamos la IP. 00:07:15.334 --> 00:07:17.046 Luego escogemos el subdominio 00:07:17.280 --> 00:07:18.047 TrueNAS 00:07:18.485 --> 00:07:19.548 y elegimos el dominio. 00:07:20.894 --> 00:07:22.920 Luego escogemos HTTP 00:07:24.338 --> 00:07:25.860 y después la IP. 00:07:26.715 --> 00:07:30.052 No hay algo para escoger acá. 00:07:30.228 --> 00:07:31.116 Guardamos. 00:07:33.201 --> 00:07:35.850 Para probar esto voy a desconectarme de la VPN. 00:07:36.267 --> 00:07:40.501 Como no estoy en casa, estoy conectado a mi VPN hogareña. 00:07:40.811 --> 00:07:43.639 Sólo voy a desactivar esto y hacer esto 00:07:44.952 --> 00:07:50.706 para mostrarles que si trato de acceder a la misma IP 00:07:52.710 --> 00:07:56.366 no funcionará, porque me desconecté de la VPN. 00:07:56.870 --> 00:07:58.017 Y si trato 00:07:58.642 --> 00:07:59.685 un dominio, 00:08:00.206 --> 00:08:01.164 nuevo dominio, 00:08:04.502 --> 00:08:05.315 funciona. 00:08:05.608 --> 00:08:06.356 Así que ahora 00:08:09.027 --> 00:08:10.915 TrueNAS es accesible 00:08:11.201 --> 00:08:12.140 desde el exterior. 00:08:12.518 --> 00:08:15.155 Pero esto no es recomendado. 00:08:15.155 --> 00:08:18.913 Si quieres exponer apps sólo hazlo individualmente, 00:08:19.238 --> 00:08:21.253 no expongas todo. 00:08:21.709 --> 00:08:22.773 Así que, 00:08:23.500 --> 00:08:25.358 ahora voy a borrarla 00:08:25.714 --> 00:08:28.507 y agregaré algo. 00:08:33.865 --> 00:08:36.145 Bien, ahora quiero agregar otro servicio. 00:08:36.285 --> 00:08:37.975 Talvez, Proxmox. 00:08:40.194 --> 00:08:42.314 Vamos a "Add the public hostname". 00:08:42.945 --> 00:08:43.866 Proxmox. 00:08:44.482 --> 00:08:45.442 Lo mismo. 00:08:47.818 --> 00:08:50.174 Aquí escogemos HTTPS en vez de HTTP, 00:08:50.821 --> 00:08:52.843 y luego la IP, 00:08:54.429 --> 00:08:58.099 como así también el puerto que es 8 00:08:58.515 --> 00:09:00.068 8006. 00:09:03.950 --> 00:09:07.454 Y luego vamos a Additional Settings, TLS 00:09:08.017 --> 00:09:10.750 y activamos "No TLS Verify". 00:09:10.873 --> 00:09:12.354 No revisará certificados. 00:09:12.823 --> 00:09:13.899 Bien, ahora guardamos. 00:09:15.920 --> 00:09:18.130 Intentemos otra vez. 00:09:25.117 --> 00:09:26.389 ¡Bien! Ahora funciona. 00:09:32.916 --> 00:09:34.980 Y desconectamos la VPN. 00:09:35.607 --> 00:09:36.399 Y actualizamos. 00:09:36.921 --> 00:09:38.129 Y sigue funcionando. 00:09:39.255 --> 00:09:41.490 Bueno, ahora antes de terminar el video 00:09:41.816 --> 00:09:45.990 hagamos un último servicio, Paperless. 00:09:46.365 --> 00:09:49.885 Como ya vimos esto en un video anterior, 00:09:50.260 --> 00:09:52.158 vamos a ver cómo exponerlo. 00:09:52.469 --> 00:09:56.158 ¿Porqué escogí Paperless? Porque es algo complicado de configurar. 00:09:56.620 --> 00:09:58.458 No es tan simple como 00:09:58.785 --> 00:10:00.415 añadir un nombre de host. 00:10:01.103 --> 00:10:04.293 Primero añadimos el nombre de host, 00:10:06.756 --> 00:10:08.402 lo mismo de siempre, 00:10:09.528 --> 00:10:13.338 HTTPS, y luego tomamos la URL, 00:10:16.860 --> 00:10:19.056 la cual es la IP y el puerto. 00:10:24.856 --> 00:10:27.568 Escoge HTTP, no HTTTPS. 00:10:29.048 --> 00:10:30.175 Nombre de servicio. 00:10:31.196 --> 00:10:34.324 Entonces, primero funcionará normalmente 00:10:34.930 --> 00:10:36.578 cuando trato de acceder. 00:10:39.852 --> 00:10:40.893 Muy bien. 00:10:41.580 --> 00:10:45.423 Pero el problema está cuando tratas de conectarte. 00:10:49.212 --> 00:10:52.591 Tienes este error. La verificación CSRF falló. 00:10:52.949 --> 00:10:53.775 ¿Porqué? 00:10:54.058 --> 00:10:57.801 Necesitamos cambiar algunas cosas para que sea accesible. 00:10:58.332 --> 00:11:01.545 Según la documentación, 00:11:02.192 --> 00:11:05.923 necesitamos definir esta variable de entorno PAPERLESS_URL 00:11:06.488 --> 00:11:10.574 y definir el nombre de dominio 00:11:10.907 --> 00:11:12.410 que usamos en Cloudflare. 00:11:12.680 --> 00:11:14.308 Así que hagamos eso. 00:11:15.322 --> 00:11:18.329 Ve a Paperless > Edit 00:11:20.053 --> 00:11:24.999 y sólo la añadimos como variable de entorno aquí. 00:11:25.912 --> 00:11:28.350 PAPERLES_URL. 00:11:28.682 --> 00:11:32.021 Ponemos paperless, punto, tu dominio, 00:11:36.024 --> 00:11:40.028 asegúrate de añadir HTTPS al principio, 00:11:42.450 --> 00:11:44.294 y listo. Actualizar. 00:11:48.088 --> 00:11:51.235 En caso de que te quedes en Deploying, 00:11:51.485 --> 00:11:53.301 el cual fue mi caso, 00:11:53.717 --> 00:11:56.262 no estoy seguro pero el contenedor Paperless 00:11:56.824 --> 00:11:59.640 se quedó así por un largo tiempo. 00:12:00.035 --> 00:12:03.664 Así que lo que hice fue detener esta instancia 00:12:04.103 --> 00:12:05.936 y crear otra instancia 00:12:06.480 --> 00:12:10.631 usando el dataset ya creado. 00:12:11.171 --> 00:12:14.329 Así no pierdes ninguno de tus archivos. 00:12:16.831 --> 00:12:18.917 Así que empecemos otra instancia. 00:12:20.502 --> 00:12:23.046 Llamémosla paperless-cloudflare. 00:12:26.132 --> 00:12:29.177 Puedes cambiar la clave si quieres. 00:12:32.283 --> 00:12:36.075 Por cierto, puedes usar la llave secreta que quieras. Escoge cualquiera. 00:12:36.245 --> 00:12:38.172 No necesitas recordarla. 00:12:42.545 --> 00:12:44.903 Bien, añade un email, 00:12:45.422 --> 00:12:47.278 uno falso. 00:12:50.804 --> 00:12:51.806 Contraseña. 00:13:02.233 --> 00:13:05.715 Ahora añadimos otra vez la variable de entorno 00:13:06.340 --> 00:13:08.196 PAPERLESS_URL 00:13:09.049 --> 00:13:10.343 HTTPS 00:13:10.844 --> 00:13:11.637 paperless 00:13:12.410 --> 00:13:13.355 punto 00:13:14.681 --> 00:13:16.079 tu dominio, 00:13:20.937 --> 00:13:24.024 y luego añadimos la otra ruta del puerto. 00:13:27.737 --> 00:13:30.052 Paperless, éstos son los datos. 00:13:30.740 --> 00:13:31.678 Copiemos esto. 00:13:33.452 --> 00:13:35.307 Y ahora Media, 00:13:39.687 --> 00:13:41.584 y luego Consume, 00:13:50.411 --> 00:13:51.516 y Trash. 00:13:57.752 --> 00:13:59.400 Esto es Postgre. 00:14:06.113 --> 00:14:09.076 Recuerda activar "Automatic Permissions". 00:14:12.954 --> 00:14:14.309 Luego instalamos. 00:14:18.405 --> 00:14:22.606 Esperemos un poco. Funciona pero tarda. 00:14:24.816 --> 00:14:26.359 Bien, ya está funcionando. 00:14:27.339 --> 00:14:28.362 Corrámosla. 00:14:31.179 --> 00:14:32.970 Primero obtenemos la IP, 00:14:33.409 --> 00:14:36.037 es decir, el puerto IP, es lo mismo. 00:14:36.952 --> 00:14:38.204 Vuelve a Cloudflare. 00:14:38.977 --> 00:14:39.810 Haz clic. 00:14:41.499 --> 00:14:44.189 Voy a poner el puerto nuevo. 00:14:45.338 --> 00:14:46.317 Guardar. 00:14:49.821 --> 00:14:51.177 Intentemos ahora. 00:14:55.431 --> 00:14:57.703 Bien, una nueva contraseña. 00:15:03.418 --> 00:15:06.757 Y ahora funciona, sin el error anterior. 00:15:07.837 --> 00:15:11.706 Y como ven, aún tenemos el mismo documento 00:15:11.706 --> 00:15:14.435 que antes de perderlo todo. 00:15:15.291 --> 00:15:17.458 Aún tenemos todos nuestros documentos. 00:15:22.402 --> 00:15:23.645 Los abrimos. 00:15:26.510 --> 00:15:28.448 Y todo funciona bien. 00:15:32.620 --> 00:15:33.411 Eso es. 00:15:33.580 --> 00:15:35.331 Básicamento, así es como 00:15:35.600 --> 00:15:39.064 expones tus servicios a la nube. 00:15:42.796 --> 00:15:43.570 En resumen: 00:15:43.825 --> 00:15:47.446 Así es como puedes exponer tu app. 00:15:47.446 --> 00:15:53.217 No accedemos directamente a ella, sino al servidor en la nube, 00:15:53.564 --> 00:15:56.666 al servidor Cloudflare, que conectará 00:15:56.862 --> 00:16:00.140 con tu red LAN a través de Cloudflare, 00:16:00.424 --> 00:16:01.231 y luego 00:16:01.541 --> 00:16:04.168 dará acceso a tu app. 00:16:04.529 --> 00:16:08.764 De esta forma no accederás directamente a tu app, exponiendo 00:16:08.851 --> 00:16:11.230 tu IP y no irás a través de NAT, 00:16:11.391 --> 00:16:12.875 no necesitas abrir un puerto. 00:16:13.225 --> 00:16:16.787 Pero ten cuidado si tu app es insegura y eres hackeado. 00:16:16.927 --> 00:16:19.752 Así expones todo tu Homelab. 00:16:19.752 --> 00:16:22.692 Sin importar si usas o no Cloudflare. 00:16:22.854 --> 00:16:26.393 Clic en Me gusta y comparte si llegaste hasta aquí. Nos vemos luego.