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

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 /var/www/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.

  • Utilisateur : alex
  • Mot de passe : alex

Ces identifiants sont justes pour la démo, il ne faut jamais prendre des mots de passes aussi faibles.

https://security-helpzone.com/test/auth-digest.html

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
Je suis en train d’écrire mon mémoire pour valider mon Master.

Je suis développeur Fullstack J2E pour une PME sur Paris.

#Javascript #Ionic2 #PHP 7 #Slim3 #AutoIT #Linux #CentOS #Debian

Laisser un commentaire