Recherche de site Web

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.

  1. 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 linuxconfig
    
  2. Avant 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-default
    

    Les 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>
    
  3. Ajouter le paramètre AllowOverride pour qu’Apache puisse lire le fichier .htaccess

  4. Redémarrez Apache pour que ces nouvelles modifications prennent effet.

    
    sudo systemctl restart apache2
    

    Ou sur les systèmes basés sur RHEL :

    
    sudo systemctl restart httpd
    
  5. Ensuite, 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/.htaccess
    
  6. Collez les lignes suivantes dans ce fichier, puis enregistrez vos modifications.

    
    AuthType Basic
    AuthName "Authentication Required"
    AuthUserFile "/home/linuxconfig/.htpasswd"
    Require user linuxconfig
    

    Vous pouvez également remplacer la dernière ligne par Require valid-user si vous prévoyez de configurer plusieurs comptes d’utilisateur qui accéderont à cet annuaire.

  7. 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.
  8. 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.

  1. 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.conf
    
  2. Placez 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 .htpasswd se 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>
    
  3. Ajouter des paramètres d’authentification au fichier d’hôte virtuel Apache

  4. 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 linuxconfig
    

    Vous 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$9En2dqIrKbsLjb0XRc9cl0
    


  5. Redémarrez Apache pour que ces nouvelles modifications prennent effet.

    
    sudo systemctl restart apache2
    

    Ou sur les systèmes basés sur RHEL :

    
    sudo systemctl restart httpd
    
  6. 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.
  7. 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.

Articles connexes: