Schöne Stunden bei Kaffee & Kuchen

Spambekämpfung auf die harte Tour

Nach der zufälligen Lektüre des Blog-Beitrags von Heinlein-Support über die rechtlichen Probleme von Spam- und Quaratäne-Ordnern habe ich mich entschieden, dass auch hier auf der kaffeekrone umzusetzen.

Die angesprochene Echtzeitfilterung hatte ich schon vorher umgesetzt, sie bedeutet in dem Fall, dass Postfix zwar die Mail annimmt und an Amavisd weiterleitet aber dem absendenen Mailserver davon nichts bekannt ist. Erst wenn Amavisd denn Daumen hebt oder senkt wird eine Rückmeldung an ihn geschickt.

Bisher sah das für Spam so aus:

proxy-accept: END-OF-MESSAGE: 250 2.0.0 from MTA(smtp:[127.0.0.1]:10035): 250 2.0.0 Ok

Postfix antwortet also brav mit einem 250er Code und für den Absender ist alles fein. Danach wurde die Mail zwar als Spam markiert und in die Quarantäne gesteckt, aber der Empfänger hat davon nichts mitbekommen! Lediglich ich als Postmaster hatte davon Kenntnis, da jeweils eine Quarantäne-Mail an mich geschickt wurde.

Glücklicherweise kann ich die hier seit über einem Jahr eingegangenen noch an einer Hand abzählen. Es sind fünf.

Der Absender hatte in dem Fall aber das gute trügerische Gefühl, die Mail wäre angekommen. Tatsächlich gab es vor einige Zeit den Fall, dass ein großer Outdoor-Shop Mails veschickte, die Spamassassin so analysierte.

0.0 SPF_PASS SPF: Senderechner entspricht SPF-Datensatz

0.6 HTML_IMAGE_RATIO_04 BODY: Verhältnis Bilderfläche zu Text ist klein

0.0 HTML_MESSAGE BODY: Nachricht enthält HTML

1.3 RDNS_NONE Delivered to internal network by a host with no rDNS

3.2 HELO_DYNAMIC_IPADDR HELO-Rechnername verdächtig (IP-Adresse 1)

1.5 HTML_FONT_TINY Font too small to read

Bei einem zusammengerechneten Wert von über 5 wird die Mail als Spam deklariert und in Quarantäne gesteckt. Weder Empfänger noch Absender wissen davon. Erst wenn ich sie manuell aus der Quarantäne hole, weiß der Empfänger von der Mail. Das ist schlecht.

Um nun dem Absender klar mitzuteilen, dass die Mail nicht zugestellt wurde, teilt man Amavisd folgendes mit.

$final_spam_destiny = D_REJECT;

Nun werden die unerwünschten Mails direkt so begrüßt.

proxy-reject: END-OF-MESSAGE: 554 5.7.0 Reject, id=02172-01 - spam

Und eine Quarantäne gibt es auch nicht mehr.

$clean_quarantine_to = undef; $virus_quarantine_to = undef; $banned_quarantine_to = undef; $bad_header_quarantine_to = undef; $spam_quarantine_to = undef;

Es gibt Gründe warum hier keine Mails mit einer höflichen Rückantwort (BOUNCE) abgelehnt, sondern hart mit einer Zurückweisung bedacht werden.

  1. Man möchte nicht durch Backscatter selber zum Spammer werden, wenn auf gefälschte Absendeardressen mit einer Bounce-Mail geantwortet wird.
  2. Kostet es wertvolle Rechenzeit.
  3. Der absendende Mailserver muss die Bounce-Nachricht formulieren, was ungemein die Sprachbarriere senkt kann
  4. die Klagen der Absender, warum die Mail nicht zugestellt wurde und was das alles in der Mail, die zurückkam, bedeutet ploppt zuerst beim Absender-Postmaster auf, welcher dann die honorige Aufgabe hat seine Nutzer zu erziehen ;-)

Im Übrigen werden so auch die ausgehenden Mails der kaffekrone behandelt, der kleine Unterschied ist, dass der Absender eine höfliche Antwort erhält und ich mit der Erziehung meiner Nutzer bisher sehr zufrieden bin.