Comment configurer les tunnels Cloudflare sur Ubuntu
Sécurisez Votre Hébergement : Découvrez les Avantages des Tunnels Cloudflare
Introduction aux tunnels Cloudflare
Dans un post récent, j'ai expliqué que j'utilisais un script pour maintenir à jour l'adresse IP de mes sites web.
Étant donné que mon fournisseur d'accès Internet modifie régulièrement l'adresse IP de mon routeur, j'ai dû utiliser un DDNS tel qu'expliqué ci-dessus. Utiliser un service DDNS permet de lier une adresse IP dynamique à un nom de domaine. Cela permet d'associer un nom de domaine fixe à l'adresse IP changeante du routeur. De plus, le renouvellement de l'adresse IP et sa propagation sur les serveurs de domaine prennent un certain temps, durant lequel les sites sont indisponibles.
Au cours des deux derniers mois, j'ai optimisé l'hébergement de mes sites web en utilisant Cloudflare Tunnels (anciennement Argo Tunnel). Ce service gratuit de Cloudflare crée un lien direct entre votre réseau local et Cloudflare. Cette solution m'a permis de :
- Retirer mon proxy inverse Nginx de l'accès extérieur
- Fermer complètement les ports 80 et 443 de mon réseau
- Augmenter la sécurité en réduisant les vecteurs d'attaque
Désormais, le trafic vers mon site web passe d'abord par Cloudflare, qui sert le contenu via le tunnel configuré. Les utilisateurs n'interagissent plus directement avec mon réseau, Cloudflare agissant comme proxy.
Considérations importantes
Il est crucial de noter que cette configuration implique une grande confiance envers Cloudflare, car ils agissent comme intermédiaires pour tout le trafic web des sites configurés avec ce tunnel. Si cela vous préoccupe, il est recommandé de continuer à utiliser un proxy inverse traditionnel.
Processus de configuration
Ce guide suppose une configuration sur un serveur Ubuntu, bien que Cloudflare fournisse également de la documentation pour Windows et MacOS.
Prérequis
- Un compte Cloudflare gratuit
- Un nom de domaine géré par Cloudflare
Installation de Cloudflared
Compte tenu du fait que j'exploite un serveur Proxmox et un conteneur LXC qui héberge Nginx Proxy Manager, j'ai choisi d'installer le tunnel sur ce conteneur.
Commencez par installer la dernière version du package cloudflared :
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
dpkg -i cloudflared-linux-amd64.deb
Authentification
Exécutez la commande suivante et suivez les instructions :
cloudflared tunnel login
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%2FbNkBKept4SfLyOytUHAj2efmwOl1LYFCq1GYwSutRWc%3D
Leave cloudflared running to download the cert automatically.
Vous êtes dirigé vers une URL unique pour authentifier votre compte Cloudflare.
Création du tunnel
Il est maintenant temps de créer votre tunnel à l'aide de la commande :
cloudflared tunnel create nom_du_tunnel
Notez l'UUID généré pour une utilisation ultérieure.
Fichier de configuration config.yml
Créez un fichier config.yml
dans /etc/cloudflared
avec le contenu suivant :
Création d'enregistrements DNS
Utilisez la commande suivante pour chaque nom d'hôte :
cloudflared tunnel route dns <UUID_ou_NOM_du_tunnel> exemple.com
Démarrage du tunnel
Testez le tunnel avec :
cloudflared tunnel run <UUID_ou_NOM_du_tunnel>
Configuration en tant que service
Pour exécuter cloudflared automatiquement, installez-le en tant que service :
cloudflared --config /chemin/vers/config.yml service install
Conclusion
Les tunnels Cloudflare offrent une solution sécurisée pour l'hébergement de sites web à domicile. Ils permettent de fermer des ports supplémentaires, renforçant ainsi la sécurité de votre réseau. Après plusieurs mois d'utilisation, je n'ai rencontré aucun problème majeur.
Commentaires
Vous devez être connecté pour voir les commentaires.