En tant qu’administrateur Web, il peut être utile de restreindre certaines parties d’un site Web aux visiteurs, que ce soit temporairement ou de façon permanente. Ce guide vous montre comment peut on protéger un site, ou bien restreindre l’accès à des ressources avec un mot de passe.
Dans cet article j’utilise le serveur Ubuntu18.04, sur lequel est installé le serveur web Apache avec un virtual Host configuré, si vous ne l’avez pas encore installé je vous invite à suivre le guide Apprendre à créer des virtual Hosts.
Création du fichier de mot de passe :
La commande htpasswd nous permet de crée un fichier de mot de passe que Apache utilisera pour authentifier les utilisateur. D’abord nous allons créer un fichier caché ( commençant par un « . ») que vous pouvez le nommer comme vous voulez, dans mon cas je l’ai nommé « .htpasswd », ce fichier doit être placé dans /etc/apache2 :
#touch /etc/apache2/.htpasswd:
La première fois que vous utilisez l’utilitaire htpasswd, vous devez ajouter l’option -c pour créer le fichier de mot de passe et nous spécifions un nom d’utilisateur (admin dans mon cas) à la fin de la commande pour créer une nouvelle entrée dans le fichier :
#htpasswd -c /etc/apache2/.htpasswd admin
Il vous sera demandé de fournir un mot de passe pour l’utilisateur « admin ».
Une fois cela est fait, je vous invite à jeter un coup d’œil sur le fichier, vous pouvez voir qu’un entré à été ajouté de notre utilsateur avec le mot de passe crypté :
#cat /etc/apache2/.htpasswd admin:$ppe5$.0CAabqX$yb9lrqI\p8UzGPYtGAEAa/
L’authentification par mot de passe Apache :
Après avoir créé le fichier d’authentification avec htpasswd, vous allez modifier le fichier Virtual host de votre site auquel vous souhaitez ajouter une restriction et ajouter la section suivante :
<VirtualHost *:80> ServerAdmin Web@localhost DocumentRoot /var/www/monSite ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/monSite> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory> </VirtualHost>
Voyons voir ce que signifie ces directives :
-AuthType Basic : indique une authentification par login/mot de passe
-AuthName : le titre de la fenêtre d’authentification qui sera affiché aux visiteurs
-AuthUserFile : indique le fichier d’authentification
-Require valid-user : indique que l’accès est restreinte à un utilisateur
Enregistrer le fichier t vérifier la configuration apache est bien correcte avant de le redémarrer :
#apachectl -t ( ou bien apache2ctl configtest )
#systemctl restart apache2
#systemctl status apache2
Maintenant votre site est protégé par un mot de passe.
Félicitations! vous avez maintenant configuré l’authentification de base pour votre site.
Installation d’un certificat SSL sur un serveur Nginx
Sudo : Comment paramétrer sudoers
tar: Les 14 commandes les plus utilisé
mkfs : Création des systèmes de fichier
Fail2Ban : How to protect Linux services