Cet article considère bien sĂ»r que vous avez dĂ©jà installĂ© apache sur votre système et que vous dĂ©sirez restreindre laccès de certains fichiers ou rĂ©pertoires.
Vous avez plusieurs façons de gérer la sécurité dans apache. Vous pouvez le faire : par utilisateur, par fichier ou par répertoire. En plus de ces choix, vous pouvez placer les directives dans le fichier httpd.conf (fichier de configuration dapache) ou bien directement dans le répertoire qui doit contenir de la sécurité. Une fois paramétré, vous obtiendrez le message suivant (voir image ci-dessous).
La sĂ©curitĂ© par rĂ©pertoire est très simple. CrĂ©ez un fichier .htaccess dans le rĂ©pertoire concernĂ©. Imaginons : /usr/local/web/html/secure. Vous crĂ©erez donc un fichier : /usr/local/web/html/secure/.htaccess qui contiendra les directives suivantes :
- AuthUserFile /usr/local/web/secure/.htpasswd
AuthGroupFile /dev/null
AuthName Acces Restreint
AuthType Basic
require valid-user
Vous devez ensuite crĂ©er le fichier password. Pour cela, en tant que root, allez dans le rĂ©pertoire /usr/local/web/secure puis tapez : htpasswd -c toto où toto est votre utilisateur. Si vous avez dĂ©jà crĂ©Ă© votre fichier, il vous suffit de le mettre à jour pour dautres utilisateurs par la commande : htpasswd .htpasswd titi. Cest aussi simple que cela. Le fichier .htpasswd contient les mots de passe cryptĂ©s en MD5 comme dans la vieille gĂ©nĂ©ration des unix.
Une autre façon de procéder serait de mettre les directives dans le httpd.conf plutôt que de créer un fichier .htaccess dans chaque répertoire. Pour cela, éditez httpd.conf et trouvez les directives
AuthUserFile /usr/local/web/secure/.htpasswd
AuthGroupFile /dev/null
AuthName Acces Restreint
AuthType Basic
require valid-user
Vous devez quand mĂŞme crĂ©er ce fichier .htpasswd dans le rĂ©pertoire concernĂ© comme indiquĂ© prĂ©cedemment. Vous pouvez aussi centraliser un seul fichier .htpasswd mais cela aura le dĂ©savantage de permettre laccès à nimporte quel utilisateur rĂ©fĂ©rencĂ© dans ce fichier or il se peut que vous deviez sĂ©parer les accès.
Noubliez pas que vous devez redémarrer votre serveur apache par la commande : apachectl restart (si votre apache vient des sources sinon, la commande usuelle est : /etc/rc.d/init.d/httpd restart.