[linux-l] OT: Wie kommt Spammail zu mir, die nicht an mich adressiert ist?

Andreas Burkhardt andreaz at belug.de
Mi Nov 17 01:14:41 CET 2004


Das Ganze wird Dir vielleicht etwas klarer, wenn Du Dir einmal anschaust, wie
den eine Mail an einen Mailserver ausgeliefert wird. Wir schicken also einmal
eine Mail an Dich:

Der Mailserver sagt zuerst einmal "Hallole":
  220 mail.biotix.info ESMTP Postfix

Dann stellt der Client sich vor. Hier behauptet er, zu gmx zu gehören. Er hofft
wohl, daß gmx seiner eigenen Domain alles erlaubt. Bei uns versuchen manche
(Viren) als biotix.info abzuliefern, was aber gleich rausgefiltert wird. Dieser
Eintrag ist nicht vorgeschrieben und beliebig zu fälschen:
  EHLO mail.client.de

Der Server antwortet mit ein paar Informationen:
  250-mail.biotix.info
  250-PIPELINING
  250-SIZE 10240000
  250-ETRN
  250-XVERP
  250 8BITMIME

Der Client sagt, von wem die Mail (angeblich) ist. Hierauf könnte man filtern.
Viele Spammer benutzen hier zB nicht existierende Domains (basil at lpg.fi).
Vergleichbar wäre das dem Absender auf einem Briefumschlag, also beliebig zu
fälschen. Techniken zur Spamabwehr versuchen hier anzusetzen und nachzufragen im
DNS, ob der Client überhaupt Mails für diese Domain verschicken darf:
  MAIL FROM:<bill.gates at microsoft.com> SIZE=414

Server sagt "Ok":
  250 Ok

Client sagt, an wen die Mail gehen soll. Hier steht dann auch Deine Adresse.
Also das einzige, was an der ganzen Kommunikation wahr sein muss:
  RCPT TO:<andreaz at biotix.info>

Server sagt "Ok":
  250 Ok

Client sagt, daß er jetzt die Daten, d.h. die eigentliche Mail liefern will:
  DATA

Server bittet um die Daten:
  354 End data with <CR><LF>.<CR><LF>

Zuerst kommen die Header, dann eine Leerzeile und dann der Text der Mail.
Absender und Empfänger, wie Du sie in Deinem MUA siehst, sind hier nur _Daten_
und frei wählbar. Wichtig sind teilweise die Header "Received". Den ersten
Eintrag hat der eigene Mailserver hinzugefügt. Die anderen sind älter. Bei Spam
sind die untersten Einträge meistens gefälscht:
  Received: from gnu.in-berlin.de (gnu.in-berlin.de [192.109.42.4])
	by einhorn.in-berlin.de with ESMTP id iAGJ0Db3000810;
	Tue, 16 Nov 2004 20:00:13 +0100
  Received: from mail.gmx.net (imap.gmx.net [213.165.64.20])
	by gnu.in-berlin.de with SMTP id iAGIv8r5017476
	for <linux-l at mlists.in-berlin.de>; Tue, 16 Nov 2004 19:57:08 +0100
  Received: (qmail 27220 invoked by uid 65534); 16 Nov 2004 18:57:07 -0000
  Received: from pD952D353.dip.t-dialin.net (EHLO shodan.citadel) (217.82.211.83)
	by mail.gmx.net (mp022) with SMTP; 16 Nov 2004 19:57:07 +0100
  Message-ID: <419A8829.6000502 at biotix.info>
  Date: Wed, 17 Nov 2005 00:07:21 +0100
  From: Gabi <gabi at seventeen.org>
  User-Agent: Mozilla/5.0 (CP/M; Z80a; en-US; rv:1.7.3) Gecko/20040913
  X-Accept-Language: de-de, de, en-us, en
  MIME-Version: 1.0
  To:  linux-l at mlists.in-berlin.de
  Subject: such's dir aus
  Content-Type: text/plain; charset=us-ascii; format=flowed
  Content-Transfer-Encoding: 7bit

  nur ein Beispiel
  .

Server sagt, daß er die Mail angenommen hat:
  250 Ok: queued as C246B31289F

Client möchte die Verbindung beenden:
  QUIT

Server sagt "Ade":
  221 Bye


Mit 'telnet mail.gmx.de smtp' kannst Du das auch unter Linux selber mal testen.


cu, andreaz




Mehr Informationen über die Mailingliste linux-l