PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : .procmailrc nutzt blacklist nicht mehr



Easyy-S
15.07.06, 23:49
Ich habe irgendwann mal eine .procmailrc eingerichtet, die immer problemlos funktioniert hat. Irgendwann trat dann das Problem auf, daß meine blacklist, in der diverse Domains zum filtern eingetragen sind, nicht mehr ausgelesen wird.

SUSE 9.2
postfix
spamassassin

Ein Auszug aus meiner .procmailrc

BLACKLIST=$HOME/procmail/blacklist
BLACKDIR=$HOME/procmail/blackmails
FROM=`formail -x From:`
FGREP=/usr/bin/fgrep
:0E
* ? (echo "$FROM" | $FGREP -i -f $BLACKLIST)
$BLACKDIR

Trage ich in die blacklist eine domain zum filtern ein, werden mir die mails von der eingetragenen Absenderdomain dennoch zugestellt.

Hat dafür zufällig jemand eine Erklärung ?
Ich verzweifel an der Sache inzwischen.

Das die .procmailrc grundlegend gentuzt wird kann ich daran ersehen, daß meine dort eingetragene Weiterleitung funktioniert.

Diozaka
16.07.06, 12:51
Welche Regel steht denn vor der hier geposteten? Schließlich werden :0E-Recipes nur dann ausgeführt, wenn die Regel davor keinen Treffer erzielt hat. Vielleicht liegt da der Fehler?

Du könntest auch vorübergehend Verbose-Logging aktivieren und das Logfile überprüfen:
LOGFILE=$HOME/procmail/log
VERBOSE=yes


MfG, Diozaka

Easyy-S
16.07.06, 13:32
Zu deiner Frage, was vor den obigen Regeln steht.
Die blacklist kommt direkt nach der whitelist.
Alle anderen Regeln kommen danach.

Ich habe den Fehler jedoch inzwischen gefunden.

In der /etc/passwd hab ich bei dem entsprechenden user "/bin/bash" in "/bin/false" geändert.
Dann kann fgrep jedoch nicht mehr ausgeführt werden :(
Alle anderen Regeln in der .procmailrc funktionieren. Nur die blacklist nicht.

Es kann doch nicht sein, daß ich dem Benutzer den login auf die shell, mittels /bin/false nicht verwehren kann.
Dafür muss es doch eine Lösung geben !

Diozaka
16.07.06, 15:10
Das Problem dürfte die Pipe sein, denn:

If any of the characters in SHELLMETAS appears in the line specifying a filter or program, the line will be fed to $SHELL instead of being executed directly.und SHELLMETAS ist per Default auf &|<>~;?*[ gesetzt. Aus diesem Grund wird eine Shell benötigt.

So sollte es ohne auch ohne Shell klappen (ungetestet!):


BLACKLIST=$HOME/procmail/blacklist
BLACKDIR=$HOME/procmail/blackmails
FROM=`formail -x From:`
FGREP=/usr/bin/fgrep
:0E
* ? $FGREP -i -q "$FROM" $BLACKLIST
$BLACKDIR

MfG, Diozaka

Easyy-S
16.07.06, 18:18
Schade, schade, schade.
So wie von dir beschrieben funktioniert es leider nicht.
Aber was schonmal viel wert ist, daß du mir schonmal die Richtung gezeigt hast, in die ich suchen muss.
Dafür schonmal ein riesen dankeschön.

Wenn du noch weitere Ideen hast, immer her damit :)
Teste es gerne aus.

Diozaka
16.07.06, 18:53
OK, next try, vielleicht so?


BLACKLIST=$HOME/procmail/blacklist
BLACKDIR=$HOME/procmail/blackmails
FGREP=/usr/bin/fgrep
:0E
* ^From:\/.*
* ? $FGREP -i -q "$MATCH" $BLACKLIST
$BLACKDIR

:)

MfG, Diozaka

Easyy-S
17.07.06, 05:54
Das führt leider auch nicht zum Erfolg.
( "easyy-s@online.de" ist meine Testadresse von extern. )


procmail: Assigning "MATCH="
procmail: Matched " easyy-s@online.de"
procmail: Match on "^From:\/.*"
procmail: Executing "/usr/bin/fgrep,-i,-q, easyy-s@online.de,/home/testuser/procmail/blacklist"
procmail: Non-zero exitcode (1) from "/usr/bin/fgrep"
procmail: No match on "/usr/bin/fgrep -i -q easyy-s@online.de /home/testuser/procmail/blacklist"

Easyy-S
17.07.06, 06:16
Ich hab den Fehler gefunden :) :) :)

Wenn man schon so viele Lektüren hat, sollte man auch mal einen Blick dort reinwerfen :D

In meinem "SpamAssassin" von "O'Reilly" hab ich einen wichtigen Eintrag für die .procmailrc gefunden:


SHELL=/bin/sh

Diesen Eintrag habe ich in meinen rcfile eingefügt, dann in der /etc/passwd dem Benutzer den login an die bash mittels "/bin/false" verwehrt.

Was soll ich sagen ? Es klappt :)



Vielen, vielen dank für deine tatkräftige Hilfe.
Durch deine Hinweise habe ich erst den Weg in die richtige Richtung gefunden !

Diozaka
17.07.06, 11:33
Vielen, vielen dank für deine tatkräftige Hilfe.
Durch deine Hinweise habe ich erst den Weg in die richtige Richtung gefunden !Gern geschehen, procmailrc schreiben macht mir irgendwie Spaß. ;)

Nur zur Info, wenn man
* ^From:\/.* durch
* ^From: \/.* ersetzt, klappt auch meine Version. Dann muss aber auch die gesamte Absenderzeile übereinstimmen.

MfG, Diozaka