Mise en place de pflogsumm : analyseur de log mail pour Postfix
Afin de surveiller l'activité d'un serveur mail, outil sensible du système d'information, il est judicieux d'analyser fréquemment les logs produits par celui-ci.
Nous allons ici traité de pflogsumm, un analyseur de log pour Postfix, qui nous permet d'avoir une vue d'ensemble de l'activité de notre serveur (mails envoyés/reçus, quantité de données, mails rejetés,...).
Grâce à un script cgi, nous pourrons observer nos résultats depuis une page web, ce qui est plus pratique tout de même.
Le système utilisé est une Red Hat 9.
1° Installation
L'installation se fera sur un serveur tournant sous Red Hat.
Il nous faut tout d'abord télécharger pflogsumm à l'adresse suivante :http://jimsun.linxnet.com/postfix_contrib.html
Il faut ensuite décompresser l'archive grâce à la commande
tar xvzf pflogsumm
Mettre le fichier man ( fichier contenant des explications sur l'application) dans le bon répertoire.
cp pflogsumm.1 /usr/share/man/angl/man1/pflogsumm.1
Il ne nous reste plus qu'à rendre le script exécutable, pour cela utilisons les commandes suivantes:
cp pflogsumm.pl /usr/local/bin/pflogsumm
chown bin:bin /usr/local/bin/pflogsumm
chmod 755 /usr/local/bin/pflogsumm
Nous pouvons maintenant lancer le script.
2° Lancement du script
Pflogsumm ne possède pas de fichier de configuration, il faut donc lui passer en argument le fichier contenant les log de postfix que nous appellerons aussi postfixlog se trouvant dans le répertoire /var/log/.
Il existe un certain nombre d'options pour le lancement de pflogsumm qui sont consultables dans le fichier man (faites un man pflogsumm)
Voici quelques exemples :
*Pour avoir toutes les statistiques depuis la création du fichier de log
On peut voir ici qu'il y a eu une attaque de type smtpd par exemple. Ce type d'attaque consiste à envoyer la commande "HELP" avec un argument trop long vers un serveur SMTP. Si le gestionnaire SMTP n'est pas patché pour prévenir de cette attaque, il plante.
Le cleanup indique les pièces jointes vérolées supprimées (si votre serveur mail posséde un antivirus de type clamav par exemple).
Comme vous pouvez le constatez, les informations ne sont aisément consultables et il serait plus pratique d'observer ces résultats depuis une page web par exemple.
Nous allons donc procéder à la mise en place d'un script cgi exécutant pflogsumm.
3° Observation des résultats à travers une page web
On peut trouver le script cgi à l'adresse suivante:
http://www.nmedia.net/~chris/mail/mail-cgi.txt
Il faut bien sûr un serveur web pouvant exécuté les scripts cgi (comme un serveur Apache avec sa configuration par défaut).
Dans le cas d'une configuration par défaut, il faut placer le fichier mail.cgi dans le répertoire /var/www/cgi-bin/
Il faut ensuite configurer correctement le script.
4° Configuration du script
Editons maintenant le fichier mail.cgi :
Voici les champs important à configurer
ps="/usr/ucb/ps" # or /bin/ps for BSD
host="Votre serveur de mail" # le nom de votre serveur mail
maillog="/var/log/postfixlog" # localisation de votre fichier log
maillog0="/var/log/maillog.0" # votre fichier log.0 ou log0.gz
maillog1="/var/log/postfix/maillog.1" # votre fichier log.1 ou log1.gz
maillog2="/var/log/postfix/maillog.2" # votre fichier log.2 ou log2.gz
maillog3="/var/log/postfix/maillog.3" # votre fichier log.3 ou log3.gz
maillog4="/var/log/postfix/maillog.4" # votre fichier log.4 ou log4.gz
zcat="/bin/cat" # ou /usr/bin/zcat si vos logs sont compressés
cat="/bin/cat" # almost always /bin/cat
pflog="/usr/local/bin/pflogsumm" # localisation de l'éxecutable
opts="-c 100" # Extra options to use with pflogsumm
#opts="-h -150 -u 100" # Next version of pflogsumm changes options!
scr="mail.cgi" # nom du script
Modifier ensuite les droits sur le script pour que l'utilisateur Apache puisse exécuter le script.
Faites de même pour les fichiers de logs sinon le script ne pourra pas les ouvrir.
Votre script est désormais opérationnel.
Il ne reste plus qu'à lancer votre serveur web
service httpd start
Et à observer le résultat en vous rendant à l'adresse suivante:
http://<@ de la machine>/cgi-bin/mail.cgi
Vous pouvez désormais lire les informations de l'analyse de pflogsumm à travers un browser et de manière plus claire. Mais aussi en temps réel car il n'y a plus besoin de lancer pflogsumm en mode console: cliquer sur le lien voulu et pflogsumm se lance pour afficher le résultat.
Pour des raisons de sécurité, je recommande d'utiliser un fichier htaccess et une directivre allow (pour certaines IP par exemple) afin de vous assurer que personne d'autre que vous n'accède à ces informations.