Protection d’accès au répertoire Apache .htaccess
Lors de l’exécution d’un serveur Web Apache sur un système Linux, il peut y avoir des répertoires auxquels vous ne voulez pas que tout le monde puisse accéder. Apache nous offre quelques outils différents que les administrateurs de sites Web peuvent utiliser pour protéger un répertoire.
L’une des façons les plus courantes de configurer l’accès restreint à un dossier consiste à utiliser le fichier .htaccess. Cette configuration demandera aux utilisateurs de saisir un mot de passe chaque fois qu’ils rencontreront l’URL protégée. Mais nous pouvons également configurer la même protection sans .htaccess.
Dans ce guide, nous allons passer en revue les instructions étape par étape pour protéger un répertoire sur un serveur Web Apache, à travers deux méthodes différentes. Suivez-nous pour configurer la protection par mot de passe sur votre propre site Web.
Dans ce tutoriel, vous allez apprendre :
- Comment protéger un répertoire à l’aide d’un fichier .htaccess
- Comment protéger un répertoire sans fichier .htaccess
Nous sommes invités à entrer un nom d’utilisateur et un mot de passe lorsque nous essayons d’accéder au répertoire protégé
Protéger un répertoire à l’aide d’un fichier .htaccess
Le fichier .htaccess est un fichier de configuration utilisé par Apache. Vous pouvez déposer un fichier .htaccess dans n’importe quel répertoire pour lequel vous souhaitez configurer des paramètres supplémentaires. Suivez les étapes ci-dessous pour configurer l’authentification par mot de passe dans un répertoire de serveur Web Apache à l’aide d’un fichier .htaccess.
Commencez par créer un nom d’utilisateur et un mot de passe que nous utiliserons pour entrer dans le répertoire protégé. Nous utiliserons l’utilitaire htpasswd pour générer ces informations, et le fichier pourra être stocké n’importe où sur votre système. Dans cet exemple, nous allons créer un utilisateur nommé
linuxconfig. Vous serez invité à entrer un nouveau mot de passe deux fois lors de l’exécution de cette commande.htpasswd -c /home/linuxconfig/.htpasswd linuxconfigAvant de pouvoir utiliser notre nouveau compte utilisateur et notre nouveau mot de passe, nous devons configurer Apache pour qu’il lise le fichier .htaccess. Par défaut, il ignorera ce fichier. Vous pouvez soit appliquer ce paramètre globalement en modifiant le fichier de configuration Apache, soit modifier votre hôte virtuel Apache pour appliquer la configuration à un site individuel.
sudo nano /etc/apache2/sites-available/000-defaultLes lignes que nous devons ajouter sont ci-dessous. Remplacez simplement notre exemple par votre propre répertoire que vous essayez de protéger.
<Directory /var/www/html/protected/> AllowOverride All </Directory>Redémarrez Apache pour que ces nouvelles modifications prennent effet.
sudo systemctl restart apache2Ou sur les systèmes basés sur RHEL :
sudo systemctl restart httpdEnsuite, créez le fichier .htaccess dans le répertoire que vous souhaitez protéger. Dans cet exemple, nous allons sécuriser le répertoire
/var/www/html/protected.nano /var/www/html/protected/.htaccessCollez les lignes suivantes dans ce fichier, puis enregistrez vos modifications.
AuthType Basic AuthName "Authentication Required" AuthUserFile "/home/linuxconfig/.htpasswd" Require user linuxconfigVous pouvez également remplacer la dernière ligne par
Require valid-usersi vous prévoyez de configurer plusieurs comptes d’utilisateur qui accéderont à cet annuaire.- Enfin, la navigation vers le répertoire protégé dans le navigateur devrait nous demander un nom d’utilisateur et un mot de passe avant de pouvoir accéder au contenu.
Ajouter le paramètre AllowOverride pour qu’Apache puisse lire le fichier .htaccess
Nous sommes invités à entrer un nom d’utilisateur et un mot de passe lorsque nous essayons d’accéder au répertoire protégé
Protéger un répertoire sans fichier .htaccess
Nous pouvons sécuriser un répertoire sur notre serveur web sans avoir besoin d’utiliser un fichier .htaccess. Vous aurez besoin de l’utilitaire htpasswd installé sur votre système, qui aurait dû être installé automatiquement lorsque vous avez téléchargé Apache. Suivez les étapes ci-dessous pour voir comment l’utiliser pour créer un répertoire Web protégé par mot de passe.
Commencez par configurer votre fichier d’hôte virtuel pour utiliser l’authentification pour l’accès au répertoire que vous souhaitez protéger. Nous modifions simplement le fichier de configuration par défaut, mais remplacez le nom du fichier par le vôtre.
sudo nano /etc/apache2/sites-available/000-default.confPlacez les lignes suivantes à l’intérieur de votre fichier. Le répertoire que nous essayons de protéger est
/var/www/html/secret, mais assurez-vous de modifier ce paramètre pour refléter le répertoire que vous souhaitez protéger. Notre fichier d’authentification.htpasswdse trouve dans/home/linuxconfig/.htpasswd, alors assurez-vous de le remplacer également par votre propre emplacement.<Directory /var/www/html/secret/> AuthType Basic AuthName "Authentication Required" AuthUserFile "/home/linuxconfig/.htpasswd" Require valid-user </Directory>Ensuite, générez le fichier d’authentification en exécutant la commande htpasswd. Encore une fois, substituez votre propre répertoire et décidez où ce fichier doit être stocké sur votre système. Dans cet exemple, nous allons créer l’authentification pour l’utilisateur
linuxconfig.htpasswd -c /home/linuxconfig/.htpasswd linuxconfigVous serez invité à entrer un mot de passe deux fois, puis le fichier sera créé. Votre mot de passe est stocké sous la forme d’un hachage chiffré, que vous pouvez afficher à l’intérieur du fichier.
cat /home/linuxconfig/.htpasswd linuxconfig:$apr1$lYH8Fue2$9En2dqIrKbsLjb0XRc9cl0Redémarrez Apache pour que ces nouvelles modifications prennent effet.
sudo systemctl restart apache2Ou sur les systèmes basés sur RHEL :
sudo systemctl restart httpd- Désormais, l’accès au répertoire protégé que nous avons configuré précédemment devrait vous demander un nom d’utilisateur et un mot de passe.
Ajouter des paramètres d’authentification au fichier d’hôte virtuel Apache
Nous sommes invités à entrer un nom d’utilisateur et un mot de passe lorsque nous essayons d’accéder au répertoire protégé
Réflexions finales
Dans ce guide, nous avons vu comment sécuriser un répertoire de serveur web en utilisant deux méthodes différentes dans Apache. Apache nous offre des moyens simples et puissants de protéger les répertoires et les fichiers, ce qui nous permet de placer des fichiers privés sur notre site Web sans nous soucier de l’accès de la mauvaise personne. Que vous choisissiez d’utiliser un fichier .htaccess ou non, la sécurisation d’un répertoire est une tâche courte qui ne prend que quelques étapes.



