PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schon beim Einwurf ablehnen - ist das denn so schwer?



asoedler
01.02.2011, 08:42
Das Briefgeheimnis verpflichtet den Betreiber eines Mail-Servers, die Mail auch zuzustellen, wenn er sie einmal angenommen hat. Das Haupt-Problem: Viele Mailserver nehmen Mails bedingungslos an, und übernehmen damit großzügig die leidige Pflicht.
Warum also machen wir kein Greylisting, das vom Empfänger gesteuert wird? (Achtung: es ist kein Greylisting im herkömmlichen Sinn, bitte genau lesen.)

whitelist, bekannte oder vertrauenswürdige Absender: annehmen
blacklist, offensichtlicher Spam, dialins, russische Anfragen an den deutschen Bäcker: ablehnen
alles andere: Nach Übermittlung der Mail mit SMTP-Fehler 4xx mitteilen, dass die Mail "derzeit" nicht angenommen werden kann

Jetzt kann der Empfänger z.B. seine 2x-tägliche Spam-Liste durchsehen, oder den Spam-Ordner, oder was auch immer. Er kann vielleicht auch im Einzelfall in die Mails hineinsehen, und entscheiden, ob er sie annnehmen will, oder nicht.

Was oder wie auch immer, er teilt dem Mailserver mit, an welchen Mails er wirklich interessiert ist. Und jetzt geht es weiter beim nächsten Einwurf einer solchen "3."-Mail:

3.a) vom Empfänger nicht akzeptierte Mails werden endgültig abgelehnt (5xx).
3.b) vom Empfänger akzeptierte Mails werden angenommen (3xx).

Was bleibt, ist die rechtliche Grauzone, wenn der Spamfilter auch an Hand des Mail-Inhalts entscheiden soll. Da fragt man besser erstmal die Empfänger. Aber er muss es ja auch nicht, auch ohne Einblick in den Inhalt ist dies Verfahren erstklassig.

:D Vorteile:

Der Spamfilter darf in sicheren Fällen gleich ablehnen. Was nicht angenommen wurde, muss auch nicht weitergereicht werden.
Wird eine Mail aussortiert, bekommt der Absender zuverlässig eine Nachricht.
Es besteht keine Gefahr, dass bei gefälschter Absendeadresse ein unbeteiligter benachrichtigt (=bespammt) wird.
Keine Verzögerung wie beim typischen greylisting.
Der Spam-Ordner kann mit anderen abgegelichen werden, und es kann nachträglich entschieden werden, dass eine Nachricht Spam ist.
Wenn der Empfänger genauer nachsehen will, ob es sich um Spam handelt oder nicht, muss er nicht preisgeben, dass er die Mail gelesen hat.

:sick: Nachteile:

"Fragwürdige" Mails muss der Absender eventuell -zigfach wiederholen. Die Last?
Manche Mail-Server informieren den Absender nach ein oder zwei Stunden, dass die Zustellung der Mail noch nicht erfolgt ist.

Also, dämliche Frage: Warum macht das keiner so? Gibt es Kritiken? Lob? Hat jemand Erfahrung damit? Möchte jemand so etwas einsetzen? Kann jemand dazu beisteuern?

Artur

Chinchilla
01.02.2011, 08:54
Woran erkenne ich den Absender?
- An dessen Absende-Mailadresse, die im SMTP-Protokoll beliebig geändert werden kann (was von Spamern gerne ausgenutzt wird)?
- An der IP-Adresse des Senders, die meist dynamisch ist aber auch nicht von allen Diensten mitgeliefert wird?

asoedler
01.02.2011, 09:53
Woran erkenne ich den Absender?
wg. Prüfung der Mail: Das wäre ein Themenwechsel. Es gibt keine vollständige Lösung.
wg. Ablehnung der Mail: Der Mail-Server antwortet auf der gleichen TCP-Verbindung. Damit ist sichergestellt, dass der Absender sie erhält, und niemand anders.

Chinchilla
01.02.2011, 09:59
Was aber noch nicht sicher stellt, daß der Absender der Absender ist und die Absende-IP ist meist dynamisch und selten die des zuständigen Mailservers.

Themenswechsel? Weshalb Themenwechsel, für Deine Idee ist das eine grundlegende Frage!

asoedler
01.02.2011, 10:13
Was aber noch nicht sicher stellt, daß der Absender der Absender ist und die Absende-IP ist meist dynamisch und selten die des zuständigen Mailservers.

Leider, liebes Chinchilla-Häschen, hast du das Thema nicht verstanden - wahrscheinlich, weil du es nicht anders kennst. Es geht darum, die Mails beim Einwurf abzulehnen, und da ist die Absende-IP immer die des zuständigen Mailagenten. (Der Absender muss nicht gleichzeitig Mailserver sein.) Noch ein Hinweis: Wenn du die Absende-IP lesen kannst, sie also in einem Text drinsteht, dann ist das garantiert nicht das, was ich meine. Ich spreche von der Absendeadresse im Sinne der Funktion getpeername().

Und jetzt bitte keine Schulung zum Thema "E-Mail" für Newbees, sondern ernstgemeinte Beiträge zum Thread. Besten Dank!

Artur

Chinchilla
01.02.2011, 10:36
Ich habe das Thema durchaus verstanden. Und ich habe auch verstanden, daß Du das Thema nicht weit genug durchdacht hast und anscheinend auch nicht dazu bereit bist.

Übrigens: Ich bin nicht Dein Chinchilla-Häschen und werde es auch nie sein! So etwas verbitte ich mir!

asoedler
01.02.2011, 10:51
Wer sich Chinchilla nennt... ;) oops - war nicht bös gemeint!

Trotzdem: Das Thema ist durchdacht und im Einsatz. Deine Vorwürfe bringen hier nichts. Den Absender einer Nachricht erkennt der empfangende Mailserver an getpeername(). Dem wird geantwortet, und fertig. Da geht nichts schief.

Nicht durchdacht wäre es, die Mails erst einmal anzunehmen, dann aus der Mail den (gefälschten) Absender zu lesen, und diesem dann zu antworten. Nach deinen Fragen muss ich davon aber ausgehen dass du das meinst.

Wenn auf letzere (=nicht durchdachte) Weise abgelehnt werden würde, dann würden sich Spammer das zu Nutze machen. Man sende eine Mail mit Absendeadresse "max [at] mustermann.de" an so einen Mailserver, und der würde sofort den Werbemüll an den armen Max weiterleiten — mit einem Kof "Unzustellbarkeitsbenachrichtigung" versehen.

Das meintest du doch mit "nicht weit genug durchdacht", oder?

Artur

cmds
01.02.2011, 11:05
@asoedler @chinchilla

Kommt wieder zum Thema zurück! Unterlasst sofort die verbalen Gefechte!

bedenkt, der Weg nach 5.4711 ist nicht sehr weit

hoppala
01.02.2011, 11:32
Insgesamt ist das kein ganz verkehrter Ansatz - so was habe ich auch schon mal in freier Wildbahn erlebt, aber eher selten.
Das mit der dynamischen IP-Adresse, was Chinchilla meint, ist bereits im Punkt 2 des ursprünglichen Vorschlags berücksichtigt: Von fremden Dialin-IP-Adressen nehme ich keine Mails an. Punkt. Wer eine dynamische IP-Adresse hat, muss einen Smarthost für den Mailversand benutzen, bei dem er sich per SMTP AUTH oder einen äquivalenten Mechanismus authentifiziert.
Unter "bekannten Absendern" im Sinne von Punkt 1 würde ich auch nicht Personen oder Mail-Adressen, sondern IP-Adressen der ausgehenden Mailserver von regulären Mail-Providern, Firmen usw verstehen. So eine Whitelist kann auf unterschiedlichen Wegen erstellt werden - es gibt Whitelist-Anbieter, man kann auch z.B. von einem Greylisting-Mechanismus wie postgrey eine Whitelist von echten Mailservern automatisch erstellen lassen, das funktioniert recht gut.

Ob in der Praxis ein wesentlicher Unterschied zum konventionellen Greylisting + White/Blacklist bemerkbar ist, wage ich zu bezweifeln. Der Unterschied in der Handhabung von Spam besteht ja im wesentlichen darin, dass der Mailserver bei diesem Vorschlag den Mail-Inhalt im SMTP-Dialog übertragen lässt, dann aber doch mit einem temporären Fehler abweist. Damit ist er zwar nicht in den Verantwortungsbereich des Mailservers übergegangen, aber zur Entscheidung, ob es Spam ist oder nciht, muss der Empfänger den Inhalt doch lesen. Ob er dann sagt "Das will ich nicht" und der Mailserver beim nächsten Versuch die Mail mit einem permanenten Fehler abweist, oder ob der Empfänger die Mail einfach wegwirft, ist bei echten Spam-Mails sowieso wurscht - der Absender interessiert sich überhaupt nicht dafür.
Man handelt sich mit diesem Mechanismus aber zusätzliche Komplexität ein: Der Mailserver muss die temporär abgewiesenen Mails irgendwie verwalten, muss nachhalten, ob es sich bei neuen Mails um Retries oder tatsächlich neue Mails handelt (das ist bei mehreren ausgehenden MXen nicht trivial), braucht ein Interface zum Benutzer zur Ablehnung/Annahme von temporär abgewiesenen Mails. Mein Bauchgefühl als Mail-Admin sagt mir, dass sich das nicht wirklich lohnt.

hoppala

asoedler
01.02.2011, 11:54
@cmds: Danke. Ich werde es lernen, und gleich von Anfang an ein Ignore setzen.

@hoppala: Dickes Dankeschön für die Meinung.

Ob in der Praxis ein wesentlicher Unterschied zum konventionellen Greylisting bemerkbar ist? Ketzerisch gesagt: Nein, denn der Vorschlag ist unabhängig davon, und kann mit konventionellem Greylisting kombiniert werden oder auch nicht.

Ich dachte, der Vorteil wäre, dass ich mich als Empfänger endlich trauen kann, Mails automatisiert oder schon an Hand der Kopfzeilen wegzuwerfen. Schließlich bekommt der Absender im Falle eines false positive den Grund der Ablehnung mit (vielleicht sogar mit einem Trick, wie der Mailfilter manuell umgangen werden kann), und kann einschreiten.

Der Absender interessiert sich überhaupt nicht dafür? Stimmt, solange es ein Spammer ist.

Ich tippe ja eigentlich darauf, dass es sich aus Sicht eines Admins tatsächlich nicht lohnt, und es deshalb nicht so gemacht wird. Der Nutzen liegt imho beim Empfänger: Wenn er sicher ist, dass nichts gelöscht wird, oder in seinem Spam-Ordner aus versehen vergraben wird, dann kann er wieder gut schlafen...

Artur

asoedler
01.02.2011, 12:32
Der Mailserver muss die temporär abgewiesenen Mails irgendwie verwalten, muss nachhalten, ob es sich bei neuen Mails um Retries oder tatsächlich neue Mails handelt (das ist bei mehreren ausgehenden MXen nicht trivial)

gleiche Message-ID: [ID filtered]
(abgesehen von allen Received: ) gleicher Mail-Header und gleicher Inhalt
Checksum von obigem in eine Datenbank, und bei Treffer der Checksum nochmal neu vergleichen

Das klappt prima, also auch für konventionelles Greylisting.
Wer bewusst Texte permutiert, ist mit Sicherheit spammer. Alles andere ist bei mir Stand 08/2010 ausgewertet: Ganz selten gibt es Mailserver, die die Message-ID: [ID filtered]


braucht ein Interface zum Benutzer zur Ablehnung/Annahme von temporär abgewiesenen Mails.
Der einfachste Vorschlag ist eine tägliche Liste der Spam-Mails, vom Spamfilter nach Gewichtung sortiert. Der Anwender sagt in seinem Mail Client "Antworten", kreuzt mit "X"en die Mails an, die er spannend findet, und schickt ab. Sobald seine Antwort beim Mailserver angekommen ist, gibt der Mailserver die (bereits gespeicherten) Mails zum Abruf frei.

Das ist zwar jetzt nicht super-komfortabel, aber es ist immerhin ein Anfang, mit dem jeder Mail-Client etwas anfangen kann.

Artur

alariel
02.02.2011, 15:39
Nunja... ich mache es mir da einfach.



hosts.deny (für die ganz harten Fälle wie z.B. APNIC )
-A MAILDROP -s ......0.0/7 -j REJECT --reject-with icmp-net-prohibited etc.pp. ( damit ist ein Admin ggf. informiert )
Blacklistprüfung bei Connect ( mit Ablehnung "Listed in ...BL" )


Was da dann noch durchkommt lasse ich von SA verwursten - da auf Clientseite eh "gearbeitet" werden muss geht's auch so nach Filterung auf X-Spam-Score, X-Spam: YES/NO oder, wenn das Mailprogramm das nicht beherrscht, auf den Subjectzusatz.
Nun habe ich zwar keine "Kunden" in dem Sinne (Familie, Freunde und Interessengruppen halt), aber selbst da könnte ich denen das An- und Abschalten der unterschiedlichen Blacklists gestatten (und auch den Schwellwert für SA festlegen lassen, was aktuell der Fall ist).
Ich bin damit auch in der glücklichen Lage zu sagen, dass ein Empfang von Mails aus den Bereichen LACNIC, AFRINIC und APNIC grundsätzlich nicht erwünscht ist (und wenn es Ausnahmen geben würde, könnte ich die entsprechenden Server immer noch aus den MX-Einträgen fischen und whitelisten).

NB: Natürlich, was durchkommt nehme ich damit erstmal an. aber es ist halt sehr wenig.

Für mich (und meinen "Kunden"kreis) hat sich diese - verhältnismäßig harte - Lösung als überaus geeignet erwiesen.
Oder anders, für mich sehe ich derzeit nicht den Vorteil, der den Aufwand wett machen würde...

Hippo
02.02.2011, 15:45
-A MAILDROP -s ......0.0/7 -j REJECT --reject-with icmp-net-prohibited etc.pp. ( damit ist ein Admin ggf. informiert )
...

Wie funktioniert das für Dummies?
Ich hab´Spamfighter und der knallt gefühlte 99% schon ins Nirvana. Aber die Sache mit dem zurückschicken gefällt mir. Würde ich gerne einbauen ...

alariel
02.02.2011, 15:56
Du bekommst PM, das würde hier nicht wirklich hingehören ;)
Nur soviel: Unter Windows geht das sicher nicht :>

asoedler
02.02.2011, 16:07
@alariel:

Ich fasse zusammen: Also dem Anwender die Verantwortung in den "klaren" Fällen abnehmen (was ich ja auch befürworte). Der Rest ist so wenig (und mittels SA so gut sortiert), dass der Anwender keine Gefahr läuft, dass false positive aus Versehen im Spam-Ordner versumpfen.

Umkehrschluss: Ich habe für mich zu wenig "klare" Fälle definiert, oder möchte ungern riskieren, dass gute Mails voreilig abgelehnt werden. Muss ich mal drüber nachdenken.

@Hippo:

Wenn ich richtig verstanden habe, lehnt alariel nur nach hosts.deny und nach Blacklist ab. Alles andere wird angenommen und (sortiert und gekennzeichnet) weitergeleitet. Er lehnt also nicht ab, wenn SpamAssassin zuschlägt.

Seine Lösung ist - für SpamAssassin-gefiltertes - gerade nicht, was ich vorschlage. Er filtert vorab die große Masse, und lehnt sie ab.

@alle:

Niemand möchte auf seinen geliebten Spamfilter verzichten. Also müsste das perfekte Werkzeug...

als Mailserver funktionieren, aber nichts endgültig annehmen
weiterreichen zum bisherigen Spamfilter
von dort wieder abgreifen, markieren für den zweit-Einwurf der Absender
weiterreichen zum letztendlichen Mailserver

Oder es müsste eine definierte Spamfilter-Schnittstelle geben:

als Mailserver funktionieren, vom bisherigen Spamfilter filtern lassen, markieren für den zweit-Einwurf
weiterreichen zum letztendlichen Mailserver


Artur

alariel
02.02.2011, 16:19
Was mich wieder dazu bringt, dass das doch ein recht großer Aufwand ist, der sicherlich nur bei entsprechendem Volumen überhaupt Sinn macht.

Weshalb ich Spam - unbeachtlich der bekannten Problematik - am liebsten im Grundsatz bekämpfe, und dafür meinen Server funktional schön klein halten kann. Mich k...t es ja schon an, überhaupt Blacklists und SpamAssassin verwenden zu müssen - lieber wäre es mir, man bräuchte sowas nicht ;)

Zum @alle:

Hier sehe ich prinzipbedingt einige Eingriffe in die Funktionsweise des MTA, die vielleicht machbar sind, mitunter so aber nicht gewollt.
Im Grunde ist einfaches Greylisting schon eine Krücke, denn eigentlich sollte ein MTA ja lediglich Mails entgegennehmen und zustellen.

Letztlich ist das auch eine Frage der Usability... wenn ich mir meinen Vater vorstelle, der in einer Mail, die er beantwortet, auch noch Kreuze an die richtige Stelle machen muss... hui.
Von daher wäre hier (auf, bzw. für die Userseite) eine reine IMAP/Weblösung wohl eher das Mittel der Wahl, dort liesse sich dann auch wesentlich leichter mit "Herdamit" - "Fottamit" - Buttons arbeiten.