Cloudflare Tunnel
cloudDéfinition
Service Cloudflare exposant des services internes sur Internet sans ouvrir de ports. Le daemon cloudflared crée un tunnel chiffré sortant vers le edge Cloudflare.
Fonctionnement technique
Cloudflare Tunnel (anciennement Argo Tunnel) est un service permettant d'exposer des services internes sur Internet sans ouvrir de ports entrants dans le pare-feu. Le principe repose sur un agent léger appelé cloudflared qui établit des connexions sortantes chiffrées (QUIC/HTTP/2) vers le réseau edge de Cloudflare, créant un tunnel inverse persistant.
Lorsqu'un utilisateur accède au domaine configuré, la requête atteint le réseau edge de Cloudflare (plus de 300 PoPs mondiaux), qui la route via le tunnel jusqu'au service interne. Le trafic retour emprunte le même chemin inverse. Aucun port entrant n'étant ouvert, la surface d'attaque du serveur est considérablement réduite.
Les tunnels peuvent être configurés en mode local (fichier de config YAML) ou en mode managé via le dashboard Zero Trust de Cloudflare. Le mode managé permet de gérer les routes, les politiques d'accès et la haute disponibilité directement depuis l'interface web. Plusieurs instances de cloudflared peuvent se connecter au même tunnel pour la redondance.
Cas d'usage
Cloudflare Tunnel est idéal pour exposer des applications internes (serveurs web, API, dashboards) sans configurer de NAT, de pare-feu ou de reverse proxy public. Les développeurs l'utilisent pour partager des environnements de développement locaux. Les entreprises l'adoptent pour publier des applications internes accessibles aux employés distants avec des politiques d'accès Zero Trust.
C'est également une solution efficace pour les environnements derrière des NAT complexes (CGNAT, réseaux d'entreprise restrictifs) où la configuration de ports entrants est impossible. Les hébergeurs de services self-hosted (Nextcloud, Gitea, Home Assistant) l'utilisent pour éviter d'exposer directement leur serveur domestique sur Internet.
Outils et implémentation
cloudflared est le daemon client, disponible pour Linux, Windows, macOS et Docker. L'installation est simple : cloudflared tunnel create mon-tunnel puis cloudflared tunnel route dns mon-tunnel app.mondomaine.fr. Le fichier de configuration YAML définit les règles de routage (ingress rules) vers les services locaux.
Le Cloudflare Zero Trust Dashboard (anciennement Cloudflare for Teams) gère les tunnels managés, les politiques d'accès (Access), le filtrage DNS (Gateway) et l'inspection du trafic. Cloudflare Access ajoute une couche d'authentification (SSO, MFA) devant les applications exposées via tunnel. Des alternatives self-hosted existent : Pangolin, Rathole, FRP.
Défense / Bonnes pratiques
Lors du déploiement de Cloudflare Tunnel, activez systématiquement Cloudflare Access pour ajouter une authentification devant vos applications. Ne considérez jamais le tunnel seul comme une mesure de sécurité suffisante : sans Access, toute personne connaissant l'URL peut atteindre votre service.
Configurez des politiques d'accès basées sur l'email, le domaine, le groupe IdP ou la géolocalisation. Activez le WAF (Web Application Firewall) et la protection DDoS de Cloudflare pour les applications publiques. Surveillez les logs d'accès via Cloudflare Logpush pour détecter les tentatives d'accès non autorisées.
Côté réseau interne, limitez les droits du service cloudflared au strict minimum. Exécutez-le dans un conteneur Docker avec un réseau isolé pour éviter qu'une compromission du tunnel ne donne accès à l'ensemble du réseau interne. Renouvelez régulièrement les tokens de tunnel et révoquée les tunnels obsolètes.
Articles associés
Voir nos articles détaillés sur ce sujet.
Besoin d'un expert sur ce sujet ?
Audit, pentest, conformité ISO 27001, développement IA sécurisé — demandez un devis gratuit.
Demander un devis