Tutoriel Protéger un Répertoire Web

Dés lors que vous avez un site internet, ou plus généralement un espace web, vous pouvez avoir un ou plusieurs répertoires à protéger car certaines données peuvent n’être disponibles que pour certaines personnes et doivent rester inaccessibles pour le grand public.

Quelques exemples :

  • mise à disposition de photographies haute définition aux clients d’un photographe via un répertoire dédié à chaque client
  • supports de cours et tutoriels destinés aux participants à une formation
  • partie administration d’une base de données, d’une base documentaire ou d’un site web

Pour ce faire vous devez limiter l’accès à un répertoire qui contiendra les données ou applications à protéger. La protection se fait en mettant en place un identifiant et un mot de passe réservés à l’utilisateur qui doit pouvoir y accéder.

Sur les serveurs Apache / Linux (les plus utilisés pour l’hébergement web) et sur un hébergement mutualisé par exemple cette limitation d’accès se met en place à l’aide de deux fichiers :

  • .htaccess : qui contiendra les instructions de protection des répertoires
  • .htpasswd : qui contiendra la liste des utilisateurs et des mots de passe cryptés

Pour la commodité de ce petit tutoriel nous utiliserons comme URL (adresse internet) http://www.monsite.com que vous remplacerez par votre propre adresse web, puis comme répertoire à protéger /protege que vous remplacerez par votre propre répertoire à protéger. Ce qui donne comme adresse d’accès au répertoire : http://www.monsite.com/protege. Ceci peut également se faire pour un sous-domaine, ce qui donnerait alors comme adresse : http://protege.monsite.com.

 


1 - Etablir une connexion FTP et créer un répertoire

Lors de différentes étapes de cette procédure il sera nécessaire d’établir une connexion FTP entre votre ordinateur local et votre serveur distant hébergeant le répertorie à protéger. Si vous savez comment procéder sautez cette étape, sinon voici comment faire :

1 - Récupérez les données de connexion FTP indiquées dans l’espace d’administration de votre hébergement avec l’adresse de l’hôte - ftp.monsite.com par exemple - (l’hôte étant le serveur distant), l’identifiant et le mot de passe  (le cas échéant, si l’hébergeur ne l’a pas défini par défaut, créez-vous un accès FTP sur la racine de votre site avec vos propres identifiant et mot de passe)

2 - Téléchargez et installez le petit logiciel gratuit FileZilla en cliquant ce lien : téléchargement de FileZilla pour Windows ; pour les autres systèmes d’exploitation rendez-vous sur la page Client Download (le cas échéant : aide en ligne FileZilla)

3 - Une fois le logiciel installé, ouvrez-le, puis renseignez les champs situés à gauche en haut de page comme ceci :

Connexion FTP avec FileZilla

4 - Cliquez sur le bouton “Connexion rapide“. Une fois la connexion établie FileZilla vous présente un écran de contrôle avec la fenêtre de gauche qui représente le contenu du disque dur de votre ordinateur local, et la fenêtre de droite qui représente le contenu du serveur distant où est stocké votre site chez votre hébergeur ; dès lors vous pouvez glisser-déposer des fichiers de l’un à l’autre et créer des répertoires sur votre site

5 - S’il n’existe pas encore créez votre répertoire à protéger par un clic droit dans la fenêtre de droite et “Créer un dossier“, nommez-le (”protege” par exemple) puis validez ; glissez-le ensuite de droite à gauche pour avoir le même sur votre disque dur local, puis double-cliquez sur le nom du répertoire pour entrer dedans.

 


2 - Trouver le répertoire racine

Pour créer le fichier .htaccess il est nécessaire de connaître le répertoire racine de votre espace d’hébergement ou de votre site web. Celui-ci est généralement indiqué dans l’espace d’administration de votre compte client chez votre hébergeur et plus particulièrement dans la configuration des domaines. Toutefois, si vous éprouvez des difficultés pour trouver cette information, voici une astuce rapide pour y parvenir :

  1.  Créez avec le bloc-note un petit fichier contenant juste la ligne <? echo $DOCUMENT_ROOT; ?> et sauvegardez-le sous le nom “racine.php
  2. Téléchargez ce fichier via FTP (voir 1 ci-dessus) dans le répertoire /protege que vous voulez protéger
  3. Ouvrez ensuite ce fichier dans votre navigateur web à l’adresse http://www.monsite.com/protege/racine.php
  4. Copiez la ligne qui apparait et qui doit être plus ou moins de la forme /…/ .. /…/htdocs/protege

 


3 - Création du .htaccess

Une fois la connexion FTP effectuée (1 ci-dessus) et étant muni de l’adresse racine du répertoire à protéger (2 ci-dessus) vous allez pouvoir créer le fichier .htaccess dans une nouvelle page vierge du bloc-note avec le contenu suivant (et rien d’autre : sans espace, sans ligne superflue) :

AuthUserFile /…/ .. /…/htdocs/protege/.htpasswd
AuthGroupFile /dev/null
AuthName “ACCES RESERVE”
AuthType Basic

require valid-user

en remplaçant le contenu de la variable AuthUserFile par l’adresse racine du répertoire récupérée précédemment. Enregistrez ce fichier sur votre disque dur dans le répertoire “/protege” sous le nom “.htaccess” (si votre système refuse d’enregistrer un fichier commençant par un “.” enregistrez-le sans le “.” et vous le renommerez directement sur le serveur une fois transféré).

 


4 - Cryptage du mot de passe

Par sécurité le mot de passe doit être crypté en utilisant le cryptage MD5, sans rentrer ici dans les détails de ce procédé rendez vous sur une de ces pages :

entrez le mot de passe en clair dans le formulaire, cliquez sur le bouton de validation puis copiez le résultat affiché.

 


5 - Création du .htpasswd

Toujours dans une nouvelle page vierge du bloc-note créez une ligne de la forme :

identifiant:pass_crypté

en remplaçant ces données par les vôtres et toujours sans y ajouter d’espace ou de ligne vide. Pour enregistrer plusieurs utilisateurs avec des données différentes il suffit d’ajouter une ligne de la même forme pour chacun dans ce fichier. Enregistrez ce fichier sur votre disque dur dans le répertoire “/protege” sous le nom “.htpasswd” (si votre système refuse d’enregistrer un fichier commençant par un “.” enregistrez-le sans le “.” et vous le renommerez directement sur le serveur une fois transféré).

 


6 - Transfert de .htaccess et .htpasswd sur le serveur via FTP

Nous voici à la dernière étape de la procédure : transférez les deux fichiers “.htaccess” et “.htpasswd” depuis votre disque dur vers le serveur en utilisant la connexion FTP ouverte dans FileZilla (1 ci-dessus). Si vous ne voyez pas vos deux fichiers récemment créés actualisez vos fenêtres par la touche “F5″ de votre clavier. Si vous n’aviez pas pu créer les fichiers avec le “.” sur votre disque dur avant le transfert n’oubliez pas de les renommer avec le “.” devant directement sur le serveur en les sélectionnant et les renommant l’un après l’autre (clic droit + renommer sur le nom de chaque fichier). Une fois les fichiers transférés fermez la connexion FTP dans FileZilla en cliquant la croix rouge du menu.Vous pouvez maintenant vous rendre via le navigateur sur le répertoire protégé http://www.monsite.com/protege/ et le serveur vous demandera l’identifiant et le mot de passe pour y accéder. Cela peut parfois prendre quelques minutes avant que le serveur le fasse. Une fois la protection testée et vérifié il ne reste plus qu’à communiquer aux visiteurs de cet espace l’adresse internet du répertoire et leurs données de connexion.