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

¿Por qué debería crear un túnel seguro?

Con Tunnel, usted no envía tráfico a una IP externa, en cambio, un daemon ligero en su infraestructura (cloudflared) crea conexiones outbound-only a la red global de Cloudflare; por lo que puede cerrar puertos no utilizados con su firewall en su infraestructura. Para crear su túnel su infraestructura (servidor de dominio+nombre) debe estar dentro del cloudflare red.

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

Una cuenta en cloudflare con su nombre de dominio vinculado a su servidor con las configuraciones del servidor de nombres; la aplicación cloudflared que se puede descargar para cada 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 sea dentro o fuera de la red de la organización, sean autenticados, autorizados y validados continuamente para la configuración y postura de seguridad antes de ser concedidos o mantener el acceso a aplicaciones y datos. Cuando creas tu túnel para SSH y SFTP con cloudflare tendrá que asociarlo con una aplicación Zero Trust.

Inicie su túnel seguro

Una vez que se descarga cloudflared, puede crear el primer túnel simplemente vía terminal o por webui.

TERMINAL

Escriba este comando para autenticar:

$ cloudflared tunnel login

Crear un túnel y darle un nombre:

$ cloudflared tunnel create 

Desde la salida del comando, tome nota del UUID del túnel y la ruta hacia el archivo de credenciales de su túnel.

Confirme que el túnel ha sido creado con éxito corriendo:

$ cloudflared tunnel list

Lea los documentos oficiales para crear un túnel a través de la terminal: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/local/

WEBUI

  1. Inicie sesiónZero Trusty ir aAccesoTunels.
  2. SeleccioneCrear un túnel.
  3. Escribe un nombre para tu túnel. Sugerimos elegir un nombre que refleje el tipo de recursos que desea conectar a través de este túnel (por ejemplo,enterprise-VPC-01).
  4. SeleccioneGuardar túnel.
  5. Siguiente, tendrá que instalarcloudflaredy corre. Para hacerlo, compruebe que el ambiente bajoElija un entornorefleja el sistema operativo en su máquina, luego copiar el comando en el cuadro de abajo y pegarlo en una ventana terminal. Corre el comando.
  6. Una vez que el comando haya terminado de funcionar, su conector aparecerá en Zero Trust.
  7. SeleccioneSiguiente.

Lea los documentos oficiales para crear un túnel a través de webui: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/remote/

Conéctese con SSH a través del Tunel Cloudflare

El protocolo Secure Shell (SSH) permite a los usuarios acceder de forma remota a dispositivos a través de la línea de comandos. Con Cloudflare Zero Trust, puede hacer que su servidor SSH esté disponible a través de 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:

El acceso a nubes es el que hemos utilizado aquí.

Recuerde que Cloudflared es un software- [Program/Software: the instructions that control what a computer does; computer programs] - continuamente actualizado y por lo tanto es necesario leer los documentos oficiales para estar seguro de que está utilizando los mejores procedimientos posibles para la versión utilizada.

Use SSH desde terminal o webui

Utilice su nuevo nombre de host público (por ejemplo ssh.example.com) para llegar a su aplicación SSH vía terminal:

$ ssh [username]@ssh.example.com

También puede utilizar la interfaz web para acceder a la terminal ssh via web; para hacerlo se requieren pasos adicionales: simplemente debe habilitar la reproducción del navegador en su aplicación. Lea el documento oficial sobre estos argumentos aquí: https://developers.cloudflare.com/cloudflare-one/applications/non-http/#rendering-in-the-browser

Use SFTP con el túnel SSH Cloudflare

SFTP, o Protocolo de Transferencia de Archivos Seguros, es un protocolo de transferencia de archivos seguro que utiliza el cifrado de shell seguro para proporcionar un alto nivel de seguridad para enviar y recibir transferencias de archivos. Para utilizar SFTP en sus clientes se requiere un paso adicional para conectar al cliente al túnel; simplemente abra su terminal (del 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 hostname localhost:2222 y las credenciales de su nombre de usuario SFTP del servidor; cuando cierre su terminal, el extremo de conexión y no será posible conectar 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 (generalmente puerto 22) a través del cortafuegos; de esta manera, sólo aquellos en posesión de la aplicación Cloudflared y/o los certificados necesarios podrán conectarse.

Lea siempre los documentos oficiales

Como escribí hace un tiempo, te aconsejo que siempre leas y aprendas del funcionario cloudflare documentos porque este software también podría tener cambios con el tiempo. Este documento está escrito sin haber recibido ningún apoyo oficial de cloudflare y es un ejemplo para aquellos que trabajan en nuestra organización.