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

Re: filtrage mail



On Thursday 22 July 2004, at 21 h 58, the keyboard of "NOSPAM" 
<NOSPAM@laposte.net> wrote:

> Voilà, j'aimerais mettre en place un serveur de mail sur ma machine.
...
> mais avant tout dégager les virus et les spams.

Je viens de faire une petite synthèse pour la liste linux-afrique donc cela tombe bien, la voici, d'autant plus que le serveur mentionné est une Debian "sarge".

On Thu, Jul 22, 2004 at 06:10:40PM -0000,
 AMEVOR Kossi <akaseth@togo-imet.com> wrote 
 a message of 11 lines which said:

> Je suis impuissant devant le problème de spam.  Je vous prie de
> m'aider à trouver une solution.

Il n'y a évidemment pas de solution miracle. La limitation du fléau
nécessite une action combinée aux niveaux politiques, juridiques et
économiques. En attendant, et vue l'orientation de cette liste, je me
concentre sur l'angle technique.

Je vais surtout parler de ce que j'ai expérimenté personnellement mais
il y a évidemment d'autres méthodes. Les chiffres que je donne sont
ceux d'un serveur de messagerie que je gère, pas en Afrique mais dans
un pays pauvre d'Asie, ayant des problèmes analogues. En moins d'un
mois, 244 messages ont été classés comme spam dans ma boîte aux
lettres.

laghman:~ % from -f Mail/spam | wc -l
244

****************************************************
Les techniques qui, de mon expérience et à mon humble avis marchent

- Recherche d'empreintes, c'est-à-dire de caractéristiques du spam
("Buy V!agra now" ou bien "Je suis le fils de l'ancien directeur de la
Banque centrale du Togo..."). C'est le domaine de SpamAssassin. Il a
trouvé plus de la moitié des spams reçus mais attention : un tel score
nécessite de se tenir à jours concernant les règles :

laghman:~ % grep 'X-Spam-Flag: YES' Mail/spam | wc -l
136

Je lance SpamAssassin en démon et c'est procmail qui appelle le client
(procmail est mon MDA, le programme qui écrit dans les boîtes aux
lettres, j'ai un 'mailbox_command = /usr/bin/procmail -a "$EXTENSION"'
dans mon /etc/postfix/main.cf).

laghman:~ % more /etc/procmailrc
[...]
:0fw
* < 256000
| spamc

Tous les utilisateurs en bénéficient sans rien avoir à faire, *sauf*
configurer leur MUA (le logiciel de lecture du courrier) pour jeter
automatiquement les messages marqués, s'ils font confiance à
SpamAssassin. Ici, le choix n'est pas technique, il est politique. Si
je les jettais moi-même, par exemple dans la recette procmail
ci-dessus, j'imposerai à tous mes utilisateurs de faire confiance à
SpamAssassin.

- Filtres bayésiens, avec apprentissage. Ils doivent être entrainés,
avec un corpus de spam et un corpus de ham (non-spam) mais sont
ensuite d'une efficacité redoutable. J'utilise bogofilter. En partant
de zéro, bogofilter a atteint en quelques jours son efficacité
maximale. C'est lui qui a marqué la plupart des autres messages :

laghman:~ %  grep 'X-Bogosity: Yes' Mail/spam  | wc -l
76

Contrairement à SpamAssassin, il doit être invoqué par les
utilisateurs, chacun ayant son corpus particulier ("penis" est pour
moi un très bon marqueur de spam alors qu'il ne le serait pas
forcément pour un médecin ou un écrivain érotique). Je le fais depuis
mutt avec les macros suivantes :

macro index \es "<pipe-entry>bogofilter -s\n<save-message>=spam\n" "Report a false-negative to bogofilter"
macro index \en "<pipe-entry>bogofilter -n\n<save-message>" "Report a false-positive to bogofilter"
macro pager \es "<pipe-entry>bogofilter -s\n<save-message>=spam\n" "Report a false-negative to bogofilter"
macro pager \en "<pipe-entry>bogofilter -n\n<save-message>" "Report a false-positive to bogofilter"
macro pager \ev "<enter-command>unset wait_key\n<pipe-entry>bogofilter -vvv | less\n<enter-command>set wait_key\n" "Ask bogofilter a report"

- Liste grise : une technique très récente et redoutable. Elle a
l'avantage de ne pas surcharger la ligne à transférer des spams qui
seront éliminés ensuite. J'utilise postgrey, un "policy server" pour
Postfix. Je recommande fortement.

Voici une liste des adresses qui n'ont pas passé la liste grise. On
voit bien leur caractères spam :

210.92.142.163/highlightinglul@myx.net: first at 26 Jul 2004 at 11 h 18 mn, last at 26 Jul 2004 at 11 h 18 mn (NEVER RETRIED)
62.57.38.0/soriano@yahoo.com: first at 26 Jul 2004 at 11 h 0 mn, last at 26 Jul 2004 at 11 h 0 mn (NEVER RETRIED)
69.6.66.8/aaa@a1info.net: first at 26 Jul 2004 at 10 h 52 mn, last at 26 Jul 2004 at 10 h 52 mn (NEVER RETRIED)
84.135.200.0/users-support39@usbank.com: first at 26 Jul 2004 at 10 h 34 mn, last at 26 Jul 2004 at 10 h 34 mn (NEVER RETRIED)
61.16.253.7/bashirmohd786@yahoo.com: first at 26 Jul 2004 at 7 h 3 mn, last at 26 Jul 2004 at 7 h 3 mn (NEVER RETRIED)
...

**************************************************************
Les techniques qui, de mon expérience et à mon humble avis ne marchent
pas

- Les listes noires : la grande majorité sont très mal maintenues,
souvent par des volontaires qui arrêtent un jour ou l'autre, parfois
sans prévenir. Elles sont un bon moyen d'obtenir des faux positifs,
c'est-à-dire de classer des hams comme spams.

- Les rDNS (DNS inverse, via un enregistrement PTR, qui permet
d'obtenir un nom à partir d'une adresse IP). Beaucoup de serveurs de
messagerie au Nord les utilisent. Comme très peu de fournisseurs
africains ont une délégation de in-addr.arpa, cette technique revient
souvent à éliminer les messages d'origine africaine.


***************************************************************
Les techniques sur lesquelles je n'ai pas d'expérience personnelle

SPF et autres techniques d'authentification par le DNS

***************************************
Références :

Très bonne introduction aux filtres bayésiens :

http://www.paulgraham.com/spam.html

Bogofilter : 

http://bogofilter.sourceforge.net/

SpamAssassin :

http://www.spamassassin.org/

Les listes grises : 

http://www.greylisting.org/

Postgrey :

http://isg.ee.ethz.ch/tools/postgrey/

SPF :

http://spf.pobox.com/




Reply to: