Hallo, ich habe div. Blacklists im Einsatz (Sender/Content) und das funktioniert soweit ganz gut, aber leider gibt es immer wieder FalsePositives. Daher wollte ich nun eine Whitelist einsetzen, leider gelingt mir das nur teilweise, da ich immer volle Mailadressen brauche, ich will aber auch ganze Domains whitelisten, mein bisheriger Code sieht so aus: WHITELISTSENDER=whitelist-sender.txt FROM=`formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'` :0 * ? fgrep -i -m 1 -q $FROM -f $WHITELISTSENDER $HOME/Maildir/ kann mir jemand evtl. weiterhelfen. Danke Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
From: "Daniel Bauer"
ich habe div. Blacklists im Einsatz (Sender/Content) und das funktioniert soweit ganz gut, aber leider gibt es immer wieder FalsePositives.
Daher wollte ich nun eine Whitelist einsetzen, leider gelingt mir das nur teilweise, da ich immer volle Mailadressen brauche, ich will aber auch ganze Domains whitelisten, mein bisheriger Code sieht so aus:
WHITELISTSENDER=whitelist-sender.txt FROM=`formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'` :0 * ? fgrep -i -m 1 -q $FROM -f $WHITELISTSENDER $HOME/Maildir/
kann mir jemand evtl. weiterhelfen.
leider hab ich festgestellt, daß es manchmal funktioniert und manchmal nicht, ich verstehe es nicht. Wenn ich anschließend die Datei als Textdatei verfüttere funktioniert es korrekt: cat email.txt | formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//' | fgrep -im 1 -f whitelist-sender.txt der gleiche Code in der procmailrc führt nicht zum Erfolg, was mach ich falsch? WHITELISTSENDER=$HOME/whitelist-sender.txt :0 * ? (formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//' | fgrep -iqm 1 -f $WHITELISTSENDER) $HOME/Maildir/ Thx Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
From: "Daniel Bauer"
From: "Daniel Bauer"
ich habe div. Blacklists im Einsatz (Sender/Content) und das funktioniert soweit ganz gut, aber leider gibt es immer wieder FalsePositives.
Daher wollte ich nun eine Whitelist einsetzen, leider gelingt mir das nur teilweise, da ich immer volle Mailadressen brauche, ich will aber auch ganze Domains whitelisten, mein bisheriger Code sieht so aus:
WHITELISTSENDER=whitelist-sender.txt FROM=`formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'` :0 * ? fgrep -i -m 1 -q $FROM -f $WHITELISTSENDER $HOME/Maildir/
kann mir jemand evtl. weiterhelfen.
leider hab ich festgestellt, daß es manchmal funktioniert und manchmal nicht, ich verstehe es nicht. Wenn ich anschließend die Datei als Textdatei verfüttere funktioniert es korrekt:
cat email.txt | formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//' | fgrep -im 1 -f whitelist-sender.txt
der gleiche Code in der procmailrc führt nicht zum Erfolg, was mach ich falsch?
WHITELISTSENDER=$HOME/whitelist-sender.txt :0 * ? (formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//' | fgrep -iqm 1 -f $WHITELISTSENDER) $HOME/Maildir/
ich kann es zwar nicht erklären, aber es sieht so aus, als könnte procmail nicht mit der Pipe umgehen. Ich habe das ganze in ein Script verschoben und nun funktioniert es wie gewünscht. Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Die, 21 Sep 2010, Daniel Bauer schrieb:
Daher wollte ich nun eine Whitelist einsetzen, leider gelingt mir das nur teilweise, da ich immer volle Mailadressen brauche, ich will aber auch ganze Domains whitelisten, mein bisheriger Code sieht so aus:
WHITELISTSENDER=whitelist-sender.txt FROM=`formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'` :0 * ? fgrep -i -m 1 -q $FROM -f $WHITELISTSENDER $HOME/Maildir/
kann mir jemand evtl. weiterhelfen.
==== :0 * 1^0 ^From .*adresse@domain.tld * 1^0 ^From .*nochwer@anderedomain.tld * 1^0 ^From .*@ganzedomain.tld # ... $HOME/Maildir/ ==== ==== :0 INCLUDERC=$HOME/.procmail/whitelistrc $HOME/Maildir/ ==== Und in whitelistrc bel. viele Zeilen nach dem Muster: ==== * 1^0 ^From .*adresse@domain.tld * 1^0 ^From .*nochwer@anderedomain.tld # ... ==== Du solltest -Aübrigens nach dem Envelope-From (oder anderen Headern)-b filtern, das From: ist einfach zu oft gef-Aälscht.-b Die einzelen Zeilen sind gew. procmail Regexe (ab dem 1^0 eben). Achso, obiges hab ich so noch nicht ausprobiert, ich pack die Regel(n) und Aktionen mit in die rc-Datei, also: INCLUDERC=$HOME/.procmail/whitelistrc und ==== whitelistrc :0 * 1^0 ^From .*adresse@domain.tld * 1^0 ^From .*nochwer@anderedomain.tld # ... $HOME/Maildir/ ==== -dnh -- Well I wish you'd just tell me rather than try to engage my enthusiasm, because I haven't got one. -- Marvin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi David, From: "David Haller"
Am Die, 21 Sep 2010, Daniel Bauer schrieb:
Daher wollte ich nun eine Whitelist einsetzen, leider gelingt mir das nur teilweise, da ich immer volle Mailadressen brauche, ich will aber auch ganze Domains whitelisten, mein bisheriger Code sieht so aus:
WHITELISTSENDER=whitelist-sender.txt FROM=`formail -x From: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'` :0 * ? fgrep -i -m 1 -q $FROM -f $WHITELISTSENDER $HOME/Maildir/
kann mir jemand evtl. weiterhelfen.
==== :0 * 1^0 ^From .*adresse@domain.tld * 1^0 ^From .*nochwer@anderedomain.tld * 1^0 ^From .*@ganzedomain.tld # ... $HOME/Maildir/
das funktioniert einwandfrei.
==== :0 INCLUDERC=$HOME/.procmail/whitelistrc $HOME/Maildir/ ====
Und in whitelistrc bel. viele Zeilen nach dem Muster:
==== * 1^0 ^From .*adresse@domain.tld * 1^0 ^From .*nochwer@anderedomain.tld # ... ====
das funktionierte leider nicht. Wie ich ja schon geschrieben hatte, habe ich festgestellt, daß mein Problem nur wg. der Pipes zustande kam und ich es jetzt mit einem Script gelöst habe in dem der formail | sed | grep als Befehlt verarbeitet wird. Meine Frage ist, was ist "besser", der Ansatz von Dir ist etwas schwieriger zu pflegen (weil jedesmal der Befehl dazu muß), bzw. der grep in der Datei (Zeitaufwendiger?), dafür muß ich aber wirklich nur die Mailadresse eintragen.
Du solltest -Aübrigens nach dem Envelope-From (oder anderen Headern)-b filtern, das From: ist einfach zu oft gef-Aälscht.-b
Da muß ich Dir leider recht geben und ich habe nun auch schon die ersten negativen Erlebnisse mit meiner Whitelist, da ich auch mich selbst drin habe und nun jede Spam Mail von mich-gefälscht an mich durchgeht. Aber der Envelope-From ist nicht überall vorhanden, z.B. in den Listenmails :( Danke Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Don, 23 Sep 2010, Daniel Bauer schrieb:
From: "David Haller"
==== :0 * 1^0 ^From .*adresse@domain.tld * 1^0 ^From .*nochwer@anderedomain.tld * 1^0 ^From .*@ganzedomain.tld # ... $HOME/Maildir/
das funktioniert einwandfrei.
Gut. [..]
Wie ich ja schon geschrieben hatte, habe ich festgestellt, daß mein Problem nur wg. der Pipes zustande kam und ich es jetzt mit einem Script gelöst habe in dem der formail | sed | grep als Befehlt verarbeitet wird. Meine Frage ist, was ist "besser", der Ansatz von Dir ist etwas schwieriger zu pflegen (weil jedesmal der Befehl dazu muß), bzw. der grep in der Datei (Zeitaufwendiger?), dafür muß ich aber wirklich nur die Mailadresse eintragen.
Das formail+sed+grep ist recht "teuer", da 3 Programme gestartet werden müssen. Das mit der Pflege der Whitelist könntest du dir über ein Alias oder ein Makro im MUA machen. Wenn du die Whitelist so aufbaust: ==== :0 * 1^0 ... ###END_WHITELIST $HOME/Maildir/ ==== kannst du mit sed per script (oder ner bash-funktion) Adressen hinzufügen: ==== ~/bin/add_to_whitelist ==== #!/bin/sh test -z "$1" && exit 1 sed -i "/###END_WHITELIST/i\ * 1^0 From .*$1 " ~/.procmail/whitelistrc ==== Aufgerufen mit z.B. add_to_whitelist foo@example.tld wird diese Adresse als Filter auf Envelope-From hinzugefügt. Das Script könnte man noch aufpeppen, z.B. mit Optionen um auch einen Ersatz für das "From .*" angeben zu können bzw. diverse vorgefertigte (Envelope-From: Header, Sender, o.ä.).
Du solltest übrigens nach dem Envelope-From (oder anderen Headern) filtern, das From: ist einfach zu oft gefälscht.
Da muß ich Dir leider recht geben und ich habe nun auch schon die ersten negativen Erlebnisse mit meiner Whitelist, da ich auch mich selbst drin habe und nun jede Spam Mail von mich-gefälscht an mich durchgeht. Aber der Envelope-From ist nicht überall vorhanden, z.B. in den Listenmails :(
Die filter ich (vor dem Spamfilter) sowieso direkt anhand der List-Id und/oder dem Envelope-From. Bei den opensuse MLs mach ich's mir besonders einfach: :0 H: * ^X-Mailinglist: *\/opensuse.* $MATCH Und viele Listen haben auch eindeutige Envelope-From, ggfs. auch als 'Envelope-From: ' oder 'X-Envelope-From: ', je nach MTA. opensuse-de ist z.B. eindeutig (guck einfach mal in den Header ;) HTH, -dnh -- "Ich habe überhaupt keine Hoffnung mehr in die Zukunft unseres Landes, wenn einmal unsere Jugend die Männer von morgen stellt. Unsere Jugend ist unerträglich,unverantwortlich und entsetzlich anzusehen" -- Aristoteles -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Servus David, From: "David Haller"
Am Don, 23 Sep 2010, Daniel Bauer schrieb:
From: "David Haller"
==== :0 * 1^0 ^From .*adresse@domain.tld * 1^0 ^From .*nochwer@anderedomain.tld * 1^0 ^From .*@ganzedomain.tld # ... $HOME/Maildir/
das funktioniert einwandfrei.
Gut.
[..] Das formail+sed+grep ist recht "teuer", da 3 Programme gestartet werden müssen. Das mit der Pflege der Whitelist könntest du dir über ein Alias oder ein Makro im MUA machen.
das hatte ich befürchtet ;)
[..]
Du solltest übrigens nach dem Envelope-From (oder anderen Headern) filtern, das From: ist einfach zu oft gefälscht.
Da muß ich Dir leider recht geben und ich habe nun auch schon die ersten negativen Erlebnisse mit meiner Whitelist, da ich auch mich selbst drin habe und nun jede Spam Mail von mich-gefälscht an mich durchgeht. Aber der Envelope-From ist nicht überall vorhanden, z.B. in den Listenmails :(
Die filter ich (vor dem Spamfilter) sowieso direkt anhand der List-Id und/oder dem Envelope-From. Bei den opensuse MLs mach ich's mir besonders einfach:
:0 H: * ^X-Mailinglist: *\/opensuse.* $MATCH
Und viele Listen haben auch eindeutige Envelope-From, ggfs. auch als 'Envelope-From: ' oder 'X-Envelope-From: ', je nach MTA. opensuse-de ist z.B. eindeutig (guck einfach mal in den Header ;)
ja, ich weiß und nutze das auch schon für diverse Listen (Debian, XEN uvm.). Aber ich brauche natürlich einen Header der immer da ist, damit ich nicht etwas durchlasse, was schlecht und nichts filtere, was gut ist. Ich habe die Header von div. Clients/Programmen angesehen (Outlook, Capisuite, Squirrelmail) und bei allen ist nur das From und der ReturnPath konstant. Es ist einfach zum kotzen mit dem Müll :( Danke für Deine Hilfe und Anregungen Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
Daniel Bauer
-
David Haller