Il est possible de configurer le serveur Apache pour que seul le trafic en provenance de Cloudflare soit autorisé.
Pour rappel, Clouflare se comporte comme un “reverse proxy“.
Le moyen le plus simple, consiste à vérifier la présence d’un en-tête HTTP spécifique à Cloudflare.
Ce n’est pas une méthode “bulletproof” – comme on dit – car le spoofing des en-têtes est toujours possible, mais cela a l’avantage d’être simple à mettre en œuvre.
Marche à suivre :
1) Activer la fonctionnalité “IP Geolocation” dans le module “Network” de Cloudflare
Une fois la fonctionnalité activée, Cloudflare va ajouter l’en-tête “CF-IPCountry” aux requêtes HTTP.
2) Modifier le fichier “.htaccess” du serveur Apache
Nous vérifions tout simplement la présence de l’en-tête “CF-IPCountry”, et si cela n’existe pas, nous renvoyons une erreur 403.
# BEGIN Cloudflare HTTP Header Check <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:CF-IPCountry} ^$ RewriteRule ^ - [F,L] </IfModule> #END Cloudflare HTTP Header Check
Easy peasy lemon squeezy, comme on dit.