Installation et configuration de l’antispam mailfilter sur CentOS

Par     15 août 2012  - Catégorie(s): Messagerie  Messagerie

mailfilter est un logiciel antispam développé par Andreas Bauer qui efface les mails indésirables par des expressions régulières en utilisant les protocoles POP, aPOP ou POPS. Son intérêt est de vider vos boîtes du spam avant que vous les releviez. Il évite ainsi d’encombrer la bande passante très inutilement. C’est un outil, en tout point, remarquable.

Installation et configuration de l'antispam mailfilter sur CentOSCompilation de mailfilter sur CentOS

Comme le paquet n’est pas disponible sur CentOS, vous devrez le compiler. Sur Ubuntu ou Debian, vous n’aurez qu’à faire : apt-get install mailfilter. Il vous faudra, au préalable installer les paquets suivants :

  • make
  • gcc-c++ /gcc
  • bison
  • flex

yum install make gcc-c++ bison flex

Une fois installé, téléchargez l’archive tar.gz et décompressez-la à partir du répertoire de votre choix avec la commande :

tar zxvf mailfilter-0.8.2.tar.gz

Puis, toujours à partir de la ligne de commande, faites :

cd mailfilter-0.8.2;./configure;make;make install;make clean;cd ..;rm -f -R mailfilter-0.8.2

mailfilter s’installe dans /usr/local/bin par défaut.

Configuration de mailfilter

Toute la configuration que je vous propose est réalisée à partir du dossier /root/.mailfilter en mode root.

Créez tout d’abord le dossier .popfilter : mkdir /root/.popfilter.
A partir de ce dossier, créez sous-dossiers : cd /root/.popfilter;mkdir rules;mkdir .connections

Les dossiers /root/.popfilter/rules et /root/.popfilter/.connections stockeront respectivement les règles de filtrage et les connections à vos comptes POP.

Création du fichier .mailfilterrc

Toutes les options utilisées dans le fichier /root/.popfilter/.popfilterrc, ci-dessous,  sont très bien documentées sur le site d’Andreas Bauer.

VERBOSE = 2
TIMEOUT = 45
REG_TYPE = « extended »
REG_CASE = « no »
DEL_DUPLICATES = « yes »
LOGFILE = « mailfilter-`date + »%Y%m »‘.log »
NORMAL = « yes »
MAXSIZE = 0
MAXSIZE_ALLOW=0
MAXSIZE_DENY=0

Création des fichiers de connexions

Nous avons choisi de regrouper les connexions à nos comptes POP dans le dossier /root/.popfilter/.connections. Nous avons choisi de créer un fichier pour chaque connexion. C’est beaucoup plus simple à maintenir ! Pensez à préfixer d’un point ces fichiers afin qu’ils ne soient pas trop facilement accessibles. Ci-dessous, /root/.popfilter/.connections/.free-areuh :

SERVER= »pop.free.fr »
USER= »areuh »
PASS= »gazou »
PROTOCOL= »pop3/ssl »
PORT=995

Création des fichiers de règles

Là-encore, nous avons choisi de créer plusieurs fichiers de règles du type /root/.popfilter/rules/domain-net :

DENY = « (/|\\s|@|=|\\.)(1001concours)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(annonce8|asynpro)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(b2b-mail|bp[0-9]{2,3}|bridilou)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(floridadep)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(griotre)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(feuille-a-feuille)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(hitheq|host-mrt|hydremail)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(imatique|ispfr)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(kov-lifestyle)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(lasotel|laurency|ldipromo|lotrevu|lsmtp)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(ma[0-9]{2}|mscsv|mistralog)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(neolane|netitmail|ns21256\\.ovh)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(octelio|odiso|oxi06)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(pf-assur|plarunet)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(regie[0-9]{2}|rsgsv)\\.net(>|;|\\)|$|\\s|/) »
DENY = « (/|\\s|@|=|\\.)(visuelexpo|vulat|vucvula)\\.net(>|;|\\)|$|\\s|/) »

A titre d’exemple, nous avons également créé un fichier (/root/.popfilter/rules/charset) pour filtrer selon le charset utilisé :

DENY = « charset= »"?ISO-8859-(2|3|4|5|6|7|8|9|10|11|12|13|14|16) »"?$ »
DENY = « charset= »"?(ISO-2022-JP|KOI8|EUC-JP|SHIFT-JIS) »"?$ »
DENY = « charset= »"?Windows-125(1|3|4|5|6|7|8) »"?$ »

Exécution de mailfilter

Le script

L’intérêt du script /root/popfilter que nous vous présentons est de créer à la volée le fichier /root/.mailfilterrc en concaténant les contenus des fichiers /root/.popfilter/.popfilterrc et des dossiers /root/.popfilter/.connections et /root/.popfilter/rules :

#!/bin/bash
# Nous n’exécutons mailfilter que si mailfilter ne s’exécute pas déjà !
if((`ps aux|grep mailfilter|wc -l`<2))
then
cd /root/.popfilter
cat .popfilterrc>../.mailfilterrc
find .connections -type f -exec echo ‘INCLUDE = « {} »‘ \\;>>../.mailfilterrc
find rules -type f -exec echo ‘INCLUDE = « {} »‘ \\;>>../.mailfilterrc
cd
mailfilter -M .mailfilterrc
rm -f .mailfilterrc
fi

Pour pouvoir l’exécuter, vous devez le rendre exécutable : chmod +x /root/popfilter

La planification

Pour exécuter ce script toutes les 20 minutes, ajoutez, via la commande crontab -e, la tâche planifiée suivante :

0/20 * * * * /root/popfilter

Sécurité

N’oubliez pas de sécuriser le dossier /root/.popfilter par ces quelques commandes :

chown root:root -R /root/.popfilter
find /root/.popfilter -type d -exec chmod 700 {} \\;
find /root/.popfilter -type f -exec chmod 600 {} \\;

Problème mailfilter avec Gmail

Nous avons testé de très nombreux services de messagerie sans rencontrer la moindre difficulté à l’exception notoire de Gmail. Les spams ne parviennent pas à être effacés, malgré le message DELE 1 qui nous indique tout le contraire !!! Nous avons donc choisi de rediriger tout le trafic de nos comptes Gmail vers d’autres adresses de messagerie, à défaut de réponse d’Andreas Bauer.

Autres billets sur le sujet :

Dsfc Dsfc

Installation et configuration de l’antispam mailfilter sur CentOS

4 votes, 4.25 avg. rating (84% score)

Vus : 940
Publié par Denis Szalkowski : 58