Vous avez peur que vos visiteurs regardent vos Stats ? nous allons voir comment protéger awstats avec un htaccess.
Tout d’abord, nous allons construire le « .htpasswd », ce fichier permet de stocker le(s) utilisateur(s) / mot(s) de passe ayant droit d’accéder à nos statistiques. Pour une meilleure facilité, je préfère placer le fichier .htpasswd directement dans « /etc/awstats/ ». Allez fini de parler, allons-y :
cd /etc/awstats/ /usr/bin/htpasswd -cb .htpasswd admin 123456
Aide :
-c : Créez le htpasswd. Si le htpasswd existe déjà, il est réécrit et tronquée.
-b : Utilise le mode « bash »
.htpasswd : chemin de notre .htpasswd, nous aurions très bien pu « /etc/awstats/.htpasswd »
admin : l’utilisateur
123456 : le mot de passe
Voilà, maintenant vous pouvons voir notre fichier .htpasswd, vous allez me dire – Oui c’est bien mais notre .htaccess maintenant ?
Awstats étant créer par le cgi, nous ne pouvons pas créer un fichier .htaccess, mais nous allons faire encore mieux, utiliser le vhost de apache2 pour le faire. pour cela direction :
cd /etc/apache2/sites-enabled vi tools.inrage.fr.cfg
Aide :
tools.inrage.fr.cfg : votre fichier de vhost, dans mon cas c’est celui-ci.
Une fois dans le fichier, nous allons ajouter les directive pour que notre .htpasswd serve à quelque chose
Recherchez la ligne « <Directory /usr/lib/cgi-bin/> … </Directory> » et a l’intérieur de cette ligne rajoutez ça :
<directory /usr/lib/cgi-bin/> Options None AllowOverride None Order allow,deny Allow from all AuthType Basic AuthName "Acces Restreint" AuthGroupFile /dev/null AuthUserFile /etc/awstats/.htpasswd <limit POST GET> require valid-user </limit> </directory>
vous pouvez enregistrer votre fichier et nous allons redémarrer apache2 :
/etc/init.d/apache2 reload
Accéder à vos stats et par magie il vous demande un mot utilisateur/mot de passe
Solution alernative, toujours avec un fichier .htpasswd, mais des limites quelque peu différentes.
Tout d’abord, il est possible de créer une configuration globale pour l’ensemble des vhosts traités par cette instance d’Apache.
Il suffit de mettre ceci dans un fichier de conf que Apache va loader au démarrage (sur Debian, créez, par exemple, /etc/apache2/conf.d/awstats.conf).
Puis, il suffit d’y mettre :
<Files awstats.pl> AuthType Basic AuthName "RESTRICTED" AuthUserFile /etc/awstats/.htpasswd require valid-user Order allow,deny Allow from 217.174.206.179 satisfy any </Files>
Vous noterez que j’ai mis un allow sur l’IP « 217.174.206.179 », couplé à un « satisfy any » indique qu’au moins une des conditions doit être remplie pour valider l’action (accéder au fichier awstats.pl), ici, l’IP match, donc pas besoin de login/password.
Cette configuration peut sembler trop restrictive.
Il serait tout a fait possible de placer la directive « File » dans une directive « Directory » comme Aki l’expose ci-dessus :
<directory /usr/lib/cgi-bin/> <Files awstats.pl> AuthType Basic AuthName "RESTRICTED" AuthUserFile /etc/awstats/.htpasswd require valid-user Order allow,deny Allow from 217.174.206.179 satisfy any </Files> </directory>