Conexiones RDP seguras con Cloudflared (Zero Trust)
Cómo dejar de exponer puerto 3389 al internet sin perder acceso remoto. RDP sobre Cloudflare Tunnel paso a paso.
El problema de RDP expuesto
Si tu empresa tiene un servidor con RDP (puerto 3389) abierto al internet estás en una categoría de riesgo extremo. Los bots escanean ese puerto 24/7, prueban credenciales, lanzan exploits CVE conocidos (BlueKeep, EsteemAudit, etc.) y muchas veces lo logran sin que lo notes.
Datos públicos de Shadowserver Foundation: más de 4 millones de RDPs expuestos en internet, la mayoría en empresas pequeñas-medianas. Casi todos terminan en ransomware en algún momento.
La solución 2026: Cloudflare Tunnel
Cloudflare Tunnel (cloudflared) crea un túnel saliente desde tu red hacia Cloudflare. Tu servidor queda inalcanzable directamente desde internet — solo Cloudflare puede llegarle, y solo si el usuario pasa la autenticación de Zero Trust.
Beneficios:
- No abres puerto 3389 ni ningún puerto al internet. Tu firewall ya no expone RDP.
- Autenticación con Cloudflare Access: SSO con Google Workspace, Microsoft 365, GitHub o cualquier IdP SAML/OIDC.
- Auditoría completa: cada conexión queda logueada con identidad del usuario.
- Geo-filtering: solo permites conexiones desde países específicos (ej. solo Ecuador).
- 2FA obligatorio en el flujo de Access — sin segundo factor, no entras.
- Gratis hasta 50 usuarios.
Implementación rápida
1. Instalar cloudflared en el servidor Windows/Linux
# Linux
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 \
-o /usr/local/bin/cloudflared
chmod +x /usr/local/bin/cloudflared
# Windows: descargar el .msi desde cloudflare.com/products/tunnel
2. Login y crear el tunnel
cloudflared tunnel login
cloudflared tunnel create rdp-empresa
3. Configurar ingress para RDP
config.yml:
tunnel: <TUNNEL-ID>
credentials-file: /etc/cloudflared/<TUNNEL-ID>.json
ingress:
- hostname: rdp.tudominio.com
service: rdp://localhost:3389
- service: http_status:404
4. Aplicar policy de Cloudflare Access
En el dashboard de Cloudflare Zero Trust:
- Access > Applications > Self-hosted
- Application URL:
rdp.tudominio.com - Policy: requiere SSO + 2FA + geo-filter (solo EC)
5. Configurar el cliente
El usuario instala el cliente Cloudflare WARP (gratis) y desde su Windows/Mac:
mstsc /v:rdp.tudominio.com
Cloudflare lo redirige al login SSO. Pasa 2FA. Autoriza. Y se conecta a su RDP sin que el servidor nunca haya estado expuesto a internet.
Bonus: cerrar el puerto en el firewall
Una vez verificado que el tunnel funciona, cierra el puerto 3389 en tu firewall definitivamente. Tu servidor queda invisible para los scanners.
# Ufw / iptables
ufw deny 3389/tcp
Cuándo NO hacer esto
Si tienes una flota de 200+ usuarios accediendo a un terminal server, considera VDI o Citrix en lugar de RDP directo. El tunnel funciona pero el costo de licencias Windows Server CAL puede ser elevado.
Ayuda profesional
Implementamos esta solución en clientes en menos de 1 día (incluyendo capacitación a usuarios). Si quieres que la pongamos en marcha en tu empresa, contáctanos.