mars
2005
Une question qui revient souvent sur les forums : comment protéger un dossier et contrôler son accès quand on a un serveur apache ?
La première possibilité est de passer pas la déclaration de directory dans le fichier de configuration apache. A l’intérieur de ce conteneur on pourra utiliser les directives allow et deny qui vont permettre de restreindre les accès en fonctiond des adresses IP ou de noms de domaines.
La directive allow donne des autorisation et deny empèche les accès. la directive order indique l’ordre d’attribution et des interdictions.
Les directives allow et deny ont un fonctionnement similaire : on peut les utiliser avec un nom de domaine, même partiel :
Deny from .domaine.net
avec des adresses ip
Deny from 192.168.0.2
avec des masques d’adresses ip
Deny from 192.168.1.0/255.255.255.0
La directive order définit l’ordre d’application des règles. Par exemple dans
Allow from 192.168.0.2
Deny from all
on commence par bloquer tout le monde et on autorise l’IP 192.168.0.2. La même chose avec une directive Order Allow, Deny aurait eu pour effet de bloquer tout le monde.
Deuxième possibilité : passer par un fichier .htaccess.
Ce fichier permet d’ajouter des directives de configuration qui vont concerner un repertoire donné et ses sous dossiers. Son principal avantage est de pouvoir être mis en place à n’importe quel moment sans avoir à redémarrer le serveur Apache. Les directives contenues dans le fichier .htaccess viennent alors se substituer aux directives du fichier de configuration apache. Bien sur il faut définir dans ce dernier quelles sont les directives du .htaccess que l’on autorise à se subsituer à la configuration du serveur.
On le fait par l’option AllowOverrides. Elle peut prendre les valeurs :
None pour interdire les effets d’un fichier .htaccess
Authconfig pour pouvoir gérer les droits d’accès avec le .htaccess
FileInfo pour autoriser les directives qui contrôlent le type des documents
Index pour celles contrôlant l’indexation des répertoires
Limit pour contrôler l’accès en fonction du nom de l’hôte ou de son IP
Options pour des directives spéciales
AllowOverrides devra être indiqué au niveau du conteneur directory si on veut qu’il soit effectif pour un alias donné ou au niveau des options générales du serveur si on veut profiter ses effets au niveau du dossier « document root » et de ses sous dossiers.
Le contenu du fichier .htaccess :
AuthGroupFile "/xxx/xxx"
AuthName Authentification
AuthType Basic
<Limit GET POST>
require user Daniel
require user Bernard
</Limit>
AuthName indique le domaine d’identification. Ce nom sera affiché dans la fenêtre d’authentification
AuthType indique le type d’identification qui sera utilisé. Il est possible de choisir basic ou digest qui offre l’avantage de ne pas transmettre le mot de passe en clair sur le réseau.
AuthUserFile et AuthGroupFile indiquent respectivement l’emplacement du fichiers des utilisateurs et des groupes. Pour ma part je me contente de définir des utilisateurs.
require peut être suivi de valid-user pour n’importe quel utilisateur défini dans le fichier passwd ou de user et du nom d’un utilisateur.
Générer les mot de passe utilisateurs dans le fichier .htpasswd :
Sous Linux il suffit d’utiliser htpasswd qui est fourni avec Apache.
htpasswd [option] Chemin-du-fichier-htpasswd nom-utilisateur
l’utilitaire demandera la saisie du mot de passe et sa confirmation.
les options :
-c pour créer un nouveau fichier utilisateurs (attention à ne pas écraser un fichier existant)
-b pour empécher le chiffrement du mot de passe dans le fichier
-m -s et -p indique l’algorithme de chiffrement à utiliser : MD5, SHA ou texte brut
Sous Windows il faut utiliser un utilitaire téléchargé sur le web, on en trouve beaucoup. Vous pouvez par exemple utiliser le htpasswd.exe fourni avec easyphp ou wamp server, les 2 solutions Apache MySQL PHP packagées pour Windows. Le principe d’utilisation est le même que pour Linux.
2 Commentaires + Ajouter un commentaire
Commentaires récents
- DVD, version française et version Québécoise… reflexion qui va plus loin que les apparences. dans
- Les rétroliens, outil ou aimant à spams ? dans
- DVD, version française et version Québécoise… reflexion qui va plus loin que les apparences. dans
- DVD, version française et version Québécoise… reflexion qui va plus loin que les apparences. dans
- DVD, version française et version Québécoise… reflexion qui va plus loin que les apparences. dans
merci lunatix, ça me fait plaisir. Je compte bien mettre pas mal de petits articles de ce genre au fur et à mesures que l’inspiration vient…
tres pratique ce petit article. ca fait un tres bon pense bete
merci
Un truc que j’aime bien, avec le nombre croissant d’ip fixes dans mon cercle d’amis (free cartonne bien), c’est la protection par ip + ssl pour mettre en ligne des trucs perso, ou echanger des fichiers volumineux.