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 passwd 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:

fichier passwd

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/.htacces)

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/public_html/wp-admin/passwd
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é.

Was this answer helpful? Yes No