Blinda tu puerto SSH con Cloudflared y Zero Trust sin complicaciones

¿Sabías que en el momento en que contratas un VPS y lo conectas a internet, recibe cientos de intentos de hackeo en cuestión de minutos? La mayoría de estos ataques automáticos apuntan directamente al puerto 22, la puerta principal por donde los administradores se conectan mediante SSH.
Dejar esta puerta abierta al público, incluso si tienes una contraseña fuerte o una llave privada, es como vivir en una fortaleza pero dejar el puente levadizo abajo permanentemente. En este artículo, te mostraremos cómo proteger tu servidor volviéndolo prácticamente invisible para los atacantes utilizando Cloudflare Zero Trust. Y lo mejor: lo haremos de manera sencilla, sin complicaciones técnicas extremas.

El Problema: El ruido constante del Internet
Normalmente, para proteger el acceso SSH, la mayoría de la gente usa reglas de firewall (como UFW) para permitir solo su propia dirección IP. El problema radica en que las IPs caseras cambian (son dinámicas), o de repente necesitas que un equipo de soporte externo revise tu servidor. Administrar estas reglas a mano es tedioso y, a la larga, propenso a errores.
Aquí es donde entra la filosofía Zero Trust (Cero Confianza): No confíes en nadie, ni siquiera en tu propia red, y verifica absolutamente todas las conexiones. En lugar de tener una puerta pública expuesta al internet, instalaremos un túnel privado (cloudflared). Este túnel conecta tu servidor directamente con la red global de Cloudflare desde adentro hacia afuera. Al hacerlo así, la conexión va cifrada y tú decides quién entra antes siquiera de tocar tu servidor.

A continuación, te muestro paso a paso cómo lograr esto en tu propia infraestructura.
Paso 1: Instala y Configura el Túnel en tu VPS
El primer paso es crear el túnel maestro en Cloudflare y conectarlo a tu VPS.
- Entra a tu panel de Cloudflare Zero Trust.
- Navega a Redes > Conectores y haz clic en Crear un túnel.
- Al dar clic en el botón te mostrará otra pantalla donde debes seleccionar Cloudflared.
- Luego te mostrará una pantalla donde te pedirá el Nombre del túnel. Escríbelo y dale clic en Guardar túnel.
- Te mandará a otra pantalla para Instalar y ejecutar el conector. Seleccionas el sistema operativo y la arquitectura de tu VPS. Copias el comando que te genera y lo pegas en la terminal de tu VPS (para esto, debes entrar de manera tradicional). Esto instalará
cloudflaredy vinculará tu servidor. - De ahí te manda a una pantalla final donde configuras la Ruta Pública.
- En la sección Nombre de Host, escribe tu Subdominio (ej.
ssh) y selecciona tu Dominio (La ruta de un lado déjala en blanco, es opcional). - Luego en esa misma pantalla, más abajo está la sección Servicio. Selecciona el Tipo como
SSHy en la URL escribelocalhost:22. - Finalizas dando clic en Completar configuración.
Con esto, el tráfico que llegue a ese subdominio viajará de manera segura hasta el puerto interno de tu servidor.
Paso 2: Afina las Políticas de Acceso (Zero Trust)
Ahora que el túnel está escuchando, debemos decidir quién puede entrar y cómo. Esto lo hacemos creando una Aplicación.
- Ve a Controles de Access > Aplicaciones y crea una aplicación tipo Autoalojada y privada. Asígnale el subdominio que configuraste arriba (ej.
ssh.tudominio.com). - Para soporte externo (El modo Web): En la configuración de la aplicación, busca la sección de Additional settings, habilita Renderizado del navegador y selecciona SSH. Así, si le das acceso al correo de un técnico en las políticas, él podrá entrar a la URL y ver una consola SSH 100% funcional en su navegador, sin instalar absolutamente nada.
- Para nosotros (Modo Escritorio): Ve a Controles de Access > Credenciales de Servicio y crea un token. Copia el Client ID y Client Secret.
- Regresa a tu aplicación, y en la pestaña de Policies agrega una política nueva. En Acción selecciona Service Auth, y en Incluir selecciona el token que acabas de crear. Estas son llaves digitales invisibles que evitarán bloqueos o captchas cuando uses programas nativos en tu PC.
Paso 3: Conéctate localmente (Instalación y Magia)
Para conectarte desde tus gestores SSH favoritos, necesitas tener cloudflared instalado en tu propia computadora para interceptar la conexión.
Instalando cloudflared en tu equipo:
* Windows: La forma más fácil es usar la terminal (PowerShell o CMD) y ejecutar el comando oficial de Windows: winget install Cloudflare.cloudflared. Automáticamente se descargará y configurará en tu sistema.
Automatizando con PowerShell (Windows):
Una vez instalado, crearemos un pequeño script en PowerShell que lance el túnel en segundo plano asignando un puerto local (ej. 2222). Abre PowerShell, edita tu perfil (notepad $PROFILE) y pega esto, sustituyendo con tus propios datos:
function Start-VPSTunnel {
Write-Host "Iniciando tunel seguro Zero Trust..." -ForegroundColor Green
# Coloca aqui los datos de tus Credenciales de Servicio de Cloudflare
$env:TUNNEL_SERVICE_TOKEN_ID="tu-client-id.access"
$env:TUNNEL_SERVICE_TOKEN_SECRET="tu-client-secret"
# Inicia cloudflared en segundo plano oculto mapeando al puerto 2222
Start-Process -FilePath "cloudflared" -ArgumentList "access tcp --hostname ssh.tudominio.com --url localhost:2222" -WindowStyle Hidden
Write-Host "--> Conectado. En Termix o FileZilla, conectate a: 127.0.0.1 en el puerto 2222" -ForegroundColor Cyan
}
function Stop-VPSTunnel {
Write-Host "Cerrando tuneles..." -ForegroundColor Yellow
Stop-Process -Name "cloudflared" -Force -ErrorAction SilentlyContinue
}
Cada vez que quieras trabajar, simplemente abres PowerShell y escribes Start-VPSTunnel. Ahora, en tu programa favorito (Termix, FileZilla o PuTTY), solo te conectas a 127.0.0.1 en el puerto 2222 usando tu usuario y llave privada. ¡Como si el servidor estuviera físicamente conectado a ti!
Paso 4: Cerrar el puente levadizo (UFW)
¡Muy importante! Este es el último paso. Si cerrábamos el puerto antes de probar el túnel, nos habríamos quedado fuera de nuestro propio servidor.
Ahora que ya probaste que puedes conectarte exitosamente a través del túnel (ya sea vía web o localmente), es momento de decirle al firewall de tu servidor que bloquee todo el tráfico externo hacia el puerto 22, permitiendo que solo el propio servidor se comunique consigo mismo.
Ejecuta la siguiente regla en tu VPS:
ufw allow from 127.0.0.1 to any port 22
Con esto, tu puerto SSH acaba de desaparecer del internet. Adiós bots, adiós intentos de fuerza bruta, adiós estrés.
Mantén tus servidores seguros siempre
Migrar tu acceso de un modelo de «puerto abierto» a una arquitectura Zero Trust suena como algo de ciencia ficción o exclusivo de grandes corporativos, pero herramientas gratuitas como Cloudflare Access lo han puesto al alcance de cualquier dueño de un VPS.
Cerrar el puerto 22 a nivel local y usar túneles privados es, hoy por hoy, el estándar de oro para dormir tranquilo sabiendo que tu infraestructura es completamente invisible para los atacantes. Mantener la seguridad proactiva de tus servidores siempre debe ser una prioridad, más vale prevenir, que lamentar.

Deja una respuesta