Protéger l’admin WordPress grâce à un fichier .htpasswd

15/10/2024

La sécurité d’un site WordPress est primordiale, surtout lorsqu’il s’agit de protéger l’accès à la zone d’administration. Il existe diverses méthodes pour cela et qui peuvent être complémentaires (mettre en place un WAF, déporter les URLs de connexion, définir les entêtes de sécurité…). Mais il existe une autre méthode assez méconnue et pourtant redoutablement efficace pour renforcer cette sécurité, consistant à ajouter une couche d’authentification supplémentaire à l’aide d’un fichier .htpasswd. Cette méthode protège vos pages d’administration (wp-login.php et wp-admin) contre les attaques par force brute et autres tentatives d’accès non autorisé.

Dans cet article, je vous explique pas à pas comment configurer un fichier .htpasswd pour protéger l’accès à l’administration de votre site WordPress.

Note : La procédure décrite ici s’applique aux hébergements web basés sur un serveur Apache.

Etape 1 – Générer le fichier .htpasswd

Le fichier .htpasswd contient les identifiants (noms d’utilisateurs et mots de passe) qui serviront à restreindre l’accès à certaines parties de votre site.

Générer des mots de passe sécurisés

  1. Rendez-vous sur un générateur de mots de passe en ligne, comme celui-ci.
  2. Entrez le ou les noms d’utilisateurs et mots de passe, puis cliquez sur “Générer le contenu du fichier htpasswd”. Vous devriez obtenir un résultat semblable à ceci :
Générateur .htpasswd - PG Concept
Les données présentées ici sont évidemment fictives.
Le hachage par “SHA-1 salé” est recommandé.
  1. Copiez la ou les lignes obtenues, vous en aurez besoin plus tard.

Créer et uploader le fichier .htpasswd

  1. Ouvrez un éditeur de texte. Notepad fera parfaitement l’affaire, maisen ce qui me concerne j’ai un faible pour Notepad++ (gratuit).
  2. Collez la ou les lignes générées à l’étape précédente.
  3. Enregistrez le fichier sous le nom .htpasswd.
  4. Déposez le fichier sur votre serveur grâce à un client FTP tel que FileZilla ou encore via le gestionnaire de fichiers de votre compte d’hébergement web.

Attention ! Il est recommandé de déposer le fichier dans un dossier sécurisé, en dehors du répertoire public (public_html) pour éviter tout accès direct.

Par exemple :

Etape 2 – Modifier le fichier .htaccess

Le fichier .htaccess permet de contrôler le comportement de votre serveur Apache et de restreindre l’accès à certaines parties de votre site. Dans ce cas, nous allons configurer l’authentification pour protéger wp-login.php et le répertoire wp-admin.

Accéder au fichier .htaccess

  1. Connectez-vous à votre serveur grâce à un client FTP ou via le gestionnaire de fichiers de votre hébergeur.
  2. Recherchez le fichier .htaccess dans le répertoire public_html ou dans le dossier racine de votre installation WordPress.
  3. Ouvrez ce fichier pour le modifier. Si le fichier n’existe pas, vous pouvez le créer à la racine de votre installation WordPress.

Ajouter les directives de protection

Ajoutez le code suivant dans le fichier .htaccess :

Pensez à remplacer /home/DOSSIER_SECURISE/ par le nom de dossier que vous avez créé.

Note : L’exclusion de admin-ajax.php est nécessaire si l’un de vos plugins utilise les appels Ajax ou encore les API REST. Dans le doute, conservez cette exclusion.

Étape 3 – Tester la protection

Une fois les modifications effectuées :

  1. Testez l’accès à https://votre_site.fr/wp-login.php ou à https://votre_site.fr/wp-admin. Vous devriez voir une boîte de dialogue vous demandant de saisir un nom d’utilisateur et un mot de passe.
  2. Entrez les identifiants d’un utilisateur parmi ceux que vous avez configurés dans le fichier .htpasswd. Le mot de passe est évidemment celui NON crypté.
  3. Si tout fonctionne correctement, vous serez redirigé vers la page de connexion WordPress.

Bonus – Cas d’un serveur Nginx

Si vous utilisez un serveur Nginx, la configuration diffère légèrement de celle d’Apache. La création du fichier .htpasswd reste identique : générez-le et placez-le dans un répertoire sécurisé comme /etc/nginx/.htpasswd.

Au lieu de modifier un fichier .htaccess, les restrictions d’accès se configurent directement dans le fichier de configuration Nginx de votre site.

  1. Ouvrez le fichier de configuration Nginx, généralement situé dans /etc/nginx/sites-available/votre_site.
  2. Ajoutez les directives suivantes pour protéger wp-login.php et /wp-admin :
  1. Une fois ces modifications apportées, redémarrez Nginx pour appliquer les changements :

Le reste de la procédure, notamment les tests, est identique à Apache.

Conclusion

L’utilisation d’un fichier .htpasswd pour protéger l’accès à wp-login.php et wp-admin est une méthode simple mais efficace pour renforcer la sécurité de votre site WordPress. En ajoutant cette couche supplémentaire d’authentification, vous réduisez les risques de tentatives de connexion non autorisées et vous protégez votre site contre les attaques par force brute.

Toutefois, cela ne vous dispense pas de mettre en place les mesures de sécurité habituelles. N’oubliez pas d’effectuer des sauvegardes régulières et de surveiller les journaux de sécurité pour détecter toute tentative suspecte. La sécurité de votre site est un processus continu, et cette méthode s’inscrit parfaitement dans une approche proactive de la protection des données.

Note : La méthode décrite ici peut s’appliquer à tout site de site web dont on veut restreindre l’accès à certaines pages, pas seulement aux sites développés sous WordPress.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ces articles pourraient vous intéresser

Google Search Console : Le guide complet

Google Search Console : Le guide complet

Découvrez comment utiliser Google Search Console pour optimiser la visibilité de votre site. Ce guide complet couvre la configuration, l’analyse des performances, l’indexation, l’optimisation mobile et plus encore, afin de booster votre SEO et résoudre les problèmes courants.

lire plus
Maintenir un site WordPress à jour

Maintenir un site WordPress à jour

Apprenez comment maintenir votre site WordPress à jour en suivant des pratiques essentielles pour la sécurité, les performances, et la compatibilité. Sauvegardes, mises à jour manuelles, surveillance des erreurs, et mises à jour PHP sont au cœur de cet article.

lire plus

Pin It on Pinterest