
Voici comment vous pouvez sécuriser l’accès à une page web sur un serveur web Apache en moins de 5 minutes !
Activer le module auth_digest sur Apache HTTPD
Pour commencer, vérifiez que le module « auth_digest » est bien activé sur votre serveur.
Vérifier que le module est chargé par hhtpd
httpd -t -D DUMP_MODULES | grep auth_digest
Si il ne vous retourne pas auth_digest_module (shared), c’est qu’il faut que vous le chargiez.
Activer auth_digest sous Debian
Simplement lancez la commande.
a2enmod auth_digest
Activer auth_digest sous CentOS
echo -e "\n\n# module pour activer l'authentification digest\nLoadModule auth_digest_module modules/mod_auth_digest.so"
>> "/etc/httpd/conf.modules.d/00-base.conf"
Création des utilisateurs autorisés à accéder au contenu
Si ce n’est pas déjà fait, vous allez devoir créer un fichier spécial pour contenir les utilisateurs et leur mot de passe.
root@dinath ~]# htdigest -c /root/htdigest-auth "Secured" "alex"
Adding password for alex in realm Secured.
New password:
Re-type new password:
Attention !
L’argument « -c » de la commande htdigest va recréer un fichier à chaque appel, supprimant celui que vous avez créé. Si vous voulez ajouter d’autres utilisateurs, utilisez la même commande, sans le « -c ».
htdigest /root/htdigest-auth "Secured" "alex"
Source : https://httpd.apache.org/docs/2.4/mod/mod_auth_digest.html
Configurer les accès aux dossiers / fichiers protégés pour un site
Maintenant que vos utilisateurs ont été crées, allez éditer le virtualhost dans lequel vous souhaitez appliquer la configuration.
Voici son contenu.
<Location "/test">
AuthType Digest
AuthName "Secured"
AuthDigestProvider file
AuthUserFile /root/htdigest-auth
Require valid-user
</Location>
Quelques petites choses à savoir
- Location : permet de pointer votre une URI (ex: https://www.security-helpzone.com/test) ;
- AuthName : ici « Secured » doit impérativement être le même que le realm dans votre commande htdigest (voir plus haut) ;
- AuthUserFile : est simplement le chemin vers le fichier utilisateur que nous venons de créer.
Recharger le serveur web pour appliquer la configuration
Pensez à reloader le service apache web server.
CentOS
service httpd reload
Debian
service apache2 reload
Vérifier la protection de notre page web
J’ai mis en place cette authentification digest dans le dossier test comme montré plus haut.

Si on s’est bien authentifié on pourra accéder à mon fichier HTML.

SELinux et les droits d’accès
Sur CentOS, ne pas oublié d’utiliser chcon pour permettre à votre serveur web apache de voir le fichier.
(13)Permission denied: [client 90.113.109.127:39454] AH01622: Could not open password file: /var/www/htdigest-auth
Cela se corrige très simplement avec la commande suivante.
chcon -t httpd_sys_rw_content_t /var/www/htdigest-auth