Protéger awstats avec un htaccess

htaccess

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>
You can leave a response, or trackback from your own site.

Leave a Reply