On Thu, 19 Jul 2001, Yann Forget wrote:
> Marc, comment filtres-tu le spam ?
Principes généraux de l'anti-spam sur ALPHANET, cf
http://www-internal.alphanet.ch/anti-spam.html
Sinon, petite description techniques:
1. infrastructure de courrier électronique:
MTA:
sendmail 8.11.x
MDA:
procmail
MUA:
pine
autres:
nf-popd
lecture par POP, mot de passe différents de ceux du système
daemon très simple audité en 1994
UUCP
FTN/ifmail
BSMTP-Exchange
Courrier électronique sous forme de batches SMTP compressés
échangés pour un domaine complet.
trucs moches:
le système de mail consiste en fait de deux daemons sendmail,
un 8.11.x pour SMTP, un 8.9.x pour le trafic `interne'. Cela
pour des raisons historiques qui n'ont plus lieu d'être.
Ni d'ailleurs vulcan, machine qui date de 1995 et qui pourrait
être avantageusement remplacée.
2. système anti-spam
0. les tests de base d'anti-relaying: seuls les domaines gérés
par mon système de mails peuvent être utilisés comme To:,
sinon le mail est rejeté, sauf pour les adresses internes qui
utiliseraient SMTP (dans mon cas il n'y a que quelques personnes
accédant par modem et PPP le système), et bien sûr UUCP/BSMTP/FTN
et les clients locaux qui font ce qu'ils veulent.
1. premier niveau: le mail n'est *pas* transféré.
Le refus est basé sur l'adresse IP d'émission, via un système
basé sur un DNS que l'on a légérement abusé, mais bon il
adore ça ce vicieux.
DUL
Les listes d'adresses en dialup
RBL/et les autres
Listes d'adresses de spammers connus ou de relais ouverts.
cf http://www.mail-abuse.org
Exemple:
Jul 18 00:20:42 vulcan sendmail[22668]: f6HMKa122668:
ruleset=check_relay,arg1=emelgur.com.ec, arg2=200.41.3.82,
relay=emelgur.com.ec [200.41.3.82], reject=553
5.3.0 Rejected 200.41.3.82 see http://mail-abuse.org
Environ 400 mails par jour sont refusés sur ALPHANET par ce
biais.
Supporté par les règles standards de sendmail et de plein
d'autres MTAs.
2. deuxième niveau: les adresses d'enveloppe (MAIL FROM: SMTP)
manifestement invalides (non résolvables) sont rejetées.
Environ une vingtaine par jour, dont probablement 95% de
personnes avec des systèmes de mail mal configurés (genre
deux serveurs DNS dont un qui ne sait pas qu'il est secondaire).
3. troisième niveau: une fois le mail TRANSFERE par le système de
mail, le mail, sauf s'il correspond à des critères déterminés,
est passé à travers une moulinette de regexp Perl, via
l'interface libmilter de sendmail. Chaque mail prend environ
10 secondes pour être contrôlé, en moyenne.
Les mails sont rejetés avec l'erreur distincte:
SPAM REJECTED
*puis stockés quand même dans un fichier sur le serveur*. Ce
fichier est consulté par mes soins assez régulièrement, pour
détecter des erreurs manifestes des filtres.
Environ une centaine par jour sont rejetés par ce système, qui
a environ 2-3 erreurs par jour, en général en rafale, p.ex.
dû à une phrase clé citée dans une mailing-list p.ex.
4. quatrième niveau: une fois le mail reçu par l'utilisateur final,
si celui-ci est un spam, l'utilisateur peut envoyer le message
et tous les headers à [EMAIL PROTECTED], qui va tout
d'abord passer le message à un filtre procmail/junkfilter.
Les messages qui activent junkfilter sont les premiers à être
manuellement consultés pour amélioration des règles de filtrage.
Donc c'est un système assez complexe qui me prend environ 10 minutes par
jour pour le peaufiner. Mais bon, auparavant je recevais environ 10
à 20 spams dans ma boîte-aux-lettres personne par jour, maintenant plutôt
2-3.
Il manque encore pour que je sois content:
- un système de lecture rapide des spams (p.ex. par interface WWW)
permettant de grouper les mails par similitudes et faire des group
kills ou group unkills.
- et pourquoi pas licencier le gars qui lit la mailbox d'announce-spam
(moi) et remplacer par un réseau de neuronnes, hein :)
Mauvaise nouvelle: d'ici la fin du mois le service MAPS sera désactivé (le
premier niveau ci-dessus), cf les URLs précédemments indiqués et:
http://www-internal.alphanet.ch/cgi-bin/ticket-system/ttview?view=20010716-1
A mon avis cela ne va pas augmenter le nombre de spams reçus (à cause du
niveau 3) mais cela va augmenter la charge de vulcan et le boulot de tri
des spams / messages non spams (false hits).
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.