Cómo crear un túnel seguro para SSH y SFTP con Cloudflare

¿Por qué crear un túnel seguro?

Con Tunnel, no envías tráfico a una IP externa, en cambio, un demonio ligero en tu infraestructura (cloudflared) crea conexiones de solo salida a la red global de Cloudflare; así que puedes cerrar puertos no utilizados con tu firewall en tu infraestructura. Para crear tu túnel, tu infraestructura (dominio+servidor DNS) debe estar dentro de la red de Cloudflare.

¿Qué necesito para crear un túnel seguro?

Una cuenta en Cloudflare con tu nombre de dominio vinculado a tu servidor con las configuraciones de los servidores DNS; la aplicación cloudflared puede ser descargada para cualquier sistema operativo aquí: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/

¿Qué es la aplicación Zero Trust?

Zero Trust es un marco de seguridad que requiere que todos los usuarios, ya sean dentro o fuera de la red de la organización, estén autenticados, autorizados y validados continuamente para la configuración de seguridad y el estado antes de que se les permita o mantengan el acceso a las aplicaciones y los datos. Cuando creas tu túnel para SSH y SFTP con Cloudflare, necesitarás asociarlo con una aplicación Zero Trust.

Comienza tu túnel seguro

Una vez que se haya descargado cloudflared, puedes crear el primer túnel simplemente a través del terminal o mediante la interfaz web.

TERMINAL

Escribe este comando para autenticarte:

$ cloudflared tunnel login

Crea un túnel y dale un nombre:

$ cloudflared tunnel create <NOMBRE>

A partir de la salida del comando, toma nota del UUID del túnel y de la ruta al archivo de credenciales del túnel.

Confirma que el túnel se ha creado correctamente ejecutando:

$ cloudflared tunnel list

Lee la documentación oficial para crear un túnel a través del terminal: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/local/

WEBUI

  1. Inicia sesión en Zero Trust y ve a Acceso>Túneles.
  2. Selecciona Crear un túnel.
  3. Introduce un nombre para tu túnel. Sugerimos elegir un nombre que refleje el tipo de recursos que quieres conectar a través de este túnel (por ejemplo, enterprise-VPC-01).
  4. Selecciona Guardar túnel.
  5. A continuación, deberá instalar cloudflared y ejecutarlo. Para ello, asegúrese de que el entorno bajo Seleccione un entorno refleje el sistema operativo de su máquina, luego copie el comando en la caja de abajo y péguelo en una ventana de terminal. Ejecute el comando.
  6. Una vez que el comando haya finalizado de ejecución, su conector aparecerá en Zero Trust.
  7. Seleccione Siguiente.

Lea la documentación oficial para crear un túnel a través de la interfaz web: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/remote/

Conecte a través de SSH a través de Cloudflare Tunnel

El Protocolo de Shell Seguro (SSH) permite a los usuarios acceder de forma remota a los dispositivos a través de la línea de comandos. Con Cloudflare Zero Trust, puede hacer que su servidor SSH esté disponible en Internet sin el riesgo de abrir puertos de entrada en el servidor.

Cloudflare Zero Trust ofrece dos soluciones para proporcionar acceso seguro a los servidores SSH:

cloudflared access- [Access the simple access to a website as a visitor] - es el que hemos utilizado aquí.

Tenga en cuenta que cloudflared es un software- [Program/Software: the instructions that control what a computer does; computer programs] - en constante actualización y, por lo tanto, es necesario leer la documentación oficial para asegurarse de que está utilizando los mejores procedimientos para la versión que está utilizando.

Utilice SSH desde el terminal o la interfaz web

Utilice su nuevo nombre de host público (por ejemplo, ssh.example.com) para acceder a su aplicación SSH a través del terminal:

$ ssh [username]@ssh.example.com

También puede utilizar la interfaz web para acceder al terminal ssh a través de la web; para ello, debe habilitar la renderización del navegador en su aplicación. Lea la documentación oficial sobre estos argumentos aquí: https://developers.cloudflare.com/cloudflare-one/applications/non-http/#rendering-in-the-browser

Utilice SFTP con el túnel Cloudflare SSH

SFTP, o Protocolo de Transferencia de Archivos Seguro, es un protocolo de transferencia de archivos seguro que utiliza la cifrado del shell seguro para proporcionar un alto nivel de seguridad para la transferencia de archivos. Para utilizar SFTP en sus clientes, se requiere un paso adicional para conectar el cliente; simplemente abra su terminal (desde el cliente que desea conectar) y escriba este comando:

$ cloudflared access tcp --hostname ssh.example.com --url localhost:2222

La próxima vez que desee conectarse a través de SFTP (con cualquier software habilitado), inserte como nombre de host localhost:2222 y las credenciales de su nombre de usuario SFTP del servidor; cuando cierre su terminal, la conexión finalizará y no será posible conectarse de nuevo hasta que abra el terminal y escriba de nuevo este comando.

Ajuste la configuración de seguridad

Cuando todos los procedimientos funcionan perfectamente, ahora puede cerrar los puertos utilizados por SSH y SFTP (normalmente el puerto 22) a través del firewall; de esta manera, solo aquellos que tengan la aplicación cloudflared y/o los certificados necesarios podrán conectarse.

Lea siempre los documentos oficiales

Como escribí hace un tiempo, le aconsejo que siempre lea y aprenda de los documentos oficiales cloudflare porque este software también puede tener cambios con el tiempo. Este documento ha sido escrito sin haber recibido ningún soporte oficial de cloudflare y está destinado como un ejemplo para aquellos que trabajan en nuestra organización.