Le modèle Zero Trust remplace l’approche traditionnelle basée sur le périmètre réseau par une vérification continue de chaque utilisateur et chaque requête. Cloudflare Zero Trust permet de sécuriser les applications web internes sans avoir besoin d’un VPN, en utilisant des tunnels chiffrés et des politiques d’accès basées sur l’identité. Ce guide couvre la configuration complète de Cloudflare Zero Trust, de la création du tunnel à la mise en place des politiques d’accès et l’intégration des fournisseurs d’identité.
Configuration du Tableau de Bord Zero Trust
Accédez au tableau de bord Zero Trust via one.dash.cloudflare.com. Créez une organisation et définissez votre domaine d’authentification. Ce domaine sera utilisé pour la page de connexion des utilisateurs accédant à vos applications protégées.
Commencez par naviguer dans Settings > Authentication pour configurer votre premier fournisseur d’identité. Pour une intégration Google Workspace :
- Créez un projet dans la console Google Cloud
- Activez l’API Google Identity
- Créez des identifiants OAuth 2.0 avec l’URI de redirection fournie par Cloudflare
- Entrez le Client ID et le Client Secret dans le tableau de bord Cloudflare
Création d’un Cloudflare Tunnel
Installez cloudflared sur le serveur hébergeant votre application interne :
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloudflare-main.gpg
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update && sudo apt install -y cloudflared
Authentifiez et créez le tunnel :
cloudflared tunnel login
cloudflared tunnel create mon-tunnel-interne
Configurez le routage du tunnel dans le fichier de configuration :
# ~/.cloudflared/config.yml
tunnel: <TUNNEL_ID>
credentials-file: /root/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: app-interne.mondomaine.com
service: http://localhost:8080
- hostname: admin.mondomaine.com
service: http://localhost:3000
- service: http_status:404
Démarrez le tunnel comme service systemd :
sudo cloudflared service install
sudo systemctl enable --now cloudflared
Politiques d’Accès
Créez une application Access dans le tableau de bord Zero Trust sous Access > Applications :
- Sélectionnez Self-hosted comme type d’application
- Définissez le domaine de l’application (
app-interne.mondomaine.com) - Créez une politique Allow avec les critères d’accès souhaités
Exemple de critères de politique :
- E-mails : autorisez des adresses spécifiques ou des domaines entiers (
@entreprise.com) - Groupes IdP : restreignez l’accès aux membres de groupes spécifiques dans votre fournisseur d’identité
- Pays : limitez l’accès à des pays spécifiques
- Posture de l’appareil : exigez un certificat WARP ou une version minimale du système d’exploitation
Ajoutez une politique Deny en dessous pour bloquer explicitement les accès non autorisés.
Surveillance et Journalisation
Consultez les journaux d’accès dans Logs > Access pour voir chaque tentative de connexion, y compris l’identité de l’utilisateur, l’adresse IP, le pays d’origine et la décision d’accès (autorisé ou refusé). Ces journaux sont essentiels pour l’audit de sécurité et la détection d’activités suspectes.
Configurez des alertes pour les connexions échouées répétées ou les tentatives d’accès depuis des emplacements inhabituels afin de renforcer la posture de sécurité de vos applications internes.
Résumé
Ce guide a couvert la mise en place de Cloudflare Zero Trust pour sécuriser les applications internes. Les éléments clés incluent la création de tunnels chiffrés avec cloudflared, l’intégration de fournisseurs d’identité, la définition de politiques d’accès granulaires et la surveillance des journaux. Cette approche Zero Trust élimine le besoin d’un VPN tout en offrant un contrôle d’accès plus précis et une meilleure visibilité.