Exponga su red doméstica a Internet de forma segura – TrucosInformaticos

Powershell

Hoy en día, es común que los hogares tengan servicios de alojamiento de laboratorios domésticos privados, como un servidor de medios o un servidor FTP. En algunos casos, los usuarios querrían que estos servicios privados fueran accesibles desde cualquier lugar de Internet.

No todas las suscripciones a Internet vienen con una dirección IP pública dedicada. Pero aun así, configurar su red interna para que sea accesible públicamente no suele ser una tarea sencilla para la mayoría de los usuarios domésticos.

Entonces, ¿cuál es la alternativa? Debería considerar usar el túnel de Cloudflare, parte de Cloudflare Zero Trust, que expone su red privada a la red global de Cloudflare. Hay varias opciones de suscripción a Cloudflare Zero Trust, pero la opción gratuita debería ser suficiente para un laboratorio doméstico.

¡Quédese conmigo y le mostraré cómo configurar Cloudflare Tunnel y usar sus servicios privados en línea!

Requisitos

Para continuar, asegúrese de tener estos requisitos previos.

  • Un servidor en su red interna. Este servidor puede ser cualquier computadora que aloje sus servicios privados. Esta demostración utiliza un servidor Ubuntu 20.04.
  • Docker está instalado en su servidor. Aunque Cloudflare Tunnel (cloudflared) puede ejecutarse como un servicio independiente, instalarlo como un contenedor Docker lo hace más conveniente y consistente entre plataformas.
  • Ya debe tener un dominio DNS en su cuenta de Cloudflare. Este ejemplo usará el dominio DNS org870b.ga.

Crear un túnel de Cloudflare

Suponga que ya tiene una cuenta de Cloudflare, siga estos pasos para crear un nuevo túnel.

  1. Inicie sesión en su cuenta de nubeflare y haga clic en el Confianza cero enlace.
  2. Hacer clic AccesoTúnelesCrear un túnel.
    ventana acoplable del túnel de Cloudflare
  3. A continuación, escriba un nombre descriptivo para el túnel que está creando. En este ejemplo, nombraremos el túnel laboratorio casero para indicar que este túnel lo estamos creando para nuestra red de laboratorio doméstico. Una vez que haya ingresado el nombre del túnel, haga clic en Guardar túnel.
    ssh del túnel de cloudflare

Instalar el conector de túnel de Cloudflare

Después de guardar el nuevo túnel de Cloudflare, el siguiente paso requiere instalar el conector del túnel de Cloudflare en su servidor.

  1. En Elija su entorno, seleccione el sistema operativo de su servidor. El conector se puede instalar en Windows, Mac, Linux y como contenedor de Docker. En este ejemplo, instalaré el conector como una aplicación de Docker.
    laboratorio casero del túnel cloudflare
  2. Las instrucciones o el comando para instalar el conector para su entorno elegido aparecen a continuación. En este ejemplo, solo hay un comando que ejecutar para ejecutar el conector de túnel de Cloudflare como un contenedor de Docker. Copie este comando.
    túnel ssh de cloudflare
  3. Antes de ejecutar el comando docker run, insertemos el -d opción para ejecutar el contenedor en modo separado, y el –nombre argumento para nombrar el contenedor.
    laboratorio casero de confianza cero de cloudflare
  4. Ahora, ejecute el comando en la terminal de su servidor. Como puede ver a continuación, Docker descarga la imagen de cloudflare/cloudflared de Docker Hub e inicia el nuevo contenedor.
    red doméstica del túnel cloudflare
  5. Confirmemos que el contenedor del Túnel de Cloudflare se está ejecutando.
    docker ps -f 'name=homelab_tunnel'

    instalación del túnel cloudflare

  6. Vuelva a la página del túnel de confianza cero de Cloudflare y debería ver que el estado del conector no está conectado. Hacer clic Próximo.
    túnel cloudflare para ssh

Exponer una aplicación web a través del túnel de Cloudflare

En la configuración de mi laboratorio doméstico, Cockpit está instalado en mi servidor Ubuntu y se puede acceder a él en https://192.168.1.20:9090.

Nota. Cómo instalar Cockpit en Ubuntu para la gestión de sistemas basada en web

ventana acoplable del túnel cloudflared

En este ejemplo, expongamos esta aplicación web a través de la red de túneles de Cloudflare y hagámosla accesible a Internet.

  1. Ingrese el subdominio que desea asignar al servicio. En este ejemplo, llamémoslo cabina.
  2. Elija el dominio de la lista desplegable.
    Nota. Ya debe tener un dominio DNS configurado en Cloudflare DNS para este paso. De lo contrario, no habrá ningún dominio disponible en la lista.
  3. Elija HTTPS en la selección Tipo.
  4. Ingrese la URL del servicio web dentro del cuadro URL. Esta URL es la dirección interna del servicio web, como 192.168.1.20:9090 para Cockpit.
  5. Haga clic en Configuraciones adicionales de la aplicación.
    nombre de host público del túnel cloudflare
  6. Expandir TLS y habilitar el Sin verificación TLS cambiar. Por último, haga clic en Guardar túnel.

    Nota. Este paso es aplicable solo si el servicio que está exponiendo usa HTTPS y el certificado no es de un proveedor de certificados público.

    ssh del túnel de argo de cloudflare

  7. En este punto, ahora tiene un túnel de Cloudflare:
    • Llamado laboratorio casero con una ruta configurada a cokcpit.org870b.ga.
    • El estado del túnel es Saludable.
    • El estado del conector es Conectado.
      configuración del túnel de confianza cero de cloudflareY un registro CNAME enviado por proxy que apunta al FQDN de Cloudflare Argo Tunnel (.cfargotunnel.com>)
      descarga del túnel cloudflare
  8. Finalmente, pruebe si puede acceder a la aplicación web en Internet abriendo el nombre de host público en un navegador web. Como puede ver a continuación, al abrir el https://cockpit.org870b.ga La URL carga la interfaz Cockpit de mi servidor interno.
    tunel de nubes

Agregar un acceso SSH de túnel de Cloudflare

Además de las aplicaciones basadas en la web, también puede exponer servicios que no sean HTTP a través de diferentes protocolos. Un ejemplo es el acceso SSH.

Nota. Consulte nuestro tutorial sobre cómo actualizar la imagen y el contenedor de Docker a la versión más reciente.

Exponiendo el acceso SSH de su servidor a través de Cloudflare Tunnel, solo necesita crear el nombre de host público en el túnel existente. No es necesario abrir nuevos puertos en el firewall.

  1. Primero, abra su lista de túneles y haga clic en configurar junto al nombre del túnel.
    túneles de nubes
  2. Haga clic en el Nombre de host público pestaña y haga clic Agregar un nombre de host público.
    túnel ssh cloudflare
  3. Ingrese el subdominio y seleccione el dominio. Elija SSH como el tipo de servicio e ingrese el nombre y el puerto de la dirección IP interna del servidor en el campo URL.
    Como puede ver a continuación, este ejemplo tiene los siguientes valores.
    • Subdominio+Dominio = terminal.org870.ga
    • Tipo = SSH
    • URL = 192.168.1.20:22
  4. Hacer clic Guardar nombre de host.
    red privada del túnel cloudflare
  5. Ahora tiene un nombre de host público SSH agregado a su túnel Cloudflare.
    alternativa del túnel cloudflare

Conéctese usando el cliente SSH nativo

Para conectarse al extremo SSH de Cloudflare Tunnel que creó, primero debe instalar el binario de cloudflared en su computadora cliente.

  1. Abra un navegador en su computadora y abra la página de descargas de Cloudflare Tunnel en https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/.
  2. En la página, descargue el binario cloudflared para el sistema operativo de su computadora. En este ejemplo, descargaré el ejecutable para Windows ya que estoy usando una computadora con Windows 11.
    configuración del túnel cloudflare
  3. Después de descargar el archivo, muévalo a un directorio conveniente. En este ejemplo, hemos movido el archivo a C:\Tools\cloudflared-windows-amd64.exe.
    ssh de la llamarada de la nube
  4. A continuación, edite la configuración de su cliente SSH. Abra el archivo ~/.ssh/config en su editor de texto. Agregue la siguiente entrada de configuración para su nombre de host público de Cloudflare Tunnel SSH.
  5. Asegúrese de reemplazar terminal.org870b.ga con su nombre de host público SSH y C:\Tools\cloudflared-windows-amd64.exe con su ubicación ejecutable correcta.
    Host terminal.org870b.ga
    
    ProxyCommand C:\Tools\cloudflared-windows-amd64.exe access ssh --hostname %h

    ssh del túnel cloudflared

  6. Guarde y cierre el archivo de configuración.
  7. Abra una terminal (PowerShell en Windows) y ejecute el siguiente comando:
    ssh <username>@<public-hostname>

    ftp del túnel de cloudflare

Conclusión

Cloudflare Tunnel realmente cambia el juego. Imagine alojar muchas aplicaciones dentro de su red doméstica y luego configurar cuáles poner a disposición de Internet.

Por ejemplo, puede alojar su propia instancia de administrador de contraseñas y hacer que esté disponible incluso cuando viaja y no está conectado a su red doméstica. Puede hacer que su servidor de medios esté disponible en línea y compartirlo con su familia y amigos en diferentes ubicaciones.

5/5 - (154 votos)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *