OVH Cloud OVH Cloud

Mailfilter: une règle qui fonctionne mal

4 réponses
Avatar
J.Pierre Pourrez
Bonjour,

J'ai stocké dans une boite aux lettres une série de spams que j'ai reçu
qui ont tous un champ d'entête comme ceci:

Message-ID: <E1Bkp3n-0000Gr-GP@bazooka.ascii-club.org>

Les caractères entre < et @ étant variables mais de longueur constante.

Dans mon mailfilterrc, j'ai mis cela comme règle:
DENY=^Message-ID:.*bazooka.ascii-club.org

Hélas quand je fais un test avec checkrules.sh, seulement 2 messages sur
90 coincident alors que j'ai 100% de réussite si je fais :
bazooka~: grep "^Message-ID:.*bazooka.ascii-club.org" ~/Mail/grenoble | wc -l
90

Je n'arrive pas à voir où cela coïnce.

Quelqu'un a-t-il une idée ?

D'avance merci
Jean-Pierre Pourrez


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

4 réponses

Avatar
Patrice KARATCHENTZEFF
J.Pierre Pourrez wrote:
Bonjour,

J'ai stocké dans une boite aux lettres une série de spams que j'ai reçu
qui ont tous un champ d'entête comme ceci:

Message-ID:

Les caractères entre < et @ étant variables mais de longueur constante.

Dans mon mailfilterrc, j'ai mis cela comme règle:
DENY=^Message-ID:.*bazooka.ascii-club.org



essaie .*bazooka.ascii-club.org

Les regexp de mailfilter sont bizarres parfois... Je suis souvent tenté
de réécrire mailfilter en Perl pour résoudre cela.

PK

--
Patrice KARATCHENTZEFF
STMicroelectronics Tel: 04-76-92-67-96
850, rue Jean Monnet
38926 CROLLES Cedex, Courriel:


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
J-Pierre Pourrez
Le 27/07/04 à 08:49, Patrice KARATCHENTZEFF écrivait:

>J'ai stocké dans une boite aux lettres une série de spams que j'ai reçu
>qui ont tous un champ d'entête comme ceci:
>
>Message-ID:
>
>Les caractères entre < et @ étant variables mais de longueur constante.
>
>Dans mon mailfilterrc, j'ai mis cela comme règle:
>DENY=^Message-ID:.*bazooka.ascii-club.org

essaie .*bazooka.ascii-club.org

Les regexp de mailfilter sont bizarres parfois... Je suis souvent tenté
de réécrire mailfilter en Perl pour résoudre cela.



Après vérification, le script checkrules.sh trouve bien les mails qui
doivent être rejetés avec la règle que je donne. C'est l'affichage de
son résultat qui prête à confusion: le script marque le premier mail qui
coïncide. Les autres mails qui coïncident sont sur les lignes suivantes
sans marquage.

Je ne suis pas sûr que checkrules.sh ait le même comportement que
mailfilter.

Le problème arrive quand le champ Message-Id est dans les derniers juste
avant les champs Status, Content-Length et Lines. Voici par exemple, un
mail infecté par un virus qui a traversé le filtre:

From Tue Jul 27 10:43:58 2004
Return-path:
Envelope-to:
Delivery-date: Tue, 27 Jul 2004 10:43:58 +0200
Received: from localhost ([127.0.0.1])
by bazooka.ascii-club.org with esmtp (Exim 4.32)
id 1BpNQz-0000Hd-Im
for ; Tue, 27 Jul 2004 10:35:44 +0200
Delivered-To:
Received: from pop.free.fr [212.27.42.12]
by localhost with POP3 (fetchmail-6.2.5)
for (single-drop); Tue, 27 Jul 2004 10:35:41 +0200 (CEST)
Received: (qmail 31706 invoked from network); 27 Jul 2004 07:06:52 -0000
Received: from grenoble-1-62-147-75-27.dial.proxad.net (HELO free.fr) (62.147.75.27)
by mrelay3-1.free.fr with SMTP; 27 Jul 2004 07:06:52 -0000
From:
To:
Subject: Re: SMTP Server
Date: Tue, 27 Jul 2004 09:06:54 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0016----=_NextPart_000_0016"
X-Priority: 3
X-MSMail-Priority: Normal
Message-ID:
Status: RO
Content-Length: 40528
Lines: 575

La machine qui reçoit le mail s'appelle bazooka.ascii-club.org et n'a
jamais envoyé ce mail.
Si le champ Message-ID arrive plutôt dans l'entête, alors le mail est
bien effacé.

J'ai l'impression que MailFilter ne prend pas en compte les derniers
champs.

J'ai d'autres règles dans mailfilterrc :

DENY=^Message-ID:.*bazooka.ascii-club.org
DENY=^Message-ID:.*bazookaasciicluborg
DENY=^Message-ID:.*bazooka.ascii

mais cela ne change rien.

Sur un mois, j'ai reçu 90 mails comme cela :-(

Jean-Pierre Pourrez




--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
J.Pierre Pourrez
Le 27/07/04 à 08:49, Patrice KARATCHENTZEFF écrivait:

>
>J'ai stocké dans une boite aux lettres une série de spams que j'ai reçu
>qui ont tous un champ d'entête comme ceci:
>
>Message-ID:
>
>Les caractères entre < et @ étant variables mais de longueur constante.
>
>Dans mon mailfilterrc, j'ai mis cela comme règle:
>DENY=^Message-ID:.*bazooka.ascii-club.org

essaie .*bazooka.ascii-club.org

Les regexp de mailfilter sont bizarres parfois... Je suis souvent tenté
de réécrire mailfilter en Perl pour résoudre cela.



Argh, j'ai trouvé, enfin presque.

Les messages de spam qui arrivent sur le serveur pop3 de mon FAI n'ont
pas de champ Message-ID. C'est Exim sur mon PC qui rajoute ce champ.

C'est que vu en faisant un telnet sur le serveur POP3 et qui est
confirmé en mettant l'option SHOW_HEADERS=yes dans mailfilterrc.

Le problème est que mailfilter ne semble pas traité l'absence du champ
Message-ID.

Je crois que la solution va être d'écrire un script perl avec le module
MAIL::POP3Client pour remplacer mailfilter.

Bye
Jean-Pierre Pourrez


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
J.Pierre Pourrez
Le 26/07/04 à 22:27, J.Pierre Pourrez écrivait:

J'ai stocké dans une boite aux lettres une série de spams que j'ai reçu
qui ont tous un champ d'entête comme ceci:

Message-ID:

Les caractères entre < et @ étant variables mais de longueur constante.

Dans mon mailfilterrc, j'ai mis cela comme règle:
DENY=^Message-ID:.*bazooka.ascii-club.org

Hélas quand je fais un test avec checkrules.sh, seulement 2 messages sur
90 coincident alors que j'ai 100% de réussite si je fais :
bazooka~: grep "^Message-ID:.*bazooka.ascii-club.org" ~/Mail/grenoble | wc -l
90



Bon, après recherche, je me réponds à moi-même.

Quand Exim reçoit un message sans champ "Message-ID", il en crée un
avec le nom local de la machine.
On peut vérifier l'absence du champ en faisant un "telnet pop.FAI.fr
pop3" avec la commande TOP no_message 0.

Pour jeter tous les mails sans champ "Message-ID", donc a priori du
spam, rajouter les règles suivantes dans mailfilterrc:
REG_CASE=no
DENY<>^Message-ID:

Bye
Jean-Pierre Pourrez


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact