Tutorial

Comment configurer l'authentification par mot de passe avec Apache sur Ubuntu 18.04 [Quickstart]

UbuntuApacheSecurityQuickstartUbuntu 18.04

Introduction

Ce tutoriel vous guidera à travers les ressources de protection par mot de passe sur un serveur web Apache fonctionnant sous Ubuntu 18.04. L'exécution de ces étapes fournira à votre serveur une sécurité supplémentaire afin que les utilisateurs non autorisés ne puissent pas accéder à certaines parties de votre page.

Pour consulter une version plus détaillée de ce tutoriel, avec plus d'explications sur chaque étape, veuillez vous référer à Comment configurer l'authentification par mot de passe avec Apache sur Ubuntu 18.04.

Conditions préalables

Afin de suivre ce tutoriel, vous devez avoir accès aux éléments suivants sur un serveur Ubuntu 18.04 :

  • Un utilisateur sudo sur votre serveur

  • Un serveur web Apache2

  • Un site sécurisé par SSL

Étape 1 - Installez le paquet d'utilitaires Apache

Nous allons installer un utilitaire appelé htpasswd (qui fait partie du paquet apache2-utils) pour gérer les noms d'utilisateur et les mots de passe avec accès aux contenus restreints.

  • sudo apt update
  • sudo apt install apache2-utils

Étape 2 - Créez le fichier de mots de passe

Nous allons créer le premier utilisateur comme suit (remplacez `first_username par le nom d'utilisateur de votre choix) :

  • sudo htpasswd -c /etc/apache2/.htpasswd first_username

Il vous sera demandé de fournir et de confirmer un mot de passe pour l'utilisateur.

Laissez de côté l'argument -c pour tout utilisateur supplémentaire que vous souhaitez ajouter, afin de ne pas écraser les données du fichier :

  • sudo htpasswd /etc/apache2/.htpasswd another_user

Étape 3 - Configurez l'authentification par mot de passe Apache

Dans cette étape, nous devons configurer Apache pour qu'il vérifie ce fichier avant de servir notre contenu protégé. Nous utiliserons pour cela le fichier d'hôte virtuel du site, mais il existe une autre option détaillée dans le long tutoriel si vous n'y avez pas accès ou si vous préférez utiliser des fichiers .htaccess à la place.

Ouvrez le fichier de l'hôte virtuel auquel vous souhaitez ajouter une restriction avec un éditeur de texte tel que nano :

  • sudo nano /etc/apache2/sites-enabled/default-ssl.conf

L'authentification se fait par répertoire. Dans notre exemple, nous allons restreindre la racine entière du document, mais vous pouvez modifier cette liste pour ne cibler qu'un répertoire spécifique dans l'espace web.

Dans cette étape, ajoutez les lignes surlignées suivantes dans votre fichier :

/etc/apache2/sites-enabled/default-ssl.conf
<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory "/var/www/html">
      AuthType Basic
      AuthName "Restricted Content"
      AuthUserFile /etc/apache2/.htpasswd
      Require valid-user
  </Directory>
</VirtualHost>

Vérifiez la configuration à l'aide de la commande suivante :

Vous pouvez redémarrer le serveur pour mettre en œuvre votre politique de mots de passe, puis vérifier l'état de votre serveur.

  • sudo systemctl restart apache2
  • sudo systemctl status apache2

Étape 4 - Confirmez l'authentification par mot de passe

Pour confirmer que votre contenu est protégé, essayez d'accéder à votre contenu confidentiel dans un navigateur web. Un nom d'utilisateur et un mot de passe doivent vous être demandés :

Invite de mot de passe Apache2

Tutoriels connexes

Voici des liens vers des guides plus détaillés relatifs à ce tutoriel :

Creative Commons License