Activer la double authentification de son Wordpress
Suite aux nombreuses attaques de hack/bruteforce visant à pirater les WordPress, nous vous conseillons d'installer l'extension Limit Login Attemps.
Cependant dans certains cas les attaques étant lancé de très gros botnet, ce module n'est pas suffisamment performant et n'arrive pas à bloquer toutes les IPs.
Ce tutoriel à donc pour but de faire une double authentification sur le dossier wp-admin et la page d'authentification wp-login.php; nous allons faire cela avec les fichiers .htaccess
Fichier Wordpress à modifier
Tous d'abord il faut créer un fichier .htpasswds qui va contenir votre login et mot de passe, je vous recommande d'utiliser un utilisateur totalement différent que celui de votre WordPress.
Dans mon cas je vais mettre ce fichier en dehors du public_html à cette endroit:
/home/comptecp/.htpasswds
Pour cela je vous recommande ce site : http://www.htaccesstools.com/htpasswd-generator/ , cela devrait ressemble à ceci.
Une fois ce fichier contenant le login et mot de passe, nous allons vous devoir créer un fichier .htaccess dans le dossier /wp-admin (/home/comptecp/public_html/wp-admin/.htaccess)
Celui-ci va contenir ces différente ligne,
ErrorDocument 401 default
AuthType Basic
AuthName "Double Authentification"
AuthUserFile /home/comptecp/.htpasswds
require valid-user
N'oubliez donc pas de personnaliser votre chemin d'accès pour le AuthUserFile/passwd, une fois cela effectué vous aurez déjà une double authentification sur le wp-admin.
fichier .htaccess du wp-admin
Regardons maintenant à la protection de la page d'identification wp-login.php, cette pas est la plus ciblé pour le moment; nous allons donc la protéger aussi par cette double protection, normalement dans le /home/comptecp/public_html/.htaccess vous devez avoir quelque chose comme ceci:
Options -Indexes
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Nous allons rajouter ce bout de code avant le "# BEGIN WordPress", cela devrait vous donner quelque chose comme ceci :
Options -Indexes
ErrorDocument 401 default
<FilesMatch "^((wp-login)\.php|(xmlrpc)\.php)$">
AuthName "Double Authentification"
AuthType Basic
AuthUserFile /home/comptecp/.htpasswds
Require valid-user
</FilesMatch>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Voilà le résultat :
fichier .htaccess du public_html
Faite donc un petit test d'accès sur cette page, si vous avez bien fait la manipulation vous ne devriez avoir une page d'authentification vous demander des identifiants avant d'avoir la page de WordPress.
Avec cela vous êtes protégé contre le piratage contre ces mauvais hackeurs/botnet.
Si vous utilisez xmlrpc pour des plugins comme Jetpack, ce fichier sera aussi protégé.