Perché creare un tunnel sicuro?
Con Tunnel, non invii il traffico a un indirizzo IP esterno, invece un demone leggero nella tua infrastruttura (cloudflared) crea connessioni in uscita solo alla rete globale di Cloudflare; così puoi chiudere le porte inutilizzate con il firewall nella tua infrastruttura. Per creare il tuo tunnel la tua infrastruttura (dominio+server DNS) deve essere all'interno della cloudflare network- [Network of Contents: is the channel in which owners can post their content and the audience can see the contents posted by the owners] - .

Di cosa ho bisogno per creare un tunnel sicuro?
Un account- [Account: an Account contains the personal information that is assigned to those who register and access with email and password] - in cloudflare con il tuo nome di dominio collegato al tuo server con le configurazioni dei server DNS; l'applicazione cloudflared può essere scaricata per ogni sistema operativo qui: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
Cos'è l'applicazione Zero Trust?
Zero Trust è un framework di sicurezza che richiede che tutti gli utenti, sia all'interno che all'esterno della rete dell'organizzazione, siano autenticati, autorizzati e continuamente validati per la configurazione di sicurezza e lo stato prima di essere autorizzati ad accedere alle applicazioni e ai dati. Quando crei il tuo tunnel per SSH e SFTP con cloudflare, dovrai associarlo a un'applicazione Zero Trust.

Inizia il tuo tunnel sicuro
Una volta scaricato cloudflared, puoi creare il primo tunnel semplicemente tramite terminale o tramite webui.
TERMINALE
Digita questo comando per l'autenticazione:
$ cloudflared tunnel login
Crea un tunnel e dagli un nome:
$ cloudflared tunnel create <NOME>
Dall'output del comando, prendi nota dell'UUID del tunnel e del percorso del file delle credenziali del tunnel.
Verifica che il tunnel sia stato creato correttamente eseguendo:
$ cloudflared tunnel list
Leggi la guida ufficiale per creare un tunnel tramite terminale: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/local/
WEBUI
- Accedi a Zero Trust e vai a Access- [Access the simple access to a website as a visitor] - > Tunnels.
- Seleziona Create a tunnel.
- Inserisci un nome per il tuo tunnel. Suggeriamo di scegliere un nome che rifletta i tipi di risorse a cui vuoi connetterti tramite questo tunnel (ad esempio,
enterprise-VPC-01). - Seleziona Save tunnel.
- Successivamente, dovrai installare
cloudflarede avviarlo. Per farlo, verifica che l'ambiente sotto Scegli un ambiente rifletta il sistema operativo della tua macchina, quindi copia il comando nella casella sottostante e incollalo in una finestra del terminale. Esegui il comando. - Una volta terminato l'esecuzione del comando, il tuo connettore apparirà in Zero Trust.
- Seleziona Avanti.
Leggi la documentazione ufficiale per creare un tunnel tramite webui: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/remote/
Connettiti tramite SSH tramite Cloudflare Tunnel
Il Protocollo Secure Shell (SSH) consente agli utenti di accedere in remoto ai dispositivi tramite la riga di comando. Con Cloudflare Zero Trust, puoi rendere disponibile il tuo server SSH su Internet senza il rischio di aprire porte in entrata sul server.
Cloudflare Zero Trust offre due soluzioni per fornire un accesso sicuro ai server SSH:
- Routing del subnet privato con Cloudflare WARP al Tunnel
- Routing dell'hostname pubblico con
cloudflared access
cloudflared access è quello che abbiamo utilizzato qui.
Ricorda che cloudflared è un software- [Program/Software: the instructions that control what a computer does; computer programs] - in continua evoluzione e pertanto è necessario consultare la documentazione ufficiale per assicurarsi di utilizzare le migliori procedure per la versione utilizzata.
Utilizza SSH dal terminale o dalla webui
Utilizza il tuo nuovo hostname pubblico (ad esempio ssh.example.com) per raggiungere la tua applicazione SSH tramite il terminale:
$ ssh [username]@ssh.example.com
Puoi anche utilizzare l'interfaccia web per accedere al terminale ssh tramite web; per farlo, è necessario abilitare il rendering del browser per la tua applicazione. Leggi la documentazione ufficiale su questi argomenti qui: https://developers.cloudflare.com/cloudflare-one/applications/non-http/#rendering-in-the-browser
Utilizza SFTP con il Tunnel SSH Cloudflare
SFTP, o Secure File Transfer Protocol, è un protocollo di trasferimento file sicuro che utilizza la crittografia del protocollo Secure Shell per fornire un elevato livello di sicurezza per il trasferimento di file. Per utilizzare SFTP con i tuoi client è necessario eseguire ulteriori passaggi per connettere il client al tunnel; basta aprire il terminale (dal client da cui vuoi connetterti) e digitare questo comando:
$ cloudflared access tcp --hostname ssh.example.com --url localhost:2222
La prossima volta che vuoi connetterti tramite SFTP (con qualsiasi software abilitato) inserisci come hostname localhost:2222 e le credenziali del tuo nome utente SFTP del server; quando chiudi il terminale, la connessione termina e non sarà più possibile connetterti fino a quando non apri di nuovo il terminale e digiti di nuovo questo comando.
Regola le impostazioni di sicurezza
Quando tutte le procedure funzionano perfettamente, è ora possibile chiudere le porte utilizzate da SSH e SFTP (solitamente la porta 22) tramite il firewall; in questo modo, solo chi è in possesso dell'applicazione cloudflared e/o dei certificati necessari potrà connettersi.

