Foire aux questions

Sécuriser son blog WordPress contre les attaques « Brute-force »

L'utilisation de Wordpress vous expose à la possibilité d'attaques sur les blogs WordPress.
wordpress-logo

Dans la grande majorité des cas ce sont des attaques de type « Brute-force » pour tenter de casser l’accès administrateur au blog. Cela se repère assez facilement dans les logs d’accès à votre hébergement par une succession de lignes : « POST /wp-login.php ».

Généralement, l’attaque provient de 20 à 25 IPs différentes et attaquent pendant une quinzaine de minutes assez violemment.

Comme vous pouvez l’imaginer, cela entraîne une charge importante sur votre site (PHP, bases de données, …) ainsi que sur nos serveurs.

Nous avons mis en place une protection il y a quelques semaines permettant de bloquer les IPs attaquantes à partir d’un certain seuil de requêtes « POST /wp-login.php ». Ce seuil est néanmoins relativement élevé pour éviter de bloquer des IPs légitimes. Il est donc nécessaire de protéger plus efficacement vos blogs.

Quelques conseils :
Passez impérativement à la dernière version de WordPress : 3.6.1 (les versions précédentes comportent des failles de sécurité exploitables)- Utilisez un mot de passe administrateur « fort » et changez le régulièrement (utilisez par exemple cet outil pour générer un mot de passe)
Protégez la connexion à votre blog via un module comme « Limit login attempts » ou encore mieux via un .htaccess (voir ci-dessous)

Protection de la connexion à votre blog via un .htaccess :

  • Le mieux est encore de bloquer complètement l’accès à la page de connexion de votre blog « wp-login.php ». Si vous êtes seul à administrer votre blog et que vous avez une IP fixe ajoutez ces deux lignes en haut de votre .htaccess :

<FilesMatch « wp-login.php »>
deny from all
allow from W.X.Y.Z
</FilesMatch>

Remplacez W.X.Y.Z par votre adresse IP. Pour connaitre votre adresse IP, vous pouvez utiliser ce site web : http://www.monip.org/

  • Si vous êtes plusieurs ou que vous voulez administrer votre blog à différents endroits vous pouvez rajouter une identification sur ce fichier. Toujours dans votre .htaccess ajoutez ces lignes :

<FilesMatch « wp-login.php »>
AuthType Basic
AuthName « Secure Area »
AuthUserFile « /var/www/sites/LOGIN/public_html/wp-admin/.htpasswd »
require valid-user
</FilesMatch>

Remplacez « LOGIN » par le login de l’hébergement. Vous devez ensuite créer un fichier « .htpasswd » dans le répertoire « wp-admin » avec la liste d’utilisateurs. Pour créer cette liste, utilisez l’outil de génération de .htaccess disponible dans votre espace client, dans la rubrique « Outils de développement ».