Mise en place d'une authentification basique

Quand on configure un site web, il n’est pas rare que l’on veuille que certaines sections ne soient pas accessibles au grand public. Pour empêcher l’accès à ces sections, on pourra :

-Soit mettre en place un portail d’authentification applicatif (typiquement les portails d’authentification WordPress) :

basic1.png

-Soit configurer une basic authentication :

basic2.png

Clairement le plus simple pour nous, en tant qu’administrateurs systèmes et réseaux, c’est d’implémenter une authentification basique.

Reprenons nos deux Virtual Hosts configurés précédemment. Nous avons le Virtual Host 1 (site1.com) et le Virtual Host 2 (site2.com). Nous ce qu’on veut, c’est empêcher l’accès au Virtual Host 1 (site1.com).

Pour commencer nous allons devoir créer un fichier .htpasswd. Pour cela on pourra utiliser un petit utilitaire appelé htpasswd :

sudo htpasswd /etc/apache2/.htpasswd admin

basic3.png

Cette ligne de commande va tout simplement créer un fichier .htpasswd dans le répertoire /etc/apache2/ et y intégrer un nom d’utilisateur (ici admin). Il ne vous restera plus qu’à entrer le mot de passe lié à ce nom d’utilisateur.

Dans ce fichier on trouvera ceci :

basic4.png

Le nom de l’utilisateur ainsi que son mot de passe haché.

Au niveau de la configuration des Virtual Hosts, nous n’aurons qu’à ajouter ces lignes :

# Le type d'authentification à utiliser
AuthType Basic
# Une petite bannière pour faire peur aux pirates (lol)
AuthName "Administrators only"
# On indique à Apache que les informations d'authentification sont 
# stockées dans un fichier
AuthBasicProvider file
# On lui donne le chemin d'accès aux fichiers contenant les informations
AuthUserFile "/etc/apache2/.htpasswd"
# On indique que seul l'utilisateur "admin" peut accéder à cette section
Require user admin

On reload Apache :

systemctl reload apache2

Puis si on se connecte sur l’URL site1.com, on aura notre authentification :

basic5.png

Voilà ! Notre section privée est sécurisée !