Current time: 11-28-2024, 05:03 AM Hello There, Guest! (LoginRegister)


Post Reply 
Spam Mails in Junk Ordner per Maildrop oder Procmailrc
Author Message
STBaf Offline
Junior Member
*

Posts: 23
Joined: Jul 2007
Reputation: 0
Post: #1
Spam Mails in Junk Ordner per Maildrop oder Procmailrc
Hallo zusammen

ich habe jetzt nochmal eine etwas schwierigere Frage, hoffentlich/vielleicht kann mir jemand von euch helfen:

Vielleicht die Voraussetzungen vorweg: Ich benutze ISPCP RC2 auf einem Debian Etch in der groben Standardkonfiguration, heißt Courier IMAP und POP sowie Postfix als Mailserver.

Courier ist eigentlich 0815 konfiguriert, lediglich am Postfix habe ich minimale Änderungen vorgenommen (Aktivierung von TSL/SSL, Spamassasin als Content-Filter an den smtp Service drangehangen und ein AMAVIS zum Virenscannen über 127.0.0.1:10026 (oder 27, Post ist ja auch nicht so wichtig). Das funktioniert alles soweit prima, der Transport ist halt per virtual auf die /var/mail/virtual/domain/user Verzeichnisse, als Adresstabelle dient halt das Standard ISPCP Virtual File wo er beim Anlegen eines Mailaccounts einen neuen Eintrag vornimmt.

Folgendes möchte ich machen: Ich möchte gerne die Mails, die durch den Spamassassin als Content-Filter ja gelaufen sind per maildrop oder procmail (das soll mir schnuppe sein) für alle User analysieren und in einen Junk Ordner verschieben (der ggf. noch nicht beim User existiert). Der Spamassassin fügt die üblichen Header Zeilen in die Mail ein wonach ich per procmail/maildrop über regulären Ausdruck suchen kann. Soweit eigentlich recht einfach sollte man meinen, mit Sendmail hab ich sowas schon ein paar mal gebaut.

Allerdings bei Postfix bricht mir irgendwie der virtual-Transport bzw. procmail oder maildrop die Ohren. Ich habe das zwar alles soweit in der master.cf bzw. main.cf angelegt soweit mir bekannt ist und ich auch hier in anderen Beiträgen im Forum nachverfolgen kann, allerdings kommen die Mails dann nicht mehr beim User an wenn ich meine Settings aktiviere. An den entsprechenden Part aus der master.cf im Postfix werden Sie aber weitergereicht möchte ich behaupten, zumindex kann ich per "ps auxf" entsprechende Threads beobachten während er sortiert, und auch die Paramenter sehen nicht schlecht aus.

Folgendes ist bei mir konfiguriert:
Generell in der master.cf folgenden Eintrag um die Mails durch den Spamassassin zu bringen:
Code:
smtp      inet  n       -       -       -       -       smtpd
          -o content_filter=spamassassin
          -o receive_override_options=no_address_mappings
sowie etwas weiter unten:
Code:
spamassassin unix -     n       n       -       -       pipe
        user=spamassassin argv=/usr/bin/spamc -f -e
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Das funktioniert auch da ich ja nach dem Ausliefern über die Standard-Methode virtual sehe das der Spamassassin drübergerannt ist.

Nun möchte ich das filter und habe folgendes eingefügt:
Als Test mit Procmail in die main.cf:
Code:
virtual_transport = procmail
procmail_destination_recipient_limit = 1
und in die master.cf
Code:
#
# Procmail
#
procmail  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/procmail HOME=/var/mail
  DEFAULT=virtual/${nexthop}/${user}/

und als Test mit Maildrop (natürlich das von Procmail wieder entfernt vorher)
in die main.cf
Code:
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1
und in die master.cf
Code:
#
# Maildrop
maildrop  unix  -       n       n       -       -       pipe
   flags=DRhu user=vmail argv=/usr/bin/maildrop -w 80
   -d ${user}@${nexthop} ${sender} ${recipient} ${extension}
      ${user} ${nexthop}

bei beiden Versuchen habe ich vorher natürlich das übliche "virtual_transport = virtual" auskommentiert mit einer Raute.

Bei beiden Versuchen konnte ich wie gesagt sehen das procmail bzw. Maildrop aufgerufen wurde, allerdings kommt die Mail nicht in den Virtual-Userordner an. Procmail macht das vollständig kommentarlos nicht, bei Maildrop erhalte ich wenigstens noch einen Eintrag ins Syslog mit der Meldung "Home directory owned by wrong user." - Das scheints aber nicht zu sein da die /var/mail/virtual/domain/user Ordner alle vmail gehören - und das ist ja der User der bei Maildrop bzw. procmail von mir als Parameter gegeben wurde.

Das einzigste was ich nicht gemacht habe war ein Filteranweisung von procmail oder Maildrop anzulegen. Allerdings müßte er dann ja die Standard /etc/procmailrc oder /etc/maildroprc nehmen - und wenn diese leer sind bzw. nicht existieren müßte er die Mail doch ungefilter wie Sie ist wieder am Ende rausspucken und einsortieren ? Oder bin ich auf dem Holzweg ?

Etwas Hilfe wäre echt grade ganz nett - vielen Dank schonmal im Voraus!

Andre
10-18-2007 08:24 PM
Find all posts by this user Quote this message in a reply
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #2
RE: Spam Mails in Junk Ordner per Maildrop oder Procmailrc
Hallo Andre

ich denke, du hast
http://www.isp-control.net/forum/procmai...676-2.html gelesen... zumindest den Anfang...
auf der 2. Seite hats noch mehr Infos dazu. Vielleicht liegt's am DEFAULT=virtual... anstatt DEFAULT=/var/mail/virtual...

Und wenn du die procmailrc für die User oder Domains einzeln willst, dann halt den HOME= Parameter etwas anpassen.

Ich würde mal procmailrc mitloggen lassen

Gruss Joximu
10-19-2007 04:27 AM
Visit this user's website Find all posts by this user Quote this message in a reply
rbtux Offline
Moderator
*****
Moderators

Posts: 1,847
Joined: Feb 2007
Reputation: 33
Post: #3
RE: Spam Mails in Junk Ordner per Maildrop oder Procmailrc
ich würde das ja mit sieve und dovecot lösen....
10-19-2007 04:57 AM
Visit this user's website Find all posts by this user Quote this message in a reply
STBaf Offline
Junior Member
*

Posts: 23
Joined: Jul 2007
Reputation: 0
Post: #4
RE: Spam Mails in Junk Ordner per Maildrop oder Procmailrc
Inzwischen habe ich das, was ich gerne wollte (siehe meinen Initialtext oben) eingebaut bei mir und dachte mir, da bestimmt noch andere ggf. mal danach suchen, ich poste meine Lösung einmal fix hier zusammengefasst:

Also:

Gelöst habe ich es nun mit Procmail.
Als erstes natürlich Procmail installieren wer noch nicht hatte (z.B. bei Debian das Distri-Paket aus dem Stable).

Anschließend in der master.cd des Postfix folgendes einfügen:

Code:
#
# Procmail
#
procmail  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/procmail HOME=/var/mail/virtual/${nexthop}/${user}
  DEFAULT=/var/mail/virtual/${nexthop}/${user}

und anschließend in der main.cf des Postfix den Transport auf Procmail umbiegen. Hierzu den bestehenden Transport (bei mir z.B.) virtual auskommentieren oder löschen also quasi das hier tun:

Code:
# virtual_transport   = virtual

und dafür diese beiden Zeilen zufügen:

Code:
virtual_transport = procmail
procmail_destination_recipient_limit = 1

Somit ist Postfix vorkonfiguriert.

Anschließend die Procmail Regeln noch anlegen. Das kann man wahlweise im Maildir des Benutzers machen (also /var/mail/virtual/domain/username/.procmailrc) z.B. oder generell über die /etc/procmailrc die immer durchlaufen wird von procmail. Da ich meine Lösung (verschieben von Mails mit Spam-Erkennung vom Spamassasin) generell für alle User haben wollte, steht es bei mir im /etc/procmailrc, und die sieht so aus:

Code:
# LOGFILE="/var/log/procmail.log"
# VERBOSE=yes
#
MAILDIR=$DEFAULT
FORMAIL=/usr/bin/formail
SENDMAIL=/usr/sbin/sendmail

:0:
* ^X-Spam-Status: Yes
$DEFAULT/.Spam/

:0
$DEFAULT/
(wobei die ersten drei Zeilen bei Bedarf einkommentiert werden können wenn man am Anfang Logging möchte - wenn man das tut sollte man die /var/log/procmail.log einmal mit einem touch erzeugen und anschließend dafür sorgen das der procmail drauf schreiben kann. Procmail wird als vmail User gestartet, also entweder der Datei die passenden chmod Rechte geben oder die Datei per chown in den Besitz von vmail überführen (habe ich gemacht)).

Die Mails, die der Spamassasin dann als Spam erkannt hat werden in den Unterordner .Spam verschoben (wenn ein Benutzer den noch nicht hat wird er erzeugt). Wenn per IMAP auf das Postfach zugegriffen wird dran denken das man es noch abonnieren muss da es ja nicht im courierimapsubscribed File eingetragen wird.

Das grade genannte orientiert sich an einer ISPCP Installation die halbwegs der Grundinstallation entspricht (also courier imap, postfix, virtuelle Postfächer). Wie es bei Änderungen auf LDAP oder lokale Systembenutzer oder was immer sein müßte kann ich grade nicht sagen.

Das ganze basiert teilweise auch auf anderen Post's die hier zu finden sind im Forum, das hat mir sehr geholfen. Also allen die sich damit auch schonmal rumgeschlagen haben danke! :-)

Andre
10-31-2007 05:15 AM
Find all posts by this user Quote this message in a reply
BeNe Offline
Moderator
*****
Moderators

Posts: 5,899
Joined: Jan 2007
Reputation: 68
Post: #5
RE: Spam Mails in Junk Ordner per Maildrop oder Procmailrc
Danke für deinen Post!
Ist vielleicht auch was für Wiki...

Greez BeNe
10-31-2007 05:25 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)