Navigation : SYSTEMES > LINUX > PRATIQUE
FILTRAGE ANTISPAM AVEC PROCMAIL
Je vais aborder ici un filtrage simple basé sur l'utilisation d'une liste noire de mot clés pour tenter d'enrayer un peu de spam. Attention, cette méthode n'a pas la prétention de bloquer tout le spam, mais elle peut être considérée comme un bon complément en aval d'un filtre un peu laxiste sur lequel vous n'avez pas la main. Enfin, je vous propose une évolution logique de la solution.
www.polyteknique.netPROCMAIL, WHAT IS IT ?
L'applicatif Procmail permet de délivrer du courrier (e-mail) aux utilisateurs d'un système Unix like. Au délà de l'aspect remise, c'est à dire le stockage des mails, Procmail dispose de puissantes fonctions de filtrage. Ansi, il est possible d'analyser tous mails transitant sur un système.

Par exemple c'est l'endroit idéal pour installer un Spam Assassin ou tout autre utilitaire de traitement des mails entrants. Pour ajourd'hui, je vais simplement évoquer un filtrage basé sur une simple liste de mots clés bien connus.
www.polyteknique.netVOICI UNE PETITE LISTE POUR COMMENCER
Désolé d'être un peu cru maintenant, mais voici un petit échantillon de mots clés représentatifs d'un certain nombre de courriers non sollicités à ce jour :

cialis
desire
doctor
New software on our site
pharmaceutical
sex
sperm

... je vous laisse volontiers contruire la suite de votre liste
www.polyteknique.netAJOUTER UN FILTRE PROCMAIL
Votre blacklist étant prête, voici un morceau de code à installer soit pour tous les utilisateurs du système dans /etc/procmailrc soit pour 1 ou N utilisateurs dans leur ~/.procmailrc respectif.

   SHELL=/bin/sh

   #LOGFILE=$HOME/proc.log
   #VERBOSE=on

   EGREP       = "/bin/egrep"
   SED         = "/bin/sed"
   TR          = "/usr/bin/tr"

   file        = $HOME/bl.mail
   regexp      = `$TR '\n' '|' < $file | $SED -e "s/|$//" `

   :0 HBw
   *! regexp ?? ^^^^
   *$ ? $EGREP --quiet --ignore-case --regexp='$regexp'
   /var/mail/testmail

Si vous voulez un journal, décommentez la ligne LOGFILE, le détail du log pouvant être reglé à l'aide de la variable VERBOSE={on,off}.
www.polyteknique.netEXPLICATIONS
On commence par donner au script l'emplacement des binaires utiles (egrep, tr et sed). Ensuite, il nous faut donner l'emplacement de notre liste noire de mots clés ($HOME/bl.mail). La ligne regexp = ... permet de transformer votre liste de mots clés en une chaine du type mot1|mot2|mot3|... analysable dans le filtre.

:0 HBw, sert à déclarer un filtre visant à analyser le Header et le Body du mail (w est un flag qui sert à dire qu'il faut attendre la fin des executables du filtre avant d'effectuer toute autre action).

*! regexp ?? ^^^^, permet de tester que la variable regexp n'est pas vide (c'est notre chaine de mots clés).

*$ ? $EGREP --quiet --ignore-case --regexp='$regexp', est la commande qui teste si un mot clé, ou plus, est présent dans le mail.

Si le retour d'egrep est positif alors on accomplit l'action suivante : /var/mail/testmail. C'est à dire qu'au lieu de de remettre le mail à l'utilisateur déstintaire du spam, on va le déposer dans une boite "poubelle" (ici testmail).

On va donc centraliser le spam, on peut donc imaginer une zone de quarantaine.
www.polyteknique.netEVOLUTION DE LA SOLUTION
La solution décrite ci-dessus atteind rapidement ses limites... et le spam rentre encore et toujours. L'ultime évolution à cela est d'installer : SpamAssassin + Razor + Pyzor + DCC. Ces outils sont largement documentés sur le net.

SpamAssassin, projet Apache, est un anti spam qui devient très interessant après une phase "d'apprentissage" du bon et du mauvais courrier électronique (le ham et la spam). SpamAssassin utilise l'algorithme de Bayes pour son apprentissage et un bon nombre d'autres test divers est variés. Chaque test est pondéré en vue de calculer une note final qui determine si un courrier est un spam ou un ham !

Razor, Pyzor et DCC sont des outils client/serveur utilsés comme plugins dans Spamassassin. Pas la peine d'en expliquer le fonctionnement, certains le feront mieux que moi, alors je dépose des liens en pied de page.

Bonne lecture, bonnne lutte !
www.polyteknique.netLES LIENS :
SITE WEB OFFICIEL PROCMAIL : http://www.procmail.org/
DOCUMENTATION PROCMAIL : http://pm-doc.sourceforge.net/...

Rédigé le : 2006-02-25 15:14:50