Configurazione Cloudflare Tunnel su Ubuntu 24.04
Cloudflare Tunnels è un servizio offerto da Cloudflare che consente di esporre in modo sicuro a Internet i servizi Web in esecuzione sul computer locale o sulla rete privata senza dover aprire porte, configurare firewall o utilizzare un indirizzo IP pubblico. Crea un tunnel sicuro e crittografato tra il tuo server di origine e la rete di Cloudflare, consentendo l’accesso alle tue applicazioni da qualsiasi luogo.
Passaggio 1: installare e configurare Cloudflared
Per creare e gestire i tunnel, dovrai installare e autenticare Cloudflared sul tuo server.
Puoi installare Cloudflared con il seguente comando:
# wget -q wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb # dpkg -i cloudflared-linux-amd64.deb
Dopo aver installato Cloudflare, è necessario autenticarlo con il tuo account Cloudflare:
# cloudflared tunnel login
Riceverai il seguente messaggio:
Please open the following URL and log in with your Cloudflare account: https://dash.cloudflare.com/argotunnel?aud=&callback=https%3A%2F%2Flogin.cloudflareaccess.org%2F94jJEwKkBV3dOOKv5oPBEj-B9lWITbj_Gk_9sVN1wnw%3D Leave cloudflared running to download the cert automatically.
Copia l’URL e accedi al tuo account Cloudflare. Una volta effettuato l’accesso, riceverai il seguente messaggio:
Fare clic sul pulsante Autorizza per autorizzare il tunnel. Cloudflare
Verrà scaricato un file di certificato per l’autenticazione cloudflared
con Cloudflare’s
la rete.
You have successfully logged in. If you wish to copy your credentials to a server, they have been saved to: /root/.cloudflared/cert.pem
Una volta completata con successo l’autorizzazione, il file cert.pem verrà scaricato nella directory predefinita.
Passaggio 2: creare un tunnel Cloudflare
Ora sei pronto per creare un Tunnel Cloudflare che collegherà Cloudflare al bordo di Cloudflare. Eseguendo il seguente comando verrà creato un Tunnel:
# cloudflared tunnel create yourtunnel
Nota: sostituisci yourtunnel
con il nome che preferisci.
Successivamente, devi configurare il tunnel in modo che punti al tuo server web locale. Il file di configurazione contiene chiavi e valori, scritti in sintassi YAML.
# nano /root/.cloudflared/config.yml
È necessario includere l’ID del tunnel corretto e il file delle credenziali ottenuti dal comando di creazione del tunnel.
tunnel: b8294c45-9cd1-40fe-b8f1-519da5d8dfd9 credentials-file: /root/.cloudflared/b8294c45-9cd1-40fe-b8f1-519da5d8dfd9.json
ingress: - hostname: test.yourdomain.com service: http://localhost:80 - service: http_status:404
Successivamente, devi configurare le impostazioni DNS sul tuo Cloudflare
account aggiungendo un record CNAME.
Inoltre, è possibile utilizzare questo comando per generare un record CNAME che punta al sottodominio di un tunnel specifico.
# tunnel route dns b8294c45-9cd1-40fe-b8f1-519da5d8dfd9 test.yourdomain.com
Passaggio 3: avviare e gestire il tunnel Cloudflare
Per impostazione predefinita, il tunnel si aspetta di trovare il file di configurazione nella directory predefinita, /root/.cloudflared/config.yml, ma per eseguire il tunnel come servizio potrebbe essere necessario spostare il file config.yml nella directory /etc/cloudflared/.
# mkdir /etc/cloudflared/ # mv /root/.cloudflared/config.yml /etc/cloudflared/
Quindi, devi installare il tunnel come servizio:
# cloudflared service install
Ora possiamo avviare e abilitare il servizio Cloudflared in modo che venga eseguito in background e si avvii automaticamente all’avvio del server.
# systemctl start cloudflared # systemctl enable cloudflared
È possibile verificare lo stato del servizio Cloudflared utilizzando il comando systemctl status :
# systemctl status cloudflared
Produzione:
● cloudflared.service - cloudflared
Loaded: loaded (/etc/systemd/system/cloudflared.service; enabled; preset: enabled)
Active: active (running)
Main PID: 2316 (cloudflared)
Tasks: 7 (limit: 2218)
Memory: 14.0M (peak: 16.1M)
CPU: 9.227s
CGroup: /system.slice/cloudflared.service
└─2316 /usr/bin/cloudflared --no-autoupdate --config /etc/cloudflared/config.yml tunnel run
Passaggio 4: aggiungere altri servizi (facoltativo)
Se più servizi utilizzano lo stesso tunnel, è necessario creare voci CNAME separate per ciascun nome host.
# cloudflared tunnel route dns <UUID or NAME> test2.yourdomain.com
Quindi aggiungi un altro punto di ingresso alla configurazione:
ingress: - hostname: test.yourdomain.com service: http://localhost:80 - hostname: test2.yourdomain.com service: http://localhost:8080 - service: http_status:404