sécurité - technique - htaccess
Protection : IP ou Password ?
Attention: cet article date du 26 février 2008
Ce qu'il contient est peut être encore valable...
... ou complètement obsolète!
Pour continuer dans ma série d’articles sur la protection d’accès, et toujours dans l’utilisation des fichiers htaccess / htpasswd, je me suis posé la question de savoir comment limiter l’accès à une interface d’administration, SOIT en utilisant un mot de passe car je suis en déplacement, SOIT grâce à mon adresse IP car je suis au bureau (et dans cette hypothèse, sans entrer de mot de passe…)
.htaccess et .htpasswd
Je ne reviens pas dessus, les fidèles s’en souviennent. Les autres pourront se reporter aux articles précédents (voir ci contre).
Mais histoire de refixer les esprits, petit rappel télégraphique.
- .htaccess permet de spécifier ce que nous voulons faire et sera à placer dans le répertoire à protéger.
- .htpasswd permet de définir la liste des utilisateurs / mots de passe (crypté ou non selon les hébergeurs). Placé où l’on veut, puisqu’on en précise l’adresse dans le précédent.
- IP, ou plus précisément, adresse IP : est le numéro qui identifie de manière unique chaque ordinateur connecté à Internet (IP = Internet Protocol).
Protection IP
Si nous avons déjà vu la protection par mots de passe, la protection par adresse IP est finalement beaucoup plus simple. Pour peu que l’on parle anglais…
allow from 217.12.6.29
allow from 216.239.59.104
deny from all
Les deux premières lignes listent les 2 seules adresses IP autorisées dans notre cas (allow = autoriser) la dernière signifie que toutes les autres seront rejetées (deny = refuser).
Les plus habiles auront reconnus les adresses IP de Google et Yahoo. A remplacer par VOTRE adresse IP !
IP ou mot de passe ?
Et donc, l’objet était de demander un mot de passe uniquement si nous ne sommes pas authentifié avec une adresse IP listée. La solution en exemple :
PerlSetVar AuthFile /users/c/carlier/www/XkdjsfZZ/.htpasswd
AuthName "Acces Restreint"
AuthType Basic
Require valid-user
allow from 217.12.6.29
allow from 216.239.59.104
deny from all
satisfy any
Le premier bloc nous donne les informations pour une protection par mot de passe, le second pour les adresses IP, et la dernière ligne, clef de tout, nous dit que l’accès sera donné à qui satisfait une règle ci-dessus…
Petites précautions…
Cela va sans dire, mais parfois mieux en le disant :
- Bien sûr, il faut que votre serveur soit Apache…
- Vous aurez sans doute besoin d’adapter les exemples ci dessus en fonction de votre configuration précise, entre autre en terme d’arborescence pour le fichier .htpasswd
- Vous n’utiliserez que des adresses IP fixes (sinon vous courrez le risque que votre répertoire soit ouvert à quelqu’un d’autre…)
- Vous testerez le fonctionnement avant de mettre des choses confidentielles dans le dit répertoire…