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

par mot illustration for: 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 &lt;^&gt;first_username&lt;^&gt;

				
			

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 &lt;^&gt;another_user&lt;^&gt;

				
			

É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/&lt;^&gt;default-ssl.conf&lt;^&gt;

				
			

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 :

				
					
[label /etc/apache2/sites-enabled/default-ssl.conf]

&lt;VirtualHost *:80&gt;

  ServerAdmin webmaster@localhost

  DocumentRoot /var/www/html

  ErrorLog ${APACHE_LOG_DIR}/error.log

  CustomLog ${APACHE_LOG_DIR}/access.log combined



  &lt;Directory "/var/www/html"&gt;

      &lt;^&gt;AuthType Basic&lt;^&gt;

      &lt;^&gt;AuthName "Restricted Content"&lt;^&gt;

      &lt;^&gt;AuthUserFile /etc/apache2/.htpasswd&lt;^&gt;

      &lt;^&gt;Require valid-user&lt;^&gt;

  &lt;/Directory&gt;

&lt;/VirtualHost&gt;

				
			

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 :