Date de publication: le mercredi 16 mai 2007 Ă 13h32
Dernière modification: par Pascal BOYER le dimanche 15 juillet 2007 à 09h20
« Article précédent: Postfix : contrĂ´le LDAP
» Article suivant: Les messages d'erreur
Avant propos
Cet article propose d’installer un analyseur des fichiers de log produits par Postfix. Basé sur un script perl fournissant les résutats de l’analyse d’un ou plusieurs fichiers de log de Postfix passé en paramètre, l’installation d’un script CGI permet de visualiser ce résultat dans une page web.
Il n’y a donc plus besoin de lancer une quelconque ligne de commande pour surveiller l’activité du serveur de mail ou pour déctecter d’éventuelles anomalies, attaques etc...
Avantages de pflogsumm
Je n’ai installé ni utilisé aucun autre analyseur de logs. Je sais simplement que celui que je décris ici est très simple à installer, à utiliser et facile à lire.
D’autre part, basé sur un script perl, il n’est pas obligatoire de recourir au script CGI pour visualiser le résultat fourni par ce script perl.
Cet analyseur conviendra donc particulièrement aux réfractaires aux interfaces graphiques ainsi qu’aux environnements de production qui bien souvent ne possèdent pas non plus de telles interfaces.
Installation
Le site web de Jim, auteur de ce script, se trouve ici et vous y trouverez, en plus des sources sous forme d’archives, des liens vers d’autres analyseurs de log pour Postfix.
Cependant, la distribution Debian fournit un package pflogsumm et c’est lui que nous allons installer. La derniere version date du 14 Avril 2006
Donc après avoir installé le package Debian (version 1.1.0-2) il ne vous reste plus qu’à remplacer le script /usr/sbin/ pflogsumm.pl par ma version traduite en n’oubliant pas de la rendre exécutable:
chmod +x /usr/sbin/pflogsumm.pl
En partant de la configuration de Postfix décrite dans les précédents articles, voici donc la liste des packages qu’il faut installer:
libcarp-clan-perl (5.3-3) libbit-vector-perl (6.4-4) libdate-calc-perl (5.4-3) pflogsumm (1.1.0-2)
Bien sûr, la commande:
apt-get install pflogsumm
Quelques commandes en lignes
pflogsumm -d today /var/log/mail.log
ou bien:
pflogsumm /var/log/mail.log
Obtenir les statistiques de la veille:
pflogsumm -d yesterday /var/log/mail.log.0
Par contre:
pflogsumm /var/log/mail.log.0
...ne donne pas du tout le même résultat que la commande précédente.
Pour les autres options et pour ceux que cela intéresse, il y a bien sûr man pflogsumm
Afficher les statistiques dans une page web
Pour cela il est nécessaire de télécharger le script cgi mail.cgi soit sur le site de l’auteur du script soit ici pour une version partiellement commentée et traduite par mes soins.
Comme vous pouvez télécharger l’original et le mien, si vous souhaitez apporter votre pierre à l’édifice en améliorant la traduction que j’ai faite par exemple, surtout ne vous génez pas et laissez un message en fin d’article ou envoyez-moi un mail ici .
En tout état de cause téléchargez ma version et regardez bien les modifications que j’ai apportées dans les boucles if Elles sont indispensables pour le bon fonctionnement du script !!!
Renommez-le mail.cgi et rendez-le exécutable:
chmod +x mail.cgi
Voici un exemple de fichier .htaccess :
# Ci-dessous, on déclare l'emplacement et le nom du fichier qui contient les mots de passe AuthUserFile /usr/local/www/.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 apparaitra 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 88.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/www/ cgi-bin , 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.
Création du fichier de mot de passe
Ce fichier, .motdepasse , peut-être situé également dans /usr/local/www/ cgi-bin . Pour le créer et ajouter un premier utilisateur avec un mot de passe crypté, voici la commande à utiliser:
htpasswd -c /usr/local/www/cgi-bib/.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éé:
regis:SolYgDdeAX1tA
Une fois que ce fichier est créé et placé dans /usr/local/www/ cgi-bin , 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.
Configurer Apache pour la prise en charge des scripts cgi
Voici à quoi ressemble la partie du fichier /etc/apache2/ apache2.conf qui déclare la prise en charge des scripts cgi :
# To use CGI scripts outside /cgi-bin/: # AddHandler cgi-script .cgi
Si vous souhaitez que votre script mail.cgi soit automatiquement lancé quand vous accédez au répertoire /usr/local/www/ cgi-bin vous pouvez ajoutez mail.cgi au fichier apache2.conf :
DirectoryIndex index.html index.pl index.php index.php3 index.xhtml mail.cgi
Commentaires














lien cassé pour telechargement du script mail.cgi.txt
Philippe I
vendredi 04 septembre 2009