HowtoHtaccess
From AleikoumWiki
Erwan (Talk | contribs)
(New page: '''Howto use Htaccess''' Restreindre l'accès à un serveur Web par .htaccess<br /> v1.0 par Erwan 'Laby' Ben Souiden e.bensouiden<@>gmail.com<br /> == Objectif et contexte == Le but ...)
Next diff →
Current revision
Howto use Htaccess
Restreindre l'accès à un serveur Web par .htaccess
v1.0 par Erwan 'Laby' Ben Souiden e.bensouiden<@>gmail.com
Contents |
Objectif et contexte
Le but de ce howto est de proposer une procédure qui permet de restreindre l'accès à un serveur Web à un ensemble d'utilisateurs.
Cet accès sera accordé après une authentification réussie auprès du serveur.
Manipulation
Pour cela nous allons procéder en plusieurs étapes
Création du fichier regroupant les users
Dans le répertoire de votre choix (par exemple le répertoire des fichiers de configurations d'apache) créer le fichier .htpasswd qui sera en fait la base des utilisateurs ayant le droit de se connecter au serveur après une authentification réussie.
Pour cela il faut utiliser une commande d'administration d'apache qui est htpasswd.
htpasswd -c /chemin/jusqu_a/.htpasswd nom_du_user
Puis il sera nécessaire de rentrer le mot de passe correspondant.
A noter l'option -c qui permet de créer un utilisateur, les prochains utilisateurs pourront être déclaré de la façon suivante :
htpasswd /chemin/jusqu_a/.htpasswd nom_du_user
Création du .htaccess
Dans le répertoire dont vous souhaitez protéger l'accès, créer le fichier .htaccess (attention ce nom dépend directement de votre configuration apache cf. le nom défini dans l'option AccessFileName qui par defaut donne .htaccess).
Il suffit ensuite d'éditer .htaccess de la manière suivante :
AuthName "Invitation à la commande" AuthType Basic AuthUserFile /chemin/jusqu_a/.htpasswd.users require valid-user
A partir de ce moment uniquement les personnes déclarées dans le /chemin/jusqu_a/.htpasswd pourront avoir accès via HTTP en réussissant à s'authentifier.
A noter que le .htaccess est récursif sur les répertoire contenu dans le répertoire où il se trouve.
Pour n'autoriser que certains users définis dans le .htpasswd, il suffit de légérement modifier la ligne "require..." de la façon suivante :
require user plop plip plap
Pour autoriser des groupes complets de users, il suffit de créer un nouveau fichier par exemple /chemin/jusqu_a/.htgroup qui sera structuré de la façon suivante :
premier-grp: plop plip plap deuxieme-grp: yo yi yu troisieme-grp: ouech
Puis dans le .htaccess :
AuthName "Invitation à la commande" AuthType Basic AuthUserFile /chemin/jusqu_a/.htpasswd AuthGroupFile /chemin/jusqu_a/.htgroup require group premier-grp
Pour retirer l'accès à un user donné il suffit d'éditer le fichier /chemin/jusqu_a/.htpasswd et de supprimer la ligne
correspondant à cet user.
A noter que la valeur de AllowOverride dans la déclaration des répertoires au niveau d'Apache, intervient à ce niveau là !
En effet si la valeur associée est None alors le .htaccess sera tout simplement ignoré. A l'opposé All signifie que tout type de requête sur ce répertoire sera fait seulement si l'utilisateur a été authentifié par le .htaccess
Pour connaître toutes les subtilités, il suffit de se réferrer à la documentation concernant Apache et la directive AllowOverride.
Cas d'erreur
Les fichiers de password (typiquement .htpasswd) ainsi que le .htaccess doivent être en lecture pour tous !! ou du moins pour
l'utilisateur Apache !
Droit en 644 !
Protéger un répertoire d'un compte free
Il est possible de la même manière de protéger (enfin disons plus de limiter l'accès) le contenu de votre site hébérgé chez free.fr .
Le principe reste toujours le même : un fichier contenant des utilisateurs et leur mot de passe et un fichier définissant la politique d'accès au répertoire.
Dans un premier temps créons le fichier regroupant les users : en ftp connectez vous sur votre compte et créez un répertoire : par
exemple labase/ . Et dans ce répertoire collez un fichier par exemple "userdb" qui contiendra les lignes suivantes :
erwan:test ouech:plop
Attention il est obligatoire de laisser les mots de passe en clair ! C'est à dire que pour me loger en tant que "erwan" le mot de
passe sera "test" !!
Créer le fichier .htaccess qui contiendra les lignes suivantes :
PerlSetVar AuthFile labase/userdb AuthName "Acces Restreint" AuthType Basic require valid-user
Ensuite il suffit de copier le .htaccess dans les répertoire à restreindre.
A noter que pour être sur que personne ne puisse voir le fichier userdb (excepté ceux qui ont accès en ftp au compte !), il suffit de
coller dans le répertoire labase/ le .htaccess suivant :
PerlSetVar AuthFile secure/users AuthName "Acces Restreint" AuthType Basic deny from all
Il sera alors impossible d'avoir accès via le Web aux fichiers.