Spam Spam Spam ...

von Andreas Papst (Ausgabe 98/1, Februar 1998)

 

Wer kennt sie nicht, die Mails, die das schönste, beste, ... Produkt anpreisen und einem unaufgefordert zugesandt werden? Wer öfters von diesen Massensendungen gequält wird, sollte den Artikel Unterstützung beim Verarbeiten von eMail: Mail filtering (Comment 97/1) lesen. Mein Artikel hier wendet sich an alle, die einen Message Transfer Agent unter Unix betreiben - also z.B. jene, auf deren Schreibtisch ein PC unter Linux läuft.

Denn die Versender von Spam-Mails1)), wie diese massenhaft ausgesandten Nachrichten genannt werden, sind natürlich nicht glücklich darüber, daß ihre Werbebotschaften oft automatisch in den elektronischen Mülleimer wandern, ohne daß der Adressat auch nur einen Blick darauf geworfen hat. Daher haben sie Gegenstrategien entwickelt, die das Mailfiltering unwirksam machen sollen. Eine besonders häufig angewendete Methode ist, die Absenderadresse zu fälschen. Dazu wird die Eigenschaft des Unix-Programms sendmail in seiner Grundkonfiguration ausgenutzt, Nachrichten von beliebigen Absendern an beliebige Empfänger weiterzuleiten, wobei nicht die realen Daten des Absenders weitergegeben werden, sondern nur die von diesem angegebenen (also möglicherweise gefälschten) Werte. Diese Eigenschaft soll eigentlich den Aufbau von ausfallsicheren Mailnetzwerken ermöglichen. Wie jedes Werkzeug kann aber auch dieses mißbraucht werden, und so wird aus einem solchen Rechner schnell ein Spam-Verteiler. Die Folgen sind für den Benutzer dieses Hosts nicht angenehm: Abgesehen von unzähligen Beschwerdebriefen wird der Hostname auf eine schwarze Liste gesetzt, die als Basis für Listen in Sperrfiltern dient. Das bedeutet dann, daß - unabhängig vom Inhalt - Nachrichten von diesem Rechner automatisch gelöscht oder nicht weitergeleitet werden.

Um sich vor solchen Mißbräuchen schützen zu können, muß die Konfigurationsdatei des sendmail-Programms mit einem Zusatz versehen werden. Am Ende der Datei sendmail.cf, die unter Linux im /etc-Verzeichnis beheimatet ist, sind die aus Abb. 1 ersichtlichen Zeilen anzufügen (die recht tückischen Regeln für den Aufbau dieser Datei - die Unterschiede zwischen Leerzeichen und Tabulatoren sind ganz wesentlich! - müssen dabei unbedingt beachtet werden).

 

LOCAL_CONFIG
FR-o /etc/sendmail.cR

LOCAL_RULESETS
Scheck_rcpt
# anything terminating locally is ok

R< $+ @ $=w >
R< $+ @ $=R >

$@ OK
$@ OK

# anything originating locally is ok

R$*
R$=w
R$=R
R$@

$: $(dequote "" $&{client_name} $)
$@ OK
$@ OK
$@ OK

# anything else is bogus

R$*

$#error $: "550 Relaying Denied"

 

Dies bewirkt, daß aus der Datei /etc/sendmail.cR jene vollständigen Hostnamen gelesen werden, für die sich der Rechner lokal zuständig fühlen soll (das sind vor allem jene, die in ihren POP3- oder IMAP4-Klienten diesen Rechner als Mail-Gateway für abgehende eMail eingetragen haben). Das sendmail-Programm läßt dann nur noch jene Mails durch, die entweder von einem dieser Hosts abgesendet oder an einen dieser Hosts adressiert wurden. Diese Konfigurationsänderung wird vom EDV-Zentrum ausdrücklich empfohlen, funktioniert allerdings nur bei den sendmail-Versionen 8.8.4, 8.8.8 und höher (also nicht bei 8.8.5 bis 8.8.7 - in diesen Fällen muß eine neue sendmail-Version installiert werden).

Für Sicherheitsfanatiker gibt es zusätzlich die Möglichkeit, Mails von nicht im Internet-Domain-Name-Service eingetragenen Hosts (also Hosts, die nicht richtig im Internet angemeldet sind, eine willkürlich gewählte IP-Adresse besitzen und damit die Verfolgung von Attacken vereiteln können) zurückzuweisen. Dazu ist ein weiterer Eintrag am Ende der Datei sendmail.cf notwendig (siehe Abb. 2). Außerdem sollte syslog so konfiguriert sein, daß entsprechende SMTP-Zugriffe aufgezeichnet werden (die Zeile mit mail.* in der Datei /etc/syslog.conf sollte aktiviert, d.h. nicht auskommentiert sein). Dies nützt allerdings wenig bzw. gar nichts, wenn das entsprechende Logfile nicht regelmäßig durchgesehen oder gar ungelesen gelöscht wird.

LOCAL_CONFIG

LOCAL_RULESETS
Scheck_mail

# check for valid domain name (incompatible with DeliveryMode=defer)

R$*
R<?> $* < @ $+ . >
R<?> $* < @ $+ >

$: <?> $>3 $1
$: <OK>
$#error $: 451

make domain canonical
tag resolved names
Domain must resolve

 

PS: Vergessen Sie nicht, in die Datei /etc/sendmail.cR Ihre Hosts einzutragen - z.B.

host1.meineDomain.univie.ac.at
host2.meineDomain.univie.ac.at
host3.deineDomain.univie.ac.at

und das sendmail-Programm dazu zu bewegen, die neue Konfiguration einzulesen - z.B. unter Linux mit dem Befehl

kill -HUP `grep -v -e '[:alpha:]' /var/run/sendmail.pid'


Literatur: http://www.sendmail.org/antispam.html

 

 

1)"Spam" stand ursprünglich für "spiced pork and ham", ein Produkt der Firma Hormel Foods Corp., USA. Berühmtheit erlangte der Begriff durch einen Sketch in "Monty Python's Flying Circus", in dem dieses Wort innerhalb weniger Minuten mehr als 120mal wiederholt wurde. Durch Analogiebildung wurde der Begriff für die häufig wiederkehrenden unerwünschten Werbemails übernommen.