Ir al contenido

Cloudflare Tunnels

Home Lab Seguridad

Cloudflare Tunnels permite exponer servicios de tu red local a Internet de forma segura, sin necesidad de abrir puertos en tu router.

Sin TunnelsCon Tunnels
❌ Requiere abrir puertos✅ No requiere puertos abiertos
❌ IP pública expuesta✅ Tráfico encriptado vía Cloudflare
❌ Configuración de firewall compleja✅ Configuración simple
❌ Vulnerable a ataques directos✅ Protección DDoS incluida
  1. Instala cloudflared en tu servidor:

    Ventana de terminal
    # Debian/Ubuntu
    curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
    sudo dpkg -i cloudflared.deb
  2. Autentícate con tu cuenta de Cloudflare:

    Ventana de terminal
    cloudflared tunnel login
  3. Crea un túnel:

    Ventana de terminal
    cloudflared tunnel create mi-homelab
  4. Configura el túnel creando ~/.cloudflared/config.yml:

    tunnel: <TUNNEL_ID>
    credentials-file: /home/usuario/.cloudflared/<TUNNEL_ID>.json
    ingress:
    - hostname: docs.herwingx.dev
    service: http://localhost:4321
    - hostname: app.herwingx.dev
    service: http://localhost:3000
    - service: http_status:404
  5. Configura DNS en Cloudflare:

    Ventana de terminal
    cloudflared tunnel route dns mi-homelab docs.herwingx.dev
  6. Inicia el túnel como servicio:

    Ventana de terminal
    sudo cloudflared service install
    sudo systemctl start cloudflared
    sudo systemctl enable cloudflared

Para CI/CD con GitHub Actions, puedes exponer SSH de forma segura:

# En config.yml
ingress:
- hostname: ssh.herwingx.dev
service: ssh://localhost:22
Ventana de terminal
# Ver túneles
cloudflared tunnel list
# Ver estado
systemctl status cloudflared
# Ver logs
journalctl -u cloudflared -f
# Ejecutar manualmente (debug)
cloudflared tunnel run mi-homelab