[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Solution anti-spam



On Tue, Nov 22, 2005 at 01:06:33PM +0100,
 Pierre-Yves Landuré <py.landure@dorigo.fr> wrote 
 a message of 32 lines which said:

> parceque pour les filtres bayésiens coté serveur.. si je me souviens
> bien des docs que j'avais lue qd j'ai mis en place ma solution de
> mail, c'est pas franchement évident à mettre en oeuvre...

Le problème n'est pas de les configurer, c'est de les entrainer (ou
plus exactement de les faire entrainer par les utilisateurs). Ceux-ci
vont envoyer à la mauvaise adresse, noyer le filtre sous les messages
mal classés, etc.

Et, même si les utilisateurs y arrivent, s'ils ont des vocabulaires
trop différents (cas d'un FAI), le bayésien sera moins efficace.

Ah, au fait, appeler bogofilter depuis Postfix :

L'utilisation de bogofilter dans Postfix est décrite dans une très
bonne documentation qui figure dans la distribution de bogofilter, en
"integrating-with-postfix".  Il faut écrire un petit script analogue
à :

#!/bin/sh

FILTER=/usr/local/bin/bogofilter
FILTER_DIR=/var/spool/bogofilter
POSTFIX=/usr/sbin/sendmail
export BOGOFILTER_DIR=$FILTER_DIR

# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

cd $FILTER_DIR || \
{ echo $FILTER_DIR does not exist; exit $EX_TEMPFAIL; }

# Clean up when done or when aborting.
trap "rm -f msg.$$ ; exit $EX_TEMPFAIL" 0 1 2 3 15

# bogofilter -e returns: 0 for OK, nonzero for error
rm -f msg.$$ || exit $EX_TEMPFAIL
$FILTER -p -l -u -e > msg.$$ || exit $EX_TEMPFAIL

exec <msg.$$ || exit $EX_TEMPFAIL
rm -f msg.$$ # safe, we hold the file descriptor
exec $POSTFIX "$@"


Ensuite, on modifie le master.cf pour l'utiliser :

smtp  inet  n  - n       -       - \
     smtpd -o content_filter=bogofilter:
...
bogofilter    unix  -  n  n  -   -  \
      pipe   flags=R user=bogo \
      argv=/local/sbin/postfix-bogofilter.sh \
             -f ${sender} -- ${recipient}

bogofilter ne fait rien d'autre au message que d'ajouter un en-tête :

X-Bogosity: Ham, tests=bogofilter, spamicity=0.379443, version=0.96.0           

Et il reste à filtrer sur cet en-tête, dans le MUA ou dans un fichier
procmail collectif.

Si on utilise un filtre bayésien pour un large public, il faut
absolument permettre à ce public de l'influencer. Le plus simple est
de créer deux adresses ham@monsite.fr et spam@monsite.fr et de
demander aux utilisateurs de renvoyer ("bounce" ou "redirect", pas
"forwarding" afin de ne pas ajouter leurs propres en-têtes. Cela peut
s'automatiser dans des logiciels comme Thunderbird.) le courrier à ces
deux adresses pour mettre à jour la base de bogofilter. Le fichier
aliases contiendra :

spam: "| sudo -u bogo bogofilter -s"
ham: "| sudo -u bogo bogofilter -n"



Reply to: