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: