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