29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
29-01-2012 : Parce que nous sommes un peuple debout, agissons pour rester dignes et responsables !
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / Internet / AWStats / AWStats : sécurité et cron





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox

AWStats : sécurité et cron

Date de publication: le dimanche 15 juillet 2007 à 01h47
Dernière modification: par Pascal BOYER le mardi 11 mars 2008 à 12h00
« Article précédent: AWStats : messages d'erreur
» Article suivant: AWStats : Configurer

AWStats 6.7 et la sécurité

Création du fichier .htaccess

Par mesure de sécurité, il est important que personne d’autre que vous ne puisse accéder aux statistiques de votre serveur de mail. Aussi, placez un fichier .htaccess dans le répertoire /usr/local/awstats-6.7
Voici un exemple de fichier .htaccess

# Ci-dessous, on déclare l'emplacement et le nom du fichier qui contient les mots de passe.
# Ce fichier ne doit pas forcément se trouver dans un sous répertoire de DocumentRoot.
# Il peut être placé n'importe où sur le disque dur. D'autre part, son nom n'a pas obligation d'être .htpasswd
AuthUserFile /usr/local/awstats-6.7/.motdepasse
 
# Ci-dessous on déclare le répertoire qui contient les groupes des utilisateurs autorisés à se connecter.
# Ici on annulle cette fonction avec /dev/null
AuthGroupFile /dev/null
 
# Ci-dessous on définit le texte qui apparaîtra dans la boîte de dialogue (pop-up) de saisie du login et mot de passe.
AuthName "L'accès à ce répertoire est protégé !"
 
# Ici on définit le type d'authentification que l'on désire. Il faudra crypter le mot de passe avec la commande htpasswd
AuthType Basic
 
<LIMIT GET POST>
 # Ci-dessous on déclare l'ordre des restrictions: on commence par interdire l'accès à tout le monde (deny),
# puis on regarde qui peut accéder au répertoire (allow)
order deny,allow
 
# Accès refusé à tout le monde
deny from all
 
# Accès autorisé depuis la machine ayant pour adresse IP celle indiquée
allow from 192.128.164.39
 
# Et on indique la liste des utilisateurs dont on autorise l'accès au répertoire (il faudra qu'ils tapent le bon mot de passe).
require user regis emile norbert
</LIMIT>

Une fois que ce fichier est créé et placé dans /usr/local/awstats-6.7/, donnez-lui des droits suffisants pour que votre serveur Apache puisse le lire:

chmod o+r .htaccess

Chez moi ce fichier appartient à root et cela fonctionne très bien avec les droits ci-dessus.

:
Si le fichier de configuration de votre serveur Apache comporte cette directive (c’est le cas du fichier default-server.conf sous SuSE):

<Directory "/srv/www/htdocs"> <== (valeur de DocumentRoot = racine du site)
Options All
AllowOverride None <====== CECI !!!
Order allow,deny
Allow from all
</Directory>

...alors votre fichier .htaccess sera sans aucun effet !
En effet, la ligne AllowOverride None indique qu’aucune modification des droits par défaut ne peut être prise en compte, et ceci de façon récusrsive à compter de la racine du site ! Or le but des fichiers .htaccess est justement de produire localement des droits spécifiques. Voir également ce rappel .
Il est donc nécessaire de modifier ainsi cette ligne:

AllowOverride All

D’autre part, assurez-vous que votre fichier de configuration du serveur Apache contient bien ces lignes:

# La directive AccessFileName indique le nom des fichiers de type .htaccess (ici c'est .htaccess)
AccessFileName .htaccess
 
# Ci-dessous on indique à Apache de ne jamais montrer les fichiers qui commencent par .ht c'est pour cela
# que bien souvent on rencontre le nom .htpasswd en plus de .htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

Création du fichier de mot de passe

Ce fichier, .motdepasse, peut-être situé également dans /usr/local/awsats-6.7/ . Pour le créer et ajouter un premier utilisateur avec un mot de passe crypté, voici la commande à utiliser:

htpasswd -c /usr/local/awstats-6.7/.motdepasse regis

New password: taper une première fois le mot de passe de régis 
Re-type new password: taper une deuxième fois le mot de passe de régis

Et voilà à quoi ressemble le fichier nouvellement créé:

regis058SolYgDdeAX1tA

Une fois que ce fichier est créé et placé dans /usr/local/awstats-6.7, donnez-lui des droits suffisants pour que votre serveur Apache puisse le lire:

chmod o+r .motdepasse

Chez moi ce fichier appartient à root et cela fonctionne très bien avec les droits ci-dessus.
Voici à quoi ressemble la fenêtre de login qui surgit chaque fois que je lance la requête:

http://www.linuxorable.net/awstats/awstats.pl ?config=www.luxpopuli.fr

Cron

A mesure que les jours passent et que s’accroissent les fichiers de log d’Apache, s’élève la charge CPU nécessaire à l’exécution des scripts Perl.
Et le tableau s’assombri encore un peu plus si la taille du ou des sites est conséquente.

Il peut donc être tout à fait souhaitable de lancer l’exécution de ces scripts pendant la nuit, par exemple. Pour cela, cron semble tout désigné.

Pour faire simple, il suffit de créer un fichier exécutable contenant ceci:

#!/bin/bash
/usr/local/awstats-6.7/wwwroot/cgi-bin/awstats.pl -config=www.luxpopuli.fr -update

Puis:

chmod +x mon_fichier

chown root:root mon_fichier

mv mon_fichier /usr/local/sbin

...et enfin il ne reste plus qu’à lancer kcron

Commentaires