Guida alla configurazione del reverse proxy Cloudflare Tunnel con cloudflared in ServBay
Cloudflare Tunnel (precedentemente noto come Argo Tunnel) è un servizio di reverse proxy a zero fiducia fornito da Cloudflare, che consente di esporre in modo sicuro servizi locali senza dover aprire porte pubbliche. Questa guida ti guiderà nel creare un tunnel sicuro nell'ambiente ServBay utilizzando cloudflared, per consentire l'accesso a servizi locali da Internet.
Principi Tecnici
Cloudflare Tunnel stabilisce una connessione outbound crittografata (basata sul protocollo QUIC) per collegare in modo sicuro i servizi locali ai nodi edge di Cloudflare. Questa soluzione evita completamente la necessità di configurare il NAT e le regole del firewall, integrando al contempo le funzionalità di protezione DDoS e firewall per applicazioni web (WAF) di Cloudflare.
Preparazione dell'Ambiente
1. Installazione del client cloudflared
macOS (architettura ARM):
# Scarica il file binario
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-amd64.tgz | tar xz
sudo mv cloudflared /usr/local/bin/
2
3
Verifica dell'installazione:
cloudflared --version
# cloudflared version 2024.5.0 (built 2024-05-01)
2
2. Accesso all'account Cloudflare
cloudflared tunnel login
Eseguendo questo comando si aprirà automaticamente il browser, dove dovrai selezionare il dominio da gestire per completare l'autorizzazione.
Configurazione del Tunnel: Guida Pratica
Flusso di configurazione principale
- Creazione del tunnel
cloudflared tunnel create servbay-tunnel
# Esempio di output: Created tunnel servbay-tunnel with id xxxx-xxxx-xxxx
2
- Configurazione dei record DNS
cloudflared tunnel route dns servbay-tunnel servbay-tunnel.yourdomain.com
- Scrittura del file di configurazione
Crea~/.cloudflared/config.yml
:
tunnel: <TUNNEL_ID>
credentials-file: /path/to/credentials.json
ingress:
- hostname: servbay-tunnel.yourdomain.com
service: https://servbay.local
originRequest:
noTLSVerify: true # Abilita se desideri saltare la verifica del certificato locale
- service: http_status:404 # Regola di fallback predefinita
2
3
4
5
6
7
8
9
Avvio del servizio del tunnel
cloudflared tunnel run servbay-tunnel
Verifica del Servizio
- Accedi al dominio configurato:
https://servbay-tunnel.yourdomain.com
- Punti di verifica:
- Mostra contenuti coerenti con il servizio locale
- La barra degli indirizzi del browser mostra un certificato SSL valido emesso da Cloudflare
- L'intestazione di risposta include l'identificativo
CF-RAY
Tecniche di Configurazione Avanzata
Routing di più servizi
ingress:
- hostname: api.yourdomain.com
service: https://api.local
- hostname: app.yourdomain.com
service: https://app.local
2
3
4
5
Monitoraggio del traffico
# Visualizza le metriche in tempo reale
cloudflared tunnel info servbay-tunnel
# Ottieni log dettagliati
cloudflared tunnel logs servbay-tunnel
2
3
4
5
Risoluzione dei Problemi
Fenomeno | Soluzione |
---|---|
502 Bad Gateway | Controlla se il servizio locale è in esecuzione e se l'indirizzo del servizio nella configurazione del tunnel è corretto |
Errore di risoluzione DNS | Assicurati che il CNAME del record DNS sia corretto (dovrebbe essere <UUID>.cfargotunnel.com ) |
Verifica del certificato fallita | Assicurati che l'hostname nel config.yml corrisponda al nome di dominio del certificato, e verifica la catena di certificati locale per completezza |
Vantaggi della Soluzione
Con la soluzione Cloudflare Tunnel, gli utenti di ServBay possono beneficiare di:
- Protezione di sicurezza a livello aziendale: mitigazione DDoS integrata e protezione WAF
- Nessuna esposizione delle porte: nessuna configurazione necessaria per firewall o regole NAT
- Routing intelligente: ottimizzazione della velocità di accesso tramite la rete Anycast globale di Cloudflare
- Quota gratuita: il piano gratuito include 50 tunnel attivi al mese
Si consiglia di implementare politiche di Access in ambienti di produzione per garantire un controllo dell'accesso a livello granulare, assicurando la sicurezza del servizio.