Pourquoi créer un tunnel sécurisé ?
Avec Tunnel, vous ne transmettez pas de trafic vers une adresse IP externe, mais un démon léger dans votre infrastructure (Cloudflared) crée des connexions sortantes uniquement vers le réseau mondial de Cloudflare ; vous pouvez ainsi fermer les ports inutilisés de votre infrastructure. Pour créer votre tunnel, votre infrastructure (domaine+serveur) doit être à l’intérieur du Cloudflare.

Qu'est-ce dont j'ai besoin pour créer un tunnel sécurisé ?
Un compte dans Cloudflare avec votre nom de domaine lié à votre serveur avec les configurations des serveurs nommés ; l'application Cloudflared peut être téléchargée pour tous les systèmes d'exploitation ici : https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
Qu'est-ce que l'application Zero Trust ?
Zero Trust est un cadre de sécurité exigeant que tous les utilisateurs, qu'ils soient à l'intérieur ou à l'extérieur du réseau de l'organisation, soient authentifiés, autorisés et continuellement validés pour la configuration de sécurité et le positionnement avant d'être autorisés ou maintenus dans l'accès aux applications et aux données. Lorsque vous créez votre tunnel pour SSH et SFTP avec Cloudflare, vous devrez l'associer à une application Zero Trust.

Démarrez votre tunnel sécurisé
Une fois Cloudflared téléchargé, vous pouvez créer le premier tunnel simplement via le terminal ou via l'interface web.
TERMINAL
Tapez cette commande pour vous authentifier :
$ cloudflared tunnel login
Créez un tunnel et donnez-lui un nom :
$ cloudflared tunnel create <NOM>
À partir de la sortie de la commande, prenez note de l'UUID du tunnel et du chemin de votre fichier de données d'identification du tunnel.
Confirmez que le tunnel a été créé avec succès en exécutant :
$ cloudflared tunnel list
Consultez la documentation officielle pour créer un tunnel via le terminal : https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/local/
WEBUI
- Connectez-vous à Zero Trust et accédez à Accès > Tunnels.
- Sélectionnez Créer un tunnel.
- Entrez un nom pour votre tunnel. Nous vous recommandons de choisir un nom qui reflète le type de ressources que vous souhaitez connecter via ce tunnel (par exemple,
enterprise-VPC-01). - Sélectionnez Enregistrer le tunnel.
- Pour commencer, vous devrez installer
cloudflaredet l'exécuter. Pour ce faire, vérifiez que l'environnement sous Choisissez un environnement réflète le système d'exploitation de votre machine, puis copiez la commande dans la zone ci-dessous et collez-la dans une fenêtre de terminal. Exécutez la commande. - Une fois que la commande a terminé son exécution, votre connecteur apparaîtra dans Zero Trust.
- Sélectionnez Suivant.
Lisez la documentation officielle pour créer un tunnel via webui : https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/remote/
Connectez-vous via SSH via Cloudflare Tunnel
Le protocole Secure Shell (SSH) permet aux utilisateurs d'accéder à distance aux appareils via la ligne de commande. Avec Cloudflare Zero Trust, vous pouvez rendre votre serveur SSH accessible sur Internet sans risquer d'ouvrir de ports entrants sur le serveur.
Cloudflare Zero Trust offre deux solutions pour fournir un accès sécurisé aux serveurs SSH :
- Private subnet routing with Cloudflare WARP to Tunnel
- Public hostname routing with
cloudflared access - Public hostname routing with
cloudflared access
Le cloudflared access- [Access the simple access to a website as a visitor] - est celui que nous avons utilisé ici.
N'oubliez pas que cloudflared est un logiciel en constante évolution et qu'il est donc nécessaire de consulter la documentation officielle pour vous assurer que vous utilisez les meilleures procédures pour la version utilisée.
Utilisez SSH à partir d'un terminal ou d'une interface web
Utilisez votre nouveau nom d'hôte public (par exemple, ssh.example.com) pour accéder à votre application SSH via un terminal :
$ ssh [username]@ssh.example.com
Vous pouvez également utiliser l'interface web pour accéder au terminal ssh via le web ; pour ce faire, vous devez simplement activer le rendu du navigateur pour votre application. Consultez la documentation officielle à ce sujet ici : https://developers.cloudflare.com/cloudflare-one/applications/non-http/#rendering-in-the-browser
Utilisez SFTP avec le Cloudflare Tunnel SSH
SFTP, ou Secure File Transfer Protocol, est un protocole de transfert de fichiers sécurisé qui utilise le cryptage du protocole Secure Shell pour fournir un niveau de sécurité élevé pour l'envoi et la réception de fichiers. Pour utiliser SFTP dans vos clients, des étapes supplémentaires sont nécessaires pour connecter le client ; ouvrez simplement votre terminal (depuis le client que vous souhaitez connecter) et tapez cette commande :
$ cloudflared access tcp --hostname ssh.example.com --url localhost:2222
La prochaine fois que vous souhaitez vous connecter via SFTP (avec tout logiciel activé), insérez en tant que nom d'hôte localhost :2222 et les identifiants de votre nom d'utilisateur SFTP du serveur ; lorsque vous fermez votre terminal, la connexion se termine et il ne sera plus possible de vous connecter jusqu'à ce que vous ouvriez à nouveau le terminal et que vous tapiez à nouveau cette commande.
Ajustez les paramètres de sécurité
Lorsque toutes les procédures fonctionnent parfaitement, vous pouvez maintenant fermer les ports utilisés par SSH et SFTP (généralement le port 22) via le pare-feu ; de cette façon, seuls ceux qui possèdent l’application cloudflared et/ou les certificats nécessaires seront en mesure de se connecter.
Lisez toujours la documentation officielle
Comme je l’ai écrit il y a quelque temps, je vous conseille de toujours lire et d’apprendre à partir des documents officiels de cloudflare, car ces logiciels peuvent également connaître des modifications au fil du temps. Ce document a été rédigé sans avoir reçu de support officiel de cloudflare et est destiné à servir d’exemple pour ceux qui travaillent au sein de notre organisation.

