# Conectarse por SSH sin abrir puertos: el poder discreto de Cloudflared
Tabla de Contenidos
Hablar de accesos remotos a servidores suele ser como discutir sobre seguros de moto en Venezuela: todos tienen una opinión, pero pocos lo hacen realmente bien. Exponer el puerto 22 al mundo es como dejar el portón abierto de madrugada. En esta guía, te muestro cómo aprovechar ‘la herramienta de Cloudflare’, para montar un túnel SSH sin abrir ni un puerto al exterior. Y no, esto no es un arroz con mango.
Por qué usar ‘cloudflared’ para SSH?
Porque la seguridad no se negocia.!!! Usando ‘cloudflared’, el acceso se enruta a través de un túnel cifrado que autentica contra Cloudflare Access. Es como tener una puerta blindada con reconocimiento facial, pero sin tener que comprar gadgets exóticos. Además, no necesitas cambiar tu infraestructura ni pelear con reglas de firewall.
Paso 1: instalar cloudflared en el servidor
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.debsudo dpkg -i cloudflared-linux-amd64.debPaso 2: login y creación del túnel
cloudflared tunnel logincloudflared tunnel create cesarlead-tunel-sshGuarda el ID del túnel porque lo usarás bastante. Piensa en él como la cédula del túnel.
Paso 3: configurar ~/.cloudflared/config.yml
tunnel: TU_TUNNEL_IDcredentials-file: /root/.cloudflared/TU_TUNNEL_ID.json
ingress: - hostname: ssh.cesarlead.com service: ssh://localhost:22 - service: http_status:404Este archivo define cómo se enrutan las solicitudes. Aquí decimos: si alguien llega a ssh.cesarlead.com, reenvíalo al puerto 22 local. Si viene algo raro, devuélvele un 404 como quien dice: “aquí no es bro!!!”.
Paso 4: validar la config y conectar el dominio
cloudflared tunnel ingress validatecloudflared tunnel route dns TU_TUNNEL_ID ssh.cesarlead.comEsto amarra el subdominio con el túnel. Como quien amarra el mecate del toldo antes de que empiece a llover.
Paso 5: ejecutar el túnel (modo manual)
cloudflared tunnel --config ~/.cloudflared/config.yml runPaso 6: configurar tu cliente SSH (tu maquina)
Agrega esto a ~/.ssh/config:
Host ssh.cesarlead.com User root Port 22 ProxyCommand cloudflared access ssh --hostname %h IdentityFile ~/.ssh/id_rsaY ya estarás listo para conectarte sin abrir puertos. Como entrar a una fiesta VIP con lista de invitados.
Paso 7: automatizar con systemd
Creamos el servicio para que el túnel se levante al iniciar el sistema:
/etc/systemd/system/cloudflared-tunnel.service
[Unit]Description=Cloudflared TunnelAfter=network-online.targetWants=network-online.target
[Service]Type=simpleRestart=alwaysExecStart=/usr/local/bin/cloudflared tunnel --config /root/.cloudflared/config.yml runUser=root
[Install]WantedBy=multi-user.targetY lo activamos:
sudo systemctl daemon-reloadsudo systemctl enable --now cloudflared-tunnelPaso 8: actualizar cloudflared con elegancia
Creamos el servicio:
/etc/systemd/system/cloudflared-update.service
[Unit]Description=Update CloudflaredAfter=network-online.target
[Service]Type=oneshotExecStart=/usr/local/bin/cloudflared updateUser=rootY su temporizador:
/etc/systemd/system/cloudflared-update.timer
[Unit]Description=Run Cloudflared update every day
[Timer]OnCalendar=dailyPersistent=true
[Install]WantedBy=timers.targetLuego:
sudo systemctl daemon-reloadsudo systemctl enable --now cloudflared-update.timerVerificaciones importantes
Para ver si la actualización funciona:
sudo systemctl start cloudflared-updatesudo journalctl -u cloudflared-update --no-pager --lines=50Para ver si el túnel sobrevivió un reinicio:
sudo systemctl status cloudflared-tunnelAsi que muchachones, implementar SSH por túnel con ‘cloudflared’ es como ver el Relámpago del Catatumbo desde la orilla: impresionante!!!. Con esta solución, te libras de puertos abiertos, te blindas con la infraestructura de Cloudflare y mantienes el control desde el primer ping.
Ya sabes, la próxima vez que te digan que necesitan conectarse por SSH a un servidor remoto, puedes responder con confianza: “tranquilo, eso lo armamos sin abrir ni una rendija”. Y si te preguntan cómo, les mandas este post, que ya está curado como sancocho dominguero! Activos!!!