Login
Newsletter
Werbung

Sa, 6. Dezember 2003, 00:00

Postfix UCE-HOWTO

/^Subject:.*geld/ WARN

Wir schauen an, ob diese Filterregel nützlich ist, dafür müssen wir die Logdatei öffnen.

HOLD: Hält die Emails in der Queue, bis der Admin sagt, was mit ihnen passiert. Dies könnte nützlich sein, wenn wir die Nachrichten nicht zurückweisen wollen, aber auch nicht, dass der Benutzer diese sofort bekommt. Beispiel:

/^Subject:.*Kündigung/ HOLD

Jede Nachricht, deren Subject "Kündigung" enthält, wird auf HOLD gesetzt und bleibt in der Queue, bis der Admin entscheidet, ob diese zugestellt oder gelöscht wird.

DISCARD: Dieses Vorgehen simuliert die Zustellung einer Nachricht, obwohl diese in Wirklichkeit gelöscht wird. Dies ist sinnvoll, wenn man nicht will, dass der betroffene Absender oder Server weiss, was mit der Nachricht wirklich passiert. Beispiel:

/^Subject:.*Rechnung/ DISCARD

Löscht die Nachrichten, die im Subject "Rechnung" enthalten.

FILTER: Erlaubt, dass man einen anderen Server oder Filter angibt wie im Fall von transport Map. Dies ist nützlich, wenn wir nur Nachrichten mit bestimmtem Header filtern wollen. Beispiel:

/^Subject:.*Virus/ FILTER smtp:10025

Übergibt die Nachrichten, welche im Subject "Virus" enthalten, dem SMTP (Server) auf Port 10025. In den meisten Fällen ist amavis auf diesem Port zu finden.

Der Parameter zu header_checks:

header_checks = pcre:/etc/postfix/maps/header_check.pcre

Schauen wir mal den Inhalt dieser Datei an:

/^Subject:.*100\% Free/ REJECT Woah! Free?
/^From:.*spammer@domain.de/ REJECT Geh weg, Spammer.
/^X-Mailer:.*Microsoft/ REJECT Get a _real_ MUA.

Wichtig: Die oben stehenden Beispiele sind nicht unbedingt nützlich für den Einsatz, sie stehen lediglich als Beispiele da. Verwendet die nur, wenn ihr versteht, was ihr macht. Sonst verwendet doch bitte WARN anstatt REJECT.

Postfix hat in den Versionen 2.x eine neue Beschränkungsphase, nämlich mime_header_checks. Dies macht eigentlich genau das gleiche wie header_checks, nur für die Attachments. Die Parameter für mime_header_checks:

mime_header_checks pcre:/etc/postfix/maps/mime_header_check.pcre

Der Inhalt dieser Datei:

/name=[^>]*\.exe/ REJECT Keine .exe Files bitte.
/name=[^>]*\.bat/ REJECT Keine .bat Files bitte.
/name=[^>](screensaver|movie)\.zip/ REJECT Sobig Virus gefunden.

Und body_checks funktioniert auch etwa in dieser Art, nur muss man am Anfang nichts angeben. Die Parameter zu body_checks:

body_checks = pcre:/etc/postfix/maps/body_check.pcre

Der Inhalt dieser Datei:

/See the attached file for details/ REJECT Sobig Virus gefunden.
/Get your free/ REJECT Free? No, thanks.

Auch die header_checks, mime_header_checks und body_checks gehen in Reihenfolge vor. Ein Beispiel:

Nehmen wir an, wir haben in der Datei header_checks.pcre folgende Zeilen:

/^Subject:.*Hallo/ REJECT Bye-bye.
/^From:.*chef@domain.de/ OK

Und sehen wir uns mal an, was passiert, wenn unser Chef uns eine Nachricht mit dem Subject "Hallo" schreibt:

<< 220 mail.domain.de ESMTP
>> EHLO host.domain.de
<< 250-mail.domain.de
<< 250-PIPELINING
<< 250-SIZE 10240000
<< 250-ETRN
<< 250 8BITMIME
>> MAIL FROM:<chef@domain.de>
<< 250 Ok
>> RCPT TO:<user@domain.de>
<< 250 Ok
>> DATA
<< 354 End data with <CR><LF>.<CR><LF>
>> To:chef@domain.de
>> Subject:Hallo
>> Tach auch
>> . -----
	 | Nur nach dem Schluss"." prüft
	 | Postfix die Header und Body.
	 |
	 | -> header_checks
	 | -> mime_header_checks
	 | -> body_checks
	 |
 -----
<< 550 Error: Bye-bye.
>> QUIT
<< 221 Bye

Also, wie wir sehen, ist die Nachricht nicht angekommen, sondern wurde verworfen. Wir haben vergeblich in unserer Datei header_check.pcre angegeben, dass chef@domain.de Emails verschicken kann, weil davor die Nachricht ein REJECT erhält. Die Error-Meldung ist: Bye-bye. Wie wir auch angegeben haben.

Freemail

Es gibt sehr viele Freemail-Provider, die gratis eine Email-Dienstleistung anbieten. Viele Spammer profitieren leider von diesem "Angebot" (einige dieser Provider: hotmail, yahoo, gmx, bigfoot, etc...). Die meisten Spammer benützen eine ungültige Freemail-Adresse, damit sie Ihre Werbung verschicken können. Kann man eigentlich gegen diese Art von Spams etwas unternehmen? Natürlich! Der Trick ist der folgende:

Da die meisten Spammer wahrscheinlich ein Skript für das Verschicken von mehreren tausend Emails brauchen, benützen sie wahrscheinlich nicht die Freemail-Server, um von denen aus die Mails zu verschicken, sondern entweder einen Open-Relay SMTP-Server, oder einen, von dem aus sie die Berechtigung haben, Emails zu verschicken (meistens sind es aber Open-Relay SMTP-Server).

Wenn man z.B. von Hotmail aus eine Email schickt, dann verbindet sich einer der Hotmail-Server mit unserem Postfix SMTP-Server und schickt die Email ab. Wir können daher nachvollziehen (in unseren Logdateien), welche Domain oder welcher Hostname die Verbindung zu unserem SMTP-Server aufgebaut hat. Es ist im Fall von Hotmail ein Server in der hotmail.com Domain (hostname.hotmail.com). Die meisten Spammer würden also einen Absender mit einem Account von hotmail.com vortäuschen, aber in den Logdateien könnten wir nachschauen und feststellen, dass die SMTP-Verbindung nicht von einem hotmail.com-Server stammt. Wir können deshalb diese gefälschten Nacrhichten filtern, indem wir eine eigene restriction class dafür definieren:

smtpd_restriction_classes =
 freemail_hotmail
 freemail_msn
 freemail_yahoo

Dann müssen wir noch angeben, was diese Klassen machen müssen:

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung