Comment créer un tunnel sécurisé pour SSH et SFTP avec Cloudflare

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

  1. Connectez-vous à Zero Trust et accédez à Accès > Tunnels.
  2. Sélectionnez Créer un tunnel.
  3. 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).
  4. Sélectionnez Enregistrer le tunnel.
  5. Pour commencer, vous devrez installer cloudflared et 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.
  6. Une fois que la commande a terminé son exécution, votre connecteur apparaîtra dans Zero Trust.
  7. 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 :

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.