Spamfilter für verschiedene Empfänger

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
lonelypixel
Posts: 15
Joined: 2005-09-18 14:18
Location: Eckental

Spamfilter für verschiedene Empfänger

Post by lonelypixel » 2005-09-19 22:51

Hallo zusammen,
ich hoffe diese Frage wurde nicht schon irgendwo beantwortet, ich hab mit der Suche jedenfalls nix gefunden.

Ich bin derzeit dabei, meinem Exim das Spamfiltern beizubringen. Nachdem ich wenig Lust habe, mir erstmal wieder ein aktuelles Testsystem einzurichten, hatte ich vor, das gleich auf dem "produktiven" Server auszuprobieren. Und da auch erstmal ohne größere Gefährdung, sprich, erstmal nur Header generieren unter bestimmten Bedingungen.

Leider bin ich dabei recht bald auf ein eher konzeptionelles Problem gestoßen. Ich hatte vor, meinen Kunden einen Spam- und Virusscanner als kostenpflichtige Option anzubieten, d.h. jeder kann selbst entscheiden, ob er sowas haben möchte oder nicht. Und zwar pro Postfach oder Weiterleitung. Jetzt kann ich in Exim (4.52 mit content scanning) aber keine konkrete Empfängeradresse feststellen, wenn ich irgendwas im DATA-ACL prüfe. Ist ja auch klar eigentlich, zu dem Zeitpunkt gibt's bereits potentiell mehrere Empfänger einer Nachricht. Also kann ich dann am Ende gar nicht für jeden Empfänger einzeln entscheiden, ob der Spamfilter verwendet werden soll oder nicht. Und Nachrichten nach der bestätigten Annahme, wo man evtl. auf jeden einzelnen Empfänger eingehen könnte, zurückzuweisen oder gar zu verwerfen halte ich für gar keine gute Idee.

Welche Optionen habe ich jetzt also? Kann ich überhaupt verschiedene Einstellungen für verschiedene Empfänger verwenden? Oder muss der Spamfilter am Ende global für alle laufen? Das könnte man ja zur Not auch machen, kostenloser Filter für alle, aber was mach ich mit denen, die explizit nichts gefiltert haben wollen? Die Empfängerzahl pro Nachricht auf 1 beschränken geht wohl auch nicht, wenn ich mir das SMTP-Protokol so ansehe.

lonelypixel
Posts: 15
Joined: 2005-09-18 14:18
Location: Eckental

Re: Spamfilter für verschiedene Empfänger

Post by lonelypixel » 2005-09-19 23:09

Oh, jetzt muss ich nochmal was anfügen hier.
Ja, man sollte erstmal mehr lesen, ich weiß. Nun hab ich diesen Entwurf hier auch gefunden: http://slett.net/spam-filtering-for-mx/ ... tings.html
Aber der bietet ja leider auch keine Lösungen an, außer die mit den z.T. erheblichen Verzögerungen, die, was man so hört, bei diversen Mailinglisten ganz schlecht ankommen.

Darf man die Hoffnung also gleich wieder aufgeben oder sitzt hier noch jemand mit einer brillianten Idee dazu? :)

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Spamfilter für verschiedene Empfänger

Post by dodolin » 2005-09-20 01:53

http://duncanthrax.net/exiscan-acl/exis ... amples.txt Punkt 6.

Fuer deine Situation kommen wohl die 2 Loesungen in Frage:
a) Verschiedene Profile anbieten und dann sicherstellen, dass pro Transaktion nur RCPT mit gleichem Profil vorhanden sind.

b) Keine SMTP Time Rejections, d.h. nur markieren und dann spaeter in user-spezifischen Routern oder Transports unterschiedliche Aktionen vornehmen. Fuer User, die fuer ein Feature nichts bezahlt haben, kann man die Markierungen auf diese Art auch einfach wieder entfernen.

Nachteil: Bounces zu senden verbietet sich von selbst, d.h. fuer User, die das Feature aktiviert haben, bieten sich dann lediglich die Moeglichkeiten an, entweder die Meldungen stillschweigend zu vernichten, in einen Spam/Viren Ordner zu verschieben oder einfach nur zu markieren.

lonelypixel
Posts: 15
Joined: 2005-09-18 14:18
Location: Eckental

Re: Spamfilter für verschiedene Empfänger

Post by lonelypixel » 2005-09-20 12:04

Ja, irgendwie ein bisschen blöd. Ich hab grade meinen Spamordner grob überflogen und denke mal, dass es für den Anfang nicht so tragisch sein wird, wenn ich nur E-Mails durch den Filter ziehe, die für einen einzigen Empfänger eingehen. Das sollte dann immer noch die meisten E-Mails betreffen. Die anderen dürfen erstmal ungestört passieren. Die $recipients_count-Bedingung scheint mir dafür ganz gut geeignet. Jetzt muss ich im DATA-ACL nur noch an die einzige Empfängeradresse rankommen. So spontan, unter Verwendung der Exim-Doku, fällt mir nur ein, bei jedem akzeptierten RCPT die Daten aus $local_part und $domain in $acl_m[x] zu kopieren. Hab ich da was übersehen oder hat jemand ne bessere Idee?