Si vous gérez un site WordPress, la sécurité de ce dernier ne doit pas être négligée. Une des portes la plus exposée aux attaques par brute force est le fichier wp-login.php qui sert d’authentification. Il existe plusieurs façon de sécurisée l’authentification sur ce dernier, notamment avec des plugins. Si vous utilisez Cloudflare, vous pouvez vous servir du WAF pour créer des règles de sécurité à ce fichier en complément ou en dispense de plugin. Ce tutoriel vous explique comment le faire avec la version gratuite de Cloudflare.
💡Comme indiqué dans les ressources WordPress, si vous protégez le répertoire wp-admin, vous pouvez casser le fonctionnement de certains plugins qui feraient des requêtes ajax sur cette URL en front-end. Il suffit généralement de protéger uniquement l’accès à wp-login.php.
Restreindre l’accès à wp-login.php par adresse IP avec Cloudflare
Un des moyens les plus sécurisé est de restreindre l’accès au wp-login.php de WordPress à une adresse IP. Cependant, votre FAI doit vous fournir une IP fixe auquel cas vous allez passer votre temps à modifier l’IP sur l’interface. De plus, si vous avez des intervenants externes, il faudra également gérer leurs adresses.
- Connectez-vous à Cloudflare et sélectionnez le site à protéger.
- Allez dans Security – WAF et cliquez sur l’onglet Custom rules.
- Cliquez sur Create rule et renseignez les éléments suivants :
- Rule name : “Protect wp-login.php by ip source”
- Field : “URI Path”
- Operator : “wildcard”
- Value : “/wp-login.php*”
- Cliquez sur AND
- Field : “IP Source Address”
- Operator : “does not equal”
- Value : “Renseignez votre adresse IP”
- Choose action : “Block”
- Select order : “First”
- Rule name : “Protect wp-login.php by ip source”
- Cliquez sur Save pour sauvegarder votre règle.
Protéger wp-login.php avec un challenge Cloudflare
Si plusieurs personnes se connectent à votre site, c’est une solution souple et commode. Un Captcha sera initialisé avec Cloudflare pour vérifier qu’il y a bien un humain derrière la requête. Vous dissuaderez ainsi la plupart des bots et hackeurs, et vous empêcherez les attaques par force brute.
- Connectez-vous à Cloudflare et sélectionnez le site à protéger.
- Allez dans Security – WAF et cliquez sur l’onglet Custom rules.
- Cliquez sur Create rule et renseignez les éléments suivants :
- Rule name : “Protect wp-login.php by challenge”
- Field : “URI Path”
- Operator : “wildcard”
- Value : “/wp-login.php*”
- Choose action : “Interactive Challenge”
- Select order : “First”
- Cliquez sur Save pour sauvegarder votre règle.
Renforcer la protection avec un blocage par pays
Vous pouvez restreindre l’accès au wp-login.php de WordPress à des pays afin de renforcer la protection par Challenge de Cloudflare. Ainsi vous pouvez supprimer tous les requêtes de pays louches et autoriser seulement la France à ce connecter à l’interface par exemple.
- Connectez-vous à Cloudflare et sélectionnez le site à protéger.
- Allez dans Security – WAF et cliquez sur l’onglet Custom rules.
- Cliquez sur Create rule et renseignez les éléments suivants :
- Rule name : “Protect wp-login.php by Country”
- Field : “URI Path”
- Operator : “wildcard”
- Value : “/wp-login.php*”
- Cliquez sur AND
- Field : “Country”
- Operator : “does not equal”
- Value : “France”
- Choose action : “Block”
- Select order : “First”
- Rule name : “Protect wp-login.php by Country”
- Cliquez sur Save pour sauvegarder votre règle.
💡Cette règle doit être positionnée avant le challenge pour être efficace
Vérifier le fonctionnement de vos règles
Pour vous assurer que tout fonctionne correctement, faites des tests de connexion. Si vous créez des règles de localisation, vous pouvez utiliser un VPN pour changer de localisation et faire vos tests. Vérifiez également les logs d’activités du WAF Cloudflare.
Conclusion
Nous venons de voir comment sécuriser l’accès à wp-login.php de WordPress sans plugin grâce au WAF de Cloudflare accessible dans l’offre gratuite. Vous pouvez également utiliser des plugins en remplacement ou pour compléter votre protection, comme WPS Hide Login, WPS Limit Login ou encore Two Factor.