Sécuriser l’accès à une page web sur Apache HTTPD

Sécuriser l'accès à une page web, un dossier ou un fichier sur le serveur web Apache HTTPD avec une authentification digeste.
  • Administration système
Apache fundation icone logo
Logo Apache Fondation

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.

Sécuriser une page web avec auth_digest
Demande de mot de passe : HTTPD Digest autjentification

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

Apache HTTPD authentification digest
Authentification digest correcte

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

Article publié le

Dernière modification le

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.