System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Mettre en place un htaccess avec htpasswd sur apache

htaccess jpeg

Simple et efficace !

Htaccess et htpasswd servent à faire une restriction d’accès par mot de passe à tel ou tel url ou répertoire de votre choix.

Vous avez surement sur vos sites certains répertoires que vous aimeriez protéger des yeux indiscrets.

La méthode est simple et s’appuie sur deux fichiers qui contiendront l'un les noms et mots de passe des personnes autorisées à accéder au contenu du répertoire et l'autre quelques directives fonctionnelles.

Petit pré requis :

Il faut que le module apache mod_authz_user soit chargé.

Vous trouverez un article sur l'administration d'apache et son installation ainsi qu'un autre article complémentaire ici

Créer un fichier .htaccess dans le répertoire que vous voulez protéger et mettez y ceci :

AuthUserFile /var/www/topsecret/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès interdit aux citoyens de seconde zone..."
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

Explication de ces quelques lignes :

AuthUserFile /home/login/.htpasswd

donne le répertoire dans lequel se trouve le fichier contenant les paires login/mot de passe des visiteurs autorisés.

L’usage veut que ce fichier soit souvent nommé .htpasswd, mais ce n’est pas du tout une obligation. Il est même conseillé d’utiliser un autre nom, le fichier sera d’autant plus difficile à trouver. Ne le mettez pas dans un répertoire qui fait partie du site mais placez-le plutôt en dehors de cette arborescence si vous en avez la possibilité. Dans le système d’exploitation Unix/Linux, tous les fichiers dont le nom commence par un point sont des fichiers cachés. (ls -lah pour les voir)

AuthGroupFile /dev/null

permet de donner un droit d’accès à un ensemble d’utilisateurs faisant partie d’un même groupe et est rarement utilisée dans le cas de sites Web personnels. Dans l’exemple, le fichier /dev/null est l’équivalent Unix de nulle-part ou pas de fichier spécifique.

AuthName "Acces Restreint"

c'est le message de caractère qui apparaîtra dans la boîte de dialogue au moment de la saisie du nom et du mot de passe.

AuthType Basic

détermine le type d’authentification utilisé, dans ce cas l’authentification HTTP standard.

<limit GET POST> ... </limit>

détermine le type d’opérations permises. GET s’applique à la majorité des pages Web, PUT est utilisé par certains scripts ou éditeurs pour faire de l’upload sous protocole http. Il est important de mettre GET et POST en majuscule sur les dernières versions d’Apache.

require valid-user

signifie littéralement qu’un utilisateur valide est requis, à savoir un utilisateur pour le nom duquel une ligne existe dans le fichier .htpasswd. Une variante pourrait être :

require user Moule Oude

pour limiter l’accès aux seuls utilisateurs Moule et Oude

Le fichier .htpasswd :

C’est très simple, pour chaque utilisateur autorisé ce fichier contient une ligne sous la forme nom :mot de passe crypté exemple : Rax :TazKFoYB9rUPe »

Pour créer le fichier utilisez cette commande :

htpasswd -c passwd-file username1

Si plus tard vous désirez rajouter un utilisateur :

htpasswd passwd-file username2

Dans cette commande, passwd-file représente le chemin complet du fichier de mot de passe et username* un nom d’utilisateur de votre choix.

Par GanGan | le vendredi, avril 24 2009 08:00

Commentaires

1. totov

vendredi, septembre 25 2009 | 06:12

Bonjour,
est-il possible de combiner un accès par login/mot de passe pour des utilisateurs distants et un accès par filtrage ip ?
En clair, j'aimerais que mes utilisateurs locaux n'est pas besoin d'entrer de mot de passe pour accèder à la zone privée quand ils sont dans leurs bureaux mais qu'ils en rentrent un quand ils sont en déplacement..

2. GanGan

vendredi, septembre 25 2009 | 13:04

AuthUserFile /home/web/monsite.com/ftp/www/monrep/.htpasswd
AuthType Basic
AuthName "Name"
Require valid-user

Order Deny,Allow
Allow from 11.111.11.111
Deny from all

Satisfy any
3. totov

vendredi, septembre 25 2009 | 23:53

Salut !
J'ai déjà essayé cette solution. Celà me demande le login/password alors que l'ip fait partie de la plage autorisé !