1 00:00:00,521 --> 00:00:02,162 Hola a todos, bienvenidos. 2 00:00:02,162 --> 00:00:05,092 Hoy vamos a intentar algo distinto. 3 00:00:05,142 --> 00:00:08,126 Vamos a empezar una nueva serie de videos 4 00:00:09,247 --> 00:00:11,621 sobre las distintas formas de exponer 5 00:00:11,621 --> 00:00:14,059 o acceder a Homelab desde internet. 6 00:00:14,779 --> 00:00:17,411 Principalmente porque hay muchas opciones 7 00:00:18,411 --> 00:00:21,131 y siento que no se habla mucho en YouTube. 8 00:00:21,393 --> 00:00:24,735 Sobre todo la parte de seguridad, la más importante 9 00:00:24,799 --> 00:00:28,675 Todos asumen que es segura, lo cual no es siempre el caso, 10 00:00:28,885 --> 00:00:31,748 así que recuerda hacer clic en Like, suscribirte y compartir, 11 00:00:31,929 --> 00:00:33,450 y empecemos. 12 00:00:33,738 --> 00:00:35,256 Bien, ¿cómo lo hacemos? 13 00:00:35,527 --> 00:00:38,719 para exponer nuestro Homelab tenemos 5 formas principales. 14 00:00:39,126 --> 00:00:41,689 1. Túneles seguros como Cloudflare. 15 00:00:42,058 --> 00:00:44,000 2. Proxies inversos como Nginx. 16 00:00:44,289 --> 00:00:48,129 3. VPNs tradiciones como Wireguard o protocolos de OpenVPN. 17 00:00:48,493 --> 00:00:51,204 4. Redes Mesh como ZeroTier y Tailscale. 18 00:00:51,531 --> 00:00:55,349 y por último 5. El clásico enrutamiento de puertos o NAT. 19 00:00:55,349 --> 00:00:59,146 Así que analicemos cada uno de ellos para entender sus diferencias. 20 00:00:59,441 --> 00:01:02,330 Primero túneles seguros como Cloudflare. 21 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 22 00:01:06,722 --> 00:01:08,856 facilitando el acceso remoto. 23 00:01:08,856 --> 00:01:10,949 También son fáciles de configurar 24 00:01:11,129 --> 00:01:14,169 sin embargo, no son muy seguros al principio 25 00:01:14,240 --> 00:01:16,916 y sólo dependen de la seguridad de tu app, 26 00:01:16,916 --> 00:01:18,520 pero puede mejorarse. 27 00:01:18,520 --> 00:01:21,599 Cubriremos esto más tarde en otro video. 28 00:01:21,599 --> 00:01:24,154 Después tenemos proxies inversos como Nginx. 29 00:01:24,226 --> 00:01:28,198 Es un servidor posicionado en el medio, que envía peticiones a tu Homelab, 30 00:01:28,416 --> 00:01:31,520 ayudando a gestionar múltiples servicios bajo un dominio. 31 00:01:31,662 --> 00:01:33,758 Mientras agrega una capa de protección, 32 00:01:33,758 --> 00:01:38,660 también tendrás más control sobre tus servicios, 33 00:01:38,983 --> 00:01:40,668 y sobre cómo manejarlos. 34 00:01:41,032 --> 00:01:46,288 Sin embargo, expone tu IP y debes abrir un puerto en tu router para accederlo. 35 00:01:47,000 --> 00:01:51,006 Después, VPNs tradicionales como Wireguard o OpenVPN. 36 00:01:51,006 --> 00:01:54,938 Éstas crean un túnel encriptado entre tu dispositivo y tu Homelab, 37 00:01:55,076 --> 00:01:57,854 haciendo sentir que estás en la misma red local. 38 00:01:57,854 --> 00:02:00,634 Son buenas para privacidad y seguridad, 39 00:02:00,634 --> 00:02:03,318 pero sólo son útiles cuando eres el único usuario porque 40 00:02:03,318 --> 00:02:07,198 es imposible compartir el acceso sin entregar tu clave privada 41 00:02:07,198 --> 00:02:09,530 a otros usuarios. 42 00:02:09,530 --> 00:02:14,306 Luego, redes Mesh como ZeroTier o Tailscale. 43 00:02:14,306 --> 00:02:18,984 Son similares a VPNs normales, sólo que conectan dispositivos entre ellos 44 00:02:18,984 --> 00:02:21,702 en vez de conectarlos a un servidor central. 45 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 46 00:02:25,476 --> 00:02:29,067 dispositivos compartir, pero debes conectarte manualmente a la red 47 00:02:29,067 --> 00:02:31,606 cada vez para cada dispositivo que quieras agregar. 48 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 49 00:02:36,176 --> 00:02:37,667 para exponer tu Homelab. 50 00:02:37,667 --> 00:02:42,200 Es simple pero conlleva altos riesgos de seguridad si dependes sólo de ello. 51 00:02:42,200 --> 00:02:46,623 Ten en mente que NAT usualmente se usa junto a otros métodos como los anteriores, 52 00:02:46,750 --> 00:02:50,843 pero usarlo sólamente para enrutamiento de puertos no es recomendado. 53 00:02:51,402 --> 00:02:52,773 Ahora, tal vez te preguntes, 54 00:02:53,137 --> 00:02:56,117 ¿cuál es el método más seguro para exponer tu Homelab? 55 00:02:56,236 --> 00:02:59,759 En realidad, depende de tus apps y de qué quieras hacer. 56 00:02:59,759 --> 00:03:02,555 En mi opinión, no es sobre cuál método usar 57 00:03:02,555 --> 00:03:05,529 sino sobre cómo los combinas. 58 00:03:05,529 --> 00:03:09,779 Lo mejor es combinarlos y hacer que funcionen entre ellos 59 00:03:09,779 --> 00:03:11,731 para lograr el método perfecto. 60 00:03:13,593 --> 00:03:16,780 Bien, primero vamos a cloudflare.com. 61 00:03:16,780 --> 00:03:18,320 Ve a "Sign up", 62 00:03:18,767 --> 00:03:21,625 y "Free" en el sitio, 63 00:03:23,020 --> 00:03:25,981 y creamos una nueva cuenta. 64 00:03:29,304 --> 00:03:32,378 Después de esto, si ya tienes un dominio 65 00:03:32,379 --> 00:03:36,447 ingrésalo. En mi caso voy a crear un nuevo dominio. 66 00:03:39,574 --> 00:03:42,307 Por alguna razón tuve un error al tratar de pagar 67 00:03:42,506 --> 00:03:47,308 así que sólo voy a importar un dominio existente. Sólo voy a escribirlo aquí. 68 00:03:51,347 --> 00:03:53,683 Bien, entonces ve hacia abajo 69 00:03:54,517 --> 00:03:56,227 y escoge el paquete gratuito. 70 00:03:59,963 --> 00:04:02,678 Luego haz clic en "Continue to activation". 71 00:04:03,224 --> 00:04:07,187 Confirma. Después hacemos algunos cambios. 72 00:04:07,467 --> 00:04:10,949 Necesitamos cambiar el nombre del servidor actual 73 00:04:11,124 --> 00:04:12,859 con el nombre de servidor de Cloudflare 74 00:04:13,243 --> 00:04:16,360 para que Cloudflare controle el dominio. 75 00:04:16,750 --> 00:04:17,631 Para hacerlo, 76 00:04:17,957 --> 00:04:22,157 vamos al proveedor del dominio, en mi caso es NameCheap. 77 00:04:25,978 --> 00:04:30,843 En mi caso voy a "Custom DNS" y luego copio 78 00:04:35,710 --> 00:04:37,504 el NAMESERVERS, 79 00:04:38,754 --> 00:04:39,796 y luego guardo. 80 00:04:42,779 --> 00:04:46,192 Dice que puede tomar hasta 48 horas 81 00:04:46,192 --> 00:04:49,761 pero no es cierto, puede tardar unos segundos o minutos máximo 82 00:04:50,361 --> 00:04:52,118 Pero, por si acaso, 83 00:04:53,139 --> 00:04:55,176 si toma mucho tiempo de actualizar 84 00:04:55,426 --> 00:04:58,024 es normal así que espera. 85 00:04:58,254 --> 00:05:00,183 No hay otra opción. 86 00:05:00,725 --> 00:05:02,085 Bien, luego de un rato, 87 00:05:02,085 --> 00:05:04,453 llegamos a esta página, así que todo está bien. 88 00:05:04,603 --> 00:05:07,324 Ahora vamos a "Access" 89 00:05:07,524 --> 00:05:09,709 y luego "Launch Zero Trust". 90 00:05:10,446 --> 00:05:11,865 Escogemos nuestra cuenta. 91 00:05:12,218 --> 00:05:14,409 Luego vamos a "Access". 92 00:05:15,202 --> 00:05:17,558 Después escogemos un nombre de equipo, 93 00:05:17,599 --> 00:05:18,783 cualquier cosa. 94 00:05:23,051 --> 00:05:26,135 Después escogemos el pack gratuito, 95 00:05:27,473 --> 00:05:29,562 no hay que pagar. 96 00:05:33,126 --> 00:05:34,940 Luego vamos a "Networks", 97 00:05:35,299 --> 00:05:36,254 "Tunnels", 98 00:05:37,337 --> 00:05:39,403 y añadimos un túnel. 99 00:05:39,595 --> 00:05:41,237 Escogemos el de Cloudflare. 100 00:05:41,581 --> 00:05:45,112 Nombramos nuestro túnel Homelab_test. 101 00:05:47,279 --> 00:05:50,189 Luego nos dará a escoger nuestro entorno, 102 00:05:50,339 --> 00:05:53,319 en este caso sólo escoge Docker, 103 00:05:53,404 --> 00:05:55,267 y copiamos el comentario 104 00:05:55,267 --> 00:06:00,015 porque sólo necesitamos el token. No necesitamos correr algo en Docker. 105 00:06:00,104 --> 00:06:01,747 Después vamos a TrueNAS 106 00:06:02,278 --> 00:06:03,742 e instalamos 107 00:06:03,942 --> 00:06:05,846 la app de Cloudflare. 108 00:06:07,320 --> 00:06:08,621 Ésta. 109 00:06:10,581 --> 00:06:13,442 Y aquí pegamos lo que tenemos 110 00:06:13,442 --> 00:06:14,577 y seguimos. 111 00:06:15,957 --> 00:06:19,195 Borra todo, sólo deja el token. 112 00:06:24,636 --> 00:06:27,117 Va todo antes de esto. 113 00:06:29,145 --> 00:06:30,366 Listo. 114 00:06:31,599 --> 00:06:34,373 No necesitamos configurar algo más. 115 00:06:35,159 --> 00:06:37,754 Ni el almacenamiento, no es necesario. 116 00:06:39,630 --> 00:06:40,859 E instalamos. 117 00:06:43,528 --> 00:06:45,364 Bien, ya esta listo y andando. 118 00:06:45,791 --> 00:06:47,918 Volvemos al perfil de Cloudflare. 119 00:06:48,858 --> 00:06:52,825 Ahora esperamos hasta tener algo en "Connectors". 120 00:06:53,067 --> 00:06:54,585 Buscará automáticamente. 121 00:06:54,585 --> 00:06:56,029 Muy bien, aquí vamos. 122 00:06:56,029 --> 00:06:58,749 Está conectado. Podemos continuar. 123 00:06:58,922 --> 00:07:00,107 Siguiente. 124 00:07:01,852 --> 00:07:05,704 Estamos listos para añadir nuestro primer servicio. 125 00:07:06,627 --> 00:07:09,269 Empecemos por añadir el mismo TrueNAS. 126 00:07:09,529 --> 00:07:11,873 Sólo copiamos la IP. 127 00:07:15,334 --> 00:07:17,046 Luego escogemos el subdominio 128 00:07:17,280 --> 00:07:18,047 TrueNAS 129 00:07:18,485 --> 00:07:19,548 y elegimos el dominio. 130 00:07:20,894 --> 00:07:22,920 Luego escogemos HTTP 131 00:07:24,338 --> 00:07:25,860 y después la IP. 132 00:07:26,715 --> 00:07:30,052 No hay algo para escoger acá. 133 00:07:30,228 --> 00:07:31,116 Guardamos. 134 00:07:33,201 --> 00:07:35,850 Para probar esto voy a desconectarme de la VPN. 135 00:07:36,267 --> 00:07:40,501 Como no estoy en casa, estoy conectado a mi VPN hogareña. 136 00:07:40,811 --> 00:07:43,639 Sólo voy a desactivar esto y hacer esto 137 00:07:44,952 --> 00:07:50,706 para mostrarles que si trato de acceder a la misma IP 138 00:07:52,710 --> 00:07:56,366 no funcionará, porque me desconecté de la VPN. 139 00:07:56,870 --> 00:07:58,017 Y si trato 140 00:07:58,642 --> 00:07:59,685 un dominio, 141 00:08:00,206 --> 00:08:01,164 nuevo dominio, 142 00:08:04,502 --> 00:08:05,315 funciona. 143 00:08:05,608 --> 00:08:06,356 Así que ahora 144 00:08:09,027 --> 00:08:10,915 TrueNAS es accesible 145 00:08:11,201 --> 00:08:12,140 desde el exterior. 146 00:08:12,518 --> 00:08:15,155 Pero esto no es recomendado. 147 00:08:15,155 --> 00:08:18,913 Si quieres exponer apps sólo hazlo individualmente, 148 00:08:19,238 --> 00:08:21,253 no expongas todo. 149 00:08:21,709 --> 00:08:22,773 Así que, 150 00:08:23,500 --> 00:08:25,358 ahora voy a borrarla 151 00:08:25,714 --> 00:08:28,507 y agregaré algo. 152 00:08:33,865 --> 00:08:36,145 Bien, ahora quiero agregar otro servicio. 153 00:08:36,285 --> 00:08:37,975 Talvez, Proxmox. 154 00:08:40,194 --> 00:08:42,314 Vamos a "Add the public hostname". 155 00:08:42,945 --> 00:08:43,866 Proxmox. 156 00:08:44,482 --> 00:08:45,442 Lo mismo. 157 00:08:47,818 --> 00:08:50,174 Aquí escogemos HTTPS en vez de HTTP, 158 00:08:50,821 --> 00:08:52,843 y luego la IP, 159 00:08:54,429 --> 00:08:58,099 como así también el puerto que es 8 160 00:08:58,515 --> 00:09:00,068 8006. 161 00:09:03,950 --> 00:09:07,454 Y luego vamos a Additional Settings, TLS 162 00:09:08,017 --> 00:09:10,750 y activamos "No TLS Verify". 163 00:09:10,873 --> 00:09:12,354 No revisará certificados. 164 00:09:12,823 --> 00:09:13,899 Bien, ahora guardamos. 165 00:09:15,920 --> 00:09:18,130 Intentemos otra vez. 166 00:09:25,117 --> 00:09:26,389 ¡Bien! Ahora funciona. 167 00:09:32,916 --> 00:09:34,980 Y desconectamos la VPN. 168 00:09:35,607 --> 00:09:36,399 Y actualizamos. 169 00:09:36,921 --> 00:09:38,129 Y sigue funcionando. 170 00:09:39,255 --> 00:09:41,490 Bueno, ahora antes de terminar el video 171 00:09:41,816 --> 00:09:45,990 hagamos un último servicio, Paperless. 172 00:09:46,365 --> 00:09:49,885 Como ya vimos esto en un video anterior, 173 00:09:50,260 --> 00:09:52,158 vamos a ver cómo exponerlo. 174 00:09:52,469 --> 00:09:56,158 ¿Porqué escogí Paperless? Porque es algo complicado de configurar. 175 00:09:56,620 --> 00:09:58,458 No es tan simple como 176 00:09:58,785 --> 00:10:00,415 añadir un nombre de host. 177 00:10:01,103 --> 00:10:04,293 Primero añadimos el nombre de host, 178 00:10:06,756 --> 00:10:08,402 lo mismo de siempre, 179 00:10:09,528 --> 00:10:13,338 HTTPS, y luego tomamos la URL, 180 00:10:16,860 --> 00:10:19,056 la cual es la IP y el puerto. 181 00:10:24,856 --> 00:10:27,568 Escoge HTTP, no HTTTPS. 182 00:10:29,048 --> 00:10:30,175 Nombre de servicio. 183 00:10:31,196 --> 00:10:34,324 Entonces, primero funcionará normalmente 184 00:10:34,930 --> 00:10:36,578 cuando trato de acceder. 185 00:10:39,852 --> 00:10:40,893 Muy bien. 186 00:10:41,580 --> 00:10:45,423 Pero el problema está cuando tratas de conectarte. 187 00:10:49,212 --> 00:10:52,591 Tienes este error. La verificación CSRF falló. 188 00:10:52,949 --> 00:10:53,775 ¿Porqué? 189 00:10:54,058 --> 00:10:57,801 Necesitamos cambiar algunas cosas para que sea accesible. 190 00:10:58,332 --> 00:11:01,545 Según la documentación, 191 00:11:02,192 --> 00:11:05,923 necesitamos definir esta variable de entorno PAPERLESS_URL 192 00:11:06,488 --> 00:11:10,574 y definir el nombre de dominio 193 00:11:10,907 --> 00:11:12,410 que usamos en Cloudflare. 194 00:11:12,680 --> 00:11:14,308 Así que hagamos eso. 195 00:11:15,322 --> 00:11:18,329 Ve a Paperless > Edit 196 00:11:20,053 --> 00:11:24,999 y sólo la añadimos como variable de entorno aquí. 197 00:11:25,912 --> 00:11:28,350 PAPERLES_URL. 198 00:11:28,682 --> 00:11:32,021 Ponemos paperless, punto, tu dominio, 199 00:11:36,024 --> 00:11:40,028 asegúrate de añadir HTTPS al principio, 200 00:11:42,450 --> 00:11:44,294 y listo. Actualizar. 201 00:11:48,088 --> 00:11:51,235 En caso de que te quedes en Deploying, 202 00:11:51,485 --> 00:11:53,301 el cual fue mi caso, 203 00:11:53,717 --> 00:11:56,262 no estoy seguro pero el contenedor Paperless 204 00:11:56,824 --> 00:11:59,640 se quedó así por un largo tiempo. 205 00:12:00,035 --> 00:12:03,664 Así que lo que hice fue detener esta instancia 206 00:12:04,103 --> 00:12:05,936 y crear otra instancia 207 00:12:06,480 --> 00:12:10,631 usando el dataset ya creado. 208 00:12:11,171 --> 00:12:14,329 Así no pierdes ninguno de tus archivos. 209 00:12:16,831 --> 00:12:18,917 Así que empecemos otra instancia. 210 00:12:20,502 --> 00:12:23,046 Llamémosla paperless-cloudflare. 211 00:12:26,132 --> 00:12:29,177 Puedes cambiar la clave si quieres. 212 00:12:32,283 --> 00:12:36,075 Por cierto, puedes usar la llave secreta que quieras. Escoge cualquiera. 213 00:12:36,245 --> 00:12:38,172 No necesitas recordarla. 214 00:12:42,545 --> 00:12:44,903 Bien, añade un email, 215 00:12:45,422 --> 00:12:47,278 uno falso. 216 00:12:50,804 --> 00:12:51,806 Contraseña. 217 00:13:02,233 --> 00:13:05,715 Ahora añadimos otra vez la variable de entorno 218 00:13:06,340 --> 00:13:08,196 PAPERLESS_URL 219 00:13:09,049 --> 00:13:10,343 HTTPS 220 00:13:10,844 --> 00:13:11,637 paperless 221 00:13:12,410 --> 00:13:13,355 punto 222 00:13:14,681 --> 00:13:16,079 tu dominio, 223 00:13:20,937 --> 00:13:24,024 y luego añadimos la otra ruta del puerto. 224 00:13:27,737 --> 00:13:30,052 Paperless, éstos son los datos. 225 00:13:30,740 --> 00:13:31,678 Copiemos esto. 226 00:13:33,452 --> 00:13:35,307 Y ahora Media, 227 00:13:39,687 --> 00:13:41,584 y luego Consume, 228 00:13:50,411 --> 00:13:51,516 y Trash. 229 00:13:57,752 --> 00:13:59,400 Esto es Postgre. 230 00:14:06,113 --> 00:14:09,076 Recuerda activar "Automatic Permissions". 231 00:14:12,954 --> 00:14:14,309 Luego instalamos. 232 00:14:18,405 --> 00:14:22,606 Esperemos un poco. Funciona pero tarda. 233 00:14:24,816 --> 00:14:26,359 Bien, ya está funcionando. 234 00:14:27,339 --> 00:14:28,362 Corrámosla. 235 00:14:31,179 --> 00:14:32,970 Primero obtenemos la IP, 236 00:14:33,409 --> 00:14:36,037 es decir, el puerto IP, es lo mismo. 237 00:14:36,952 --> 00:14:38,204 Vuelve a Cloudflare. 238 00:14:38,977 --> 00:14:39,810 Haz clic. 239 00:14:41,499 --> 00:14:44,189 Voy a poner el puerto nuevo. 240 00:14:45,338 --> 00:14:46,317 Guardar. 241 00:14:49,821 --> 00:14:51,177 Intentemos ahora. 242 00:14:55,431 --> 00:14:57,703 Bien, una nueva contraseña. 243 00:15:03,418 --> 00:15:06,757 Y ahora funciona, sin el error anterior. 244 00:15:07,837 --> 00:15:11,706 Y como ven, aún tenemos el mismo documento 245 00:15:11,706 --> 00:15:14,435 que antes de perderlo todo. 246 00:15:15,291 --> 00:15:17,458 Aún tenemos todos nuestros documentos. 247 00:15:22,402 --> 00:15:23,645 Los abrimos. 248 00:15:26,510 --> 00:15:28,448 Y todo funciona bien. 249 00:15:32,620 --> 00:15:33,411 Eso es. 250 00:15:33,580 --> 00:15:35,331 Básicamento, así es como 251 00:15:35,600 --> 00:15:39,064 expones tus servicios a la nube. 252 00:15:42,796 --> 00:15:43,570 En resumen: 253 00:15:43,825 --> 00:15:47,446 Así es como puedes exponer tu app. 254 00:15:47,446 --> 00:15:53,217 No accedemos directamente a ella, sino al servidor en la nube, 255 00:15:53,564 --> 00:15:56,666 al servidor Cloudflare, que conectará 256 00:15:56,862 --> 00:16:00,140 con tu red LAN a través de Cloudflare, 257 00:16:00,424 --> 00:16:01,231 y luego 258 00:16:01,541 --> 00:16:04,168 dará acceso a tu app. 259 00:16:04,529 --> 00:16:08,764 De esta forma no accederás directamente a tu app, exponiendo 260 00:16:08,851 --> 00:16:11,230 tu IP y no irás a través de NAT, 261 00:16:11,391 --> 00:16:12,875 no necesitas abrir un puerto. 262 00:16:13,225 --> 00:16:16,787 Pero ten cuidado si tu app es insegura y eres hackeado. 263 00:16:16,927 --> 00:16:19,752 Así expones todo tu Homelab. 264 00:16:19,752 --> 00:16:22,692 Sin importar si usas o no Cloudflare. 265 00:16:22,854 --> 00:16:26,393 Clic en Me gusta y comparte si llegaste hasta aquí. Nos vemos luego.