Fetchmail procmail cyrus und wie Virenscanner einbinden

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
antorox
Posts: 26
Joined: 2005-10-15 17:57

Fetchmail procmail cyrus und wie Virenscanner einbinden

Post by antorox » 2005-10-17 19:27

Hi,

habe folgende Konfiguration: Fetchmail holt die mails ab, procmail sortiert sie und gibt sie per deliver an cyrus weiter.Soweit ich das verstanden habe kommt da postfix gar nicht ins Spiel ? Oder doch ? Bei ausgehenden Mails per smtp sendet postfix.

Auf Spam kontrolliere ich die Mails per procmail. Dort binde ich verschiedene Spamprogramme ein. Procmail legt die Mails dann in die Cyrus Imap Boxen.

Bloss wo binde ich jetzt und wie den Virenscanner ein ?

Es ist doch so daß postfix die eingehenden Mails gar nicht zu Gesicht bekommt, da Sie ja nicht per smtp ankommen, sondern per fetchmail beim Provider abgeholt werden ??? Oder verstehe ich da was falsch ?

Mails sollen übrigens eingehend und ausgehend nach Viren kontrolliert werden.

Ich habe bis jetzt nur How To s mittels Amavis gefunden, den man direkt in Postfix einbindet. Doch das klappt bei mir doch nicht wegen fetchmail/procmail oder ????

Eigentlich soll das alles so ablaufen:

mailaccount(gmx)->fetchmail->postfix(->virenscanner)->procmail->spamfilter ->proprocmail->deliver->cyrus

hier meine fetcmailrc:

poll pop.gmx.net protocol pop3 user antorox@gmx.net password geheim mda "/usr/bin/procmail ~/.procmailrc"

hier die main.cf:

mailbox_command = /usr/bin/procmail -t -a $EXTENSION
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

hier procmailrc:

# Das Logfile, in das Fehlermeldungen etc. geloggt werden
#
LOGFILE=/var/log/procmail

# deliver sortiert die Mails in die Cyrus-Mailboxen ein
#
DELIVERMAIL="/usr/lib/cyrus-imapd/deliver"

# Kurznamen" fuer einige Zustellbefehle
#
IMAP="$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME"

# Zustellung in die INBOX des Users:
#
:0 w
| /bin/sed 1d | $IMAP

----

Irgendwo ist doch der Haken ;-)

Eigentlich müsste ich doch in fetchmail einfach nur nachpostfix leiten, also procmail rausnehmen :)

Dann ist dasss doch hier doppelt gemoppelt oder:

mailbox_command = /usr/bin/procmail -t -a $EXTENSION
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

???

Am besten dass hier raus oder:

mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

un dann ganz normal in procmail per deliver zu cyrus:

DELIVERMAIL="/usr/lib/cyrus-imapd/deliver"

usw. ....

Ist das ungefähr richtig ???

Weil im Moment läuft das so ab:

ct 17 01:38:52 base lmtpunix[1968]: executed
Oct 17 01:38:53 base lmtpunix[1968]: accepted connection
Oct 17 01:38:53 base lmtpunix[1968]: lmtp connection preauth'd as postman
Oct 17 01:38:53 base lmtpunix[1968]: IOERROR: fstating sieve script /var/lib/imap/sieve/a/antorox/defaultbc: No such file or directory
Oct 17 01:38:53 base lmtpunix[1968]: duplicate_check: <499626472.20051017013824@oleco.net> user.antorox 0
Oct 17 01:38:53 base lmtpunix[1968]: mystore: starting txn 2147483664
Oct 17 01:38:53 base lmtpunix[1968]: mystore: committing txn 2147483664
Oct 17 01:38:53 base lmtpunix[1968]: duplicate_mark: <499626472.20051017013824@oleco.net> user.antorox 1129505933 9
Oct 17 01:38:59 base master[1969]: about to exec /usr/lib/cyrus-imapd/imapd


und in der procmail log:

Subject: test
Folder: /usr/lib/cyrus-imapd/deliver -a antorox -m user.antorox 1375


cya

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Fetchmail procmail cyrus und wie Virenscanner einbinden

Post by Roger Wilco » 2005-10-17 20:10

antorox wrote:Bloss wo binde ich jetzt und wie den Virenscanner ein ?
Mit amavisd-new zum Beispiel. Oder als content_filter in Postfix. Oder über eine Pipe aus procmail heraus. Oder...
antorox wrote:Es ist doch so daß postfix die eingehenden Mails gar nicht zu Gesicht bekommt, da Sie ja nicht per smtp ankommen, sondern per fetchmail beim Provider abgeholt werden ??? Oder verstehe ich da was falsch ?
Das kommt auf deine Konfiguration an. Du kannst die Mails aus fetchmail direkt an einen MDA (z. B. procmail) weitergeben. Wenn du das nicht eingerichtet hast, werden die Mails über den MTA verschickt.
antorox wrote:Ich habe bis jetzt nur How To s mittels Amavis gefunden, den man direkt in Postfix einbindet. Doch das klappt bei mir doch nicht wegen fetchmail/procmail oder ????
Wieso sollte das nicht gehen?
antorox wrote:Dann ist dasss doch hier doppelt gemoppelt oder:
Ja. mailbox_transport hat Präzedenz über mailbox_command.

antorox
Posts: 26
Joined: 2005-10-15 17:57

Re: Fetchmail procmail cyrus und wie Virenscanner einbinden

Post by antorox » 2005-10-17 20:32

Roger Wilco wrote: Mit amavisd-new zum Beispiel.
Gute idee, also ich nehm hier das mit procmail raus, um amavisd-new direkt in postfix einzubinden, oder ?

poll pop.gmx.net protocol pop3 user antorox@gmx.net password geheim mda "/usr/bin/procmail ~/.procmailrc"
Roger Wilco wrote: ....werden die Mails über den MTA verschickt.
davon gehe ich dann aus, also hat Sie postfix und gibt sie jetzt so weiter:

mailbox_command = /usr/bin/procmail -t -a $EXTENSION

weil daß hier erübrigt sich doch sowieso siehe meine jetzige fetchmailrc und überhaupt wenn ich es später auskommentiere nachdem ich die fetchmailrc geändert habe:

mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

weil ich habe doch in der procmail dass:

DELIVERMAIL="/usr/lib/cyrus-imapd/deliver"

????

hat doch vorher auch so geklappt oder ????

fetchmail:

poll pop.gmx.net protocol pop3 user antorox@gmx.net password geheim mda "/usr/bin/procmail ~/.procmailrc"

da wurde doch postfix eh übergangen ???
-----
und jetzt hat durch den Eintrag:

mailbox_command = /usr/bin/procmail -t -a $EXTENSION

ohne:

mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

procmail die Mail und gibt sie so:
DELIVERMAIL="/usr/lib/cyrus-imapd/deliver"

an cyrus per deliver weiter

:)

währe schön wenn es klappt, oder ist hier n denkfehler ?

cya

PS:

der log macht mich stutzig:

ct 17 01:38:52 base lmtpunix[1968]: executed
Oct 17 01:38:53 base lmtpunix[1968]: accepted connection
Oct 17 01:38:53 base lmtpunix[1968]: lmtp connection preauth'd as postman
Oct 17 01:38:53 base lmtpunix[1968]: IOERROR: fstating sieve script /var/lib/imap/sieve/a/antorox/defaultbc: No such file or directory
Oct 17 01:38:53 base lmtpunix[1968]: duplicate_check: <499626472.20051017013824@oleco.net> user.antorox 0
Oct 17 01:38:53 base lmtpunix[1968]: mystore: starting txn 2147483664
Oct 17 01:38:53 base lmtpunix[1968]: mystore: committing txn 2147483664
Oct 17 01:38:53 base lmtpunix[1968]: duplicate_mark: <499626472.20051017013824@oleco.net> user.antorox 1129505933 9
Oct 17 01:38:59 base master[1969]: about to exec /usr/lib/cyrus-imapd/imapd


sieht doch nach dem hier aus und nen IO Error ist auch drin. Die mails kommen aber in der cyrus mailbox an:

mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: Fetchmail procmail cyrus und wie Virenscanner einbinden

Post by flo » 2005-10-17 21:30

http://www.rootforum.org/forum/viewtopic.php?t=37166

In dem Thread hatte ich gesagt, es wäre besser den fetchmail nicht direkt an procmail, sondern an postfix zu liefern - jetzt hast Du eine Anwendung und einen Grund dafür.

flo.

antorox
Posts: 26
Joined: 2005-10-15 17:57

Re: Fetchmail procmail cyrus und wie Virenscanner einbinden

Post by antorox » 2005-10-17 21:37

Hi,

okidoki, ich mach mich ran und werde berichten ;-)

cya

antorox
Posts: 26
Joined: 2005-10-15 17:57

Re: Fetchmail procmail cyrus und wie Virenscanner einbinden

Post by antorox » 2005-10-17 23:03

Hi,

hm läuft wie am schnürchen ..., komisch siehe auch von "flo" genannten thread" und meinen Ã?nderungen mit den Rechten etc. ...

fetchmailrc:

poll pop.gmx.net proto pop3 user antorox@gmx.net with pass geheim is antorox here

main.cf (auszug):

mailbox_command = /usr/bin/procmail -t -a $EXTENSION

procmailrc:

# Das Logfile, in das Fehlermeldungen etc. geloggt werden
#
LOGFILE=/var/log/procmail

# deliver sortiert die Mails in die Cyrus-Mailboxen ein
#
DELIVERMAIL="/usr/lib/cyrus-imapd/deliver"

# Kurznamen" fuer einige Zustellbefehle
#
IMAP="$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME"

# Zustellung in die INBOX des Users:
#
:0 w
| /bin/sed 1d | $IMAP

:)

master.cf (auszug)

#
# The Cyrus deliver program has changed incompatibly, multiple times.
#
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
cyrus unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}


cyrus.conf (auszug)

# at least one LMTP is required for delivery
# lmtp cmd="lmtpd" listen="lmtp" prefork=0
lmtpunix cmd="lmtpd -a" listen="/var/lib/imap/socket/lmtp" prefork=0

mailog:

Oct 17 22:50:02 base postfix/smtpd[3967]: connect from base.base.local[127.0.0.1]
Oct 17 22:50:02 base postfix/smtpd[3967]: 622518C62C: client=base.base.local[127.0.0.1]
Oct 17 22:50:02 base postfix/cleanup[3970]: 622518C62C: message-id=<985385934.20051017224904@hardtekk.org>
Oct 17 22:50:02 base postfix/qmgr[3865]: 622518C62C: from=<cIrox@hardtekk.org>, size=1530, nrcpt=1 (queue active)
Oct 17 22:50:02 base postfix/smtpd[3967]: disconnect from base.base.local[127.0.0.1]
Oct 17 22:50:03 base master[3976]: about to exec /usr/lib/cyrus-imapd/lmtpd
Oct 17 22:50:04 base lmtpunix[3976]: executed
Oct 17 22:50:04 base lmtpunix[3976]: accepted connection
Oct 17 22:50:04 base lmtpunix[3976]: lmtp connection preauth'd as postman
Oct 17 22:50:04 base lmtpunix[3976]: duplicate_check: <985385934.20051017224904@hardtekk.org> user.antorox 0
Oct 17 22:50:05 base lmtpunix[3976]: mystore: starting txn 2147483650
Oct 17 22:50:05 base lmtpunix[3976]: mystore: committing txn 2147483650
Oct 17 22:50:05 base lmtpunix[3976]: duplicate_mark: <985385934.20051017224904@hardtekk.org> user.antorox 1129582204 17
Oct 17 22:50:05 base postfix/local[3971]: 622518C62C: to=<antorox@localhost.base.local>, orig_to=<antorox@localhost>, relay=local, delay=3, status=sent (delivered to command: /usr/bin/procmail -t -a $EXTENSION)
Oct 17 22:50:05 base postfix/qmgr[3865]: 622518C62C: removed

procmaillog:

From cIrox@hardtekk.org Mon Oct 17 22:50:02 2005
Folder: /bin/sed 1d | $IMAP 1651



Kann ich jetzt davon ausgehen, dass das nach meinen Wünschen läuft ?

mailaccount(gmx)->fetchmail->postfix(hier jetzt virenscanner einbinden!!)->procmail(hier spamfilter einbinden !!! und in die mailboxen sortieren) ->deliver->cyrus

cya

PS: Was ich noch nicht ganz raffe ist warum ich in cyrus das hier aktivieren muss und ausgerechnet postfix siehe maillog dieses nimmt,es weiß doch an der Stelle noch garnichts von cyrus, schließlich wandert die mail noch zu procmail und dort erst wird über deliver zu cyrus transportiert ....

lmtpunix cmd="lmtpd -a" listen="/var/lib/imap/socket/lmtp" prefork=0

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: Fetchmail procmail cyrus und wie Virenscanner einbinden

Post by flo » 2005-10-18 11:40

antorox wrote:From cIrox@hardtekk.org Mon Oct 17 22:50:02 2005
Folder: /bin/sed 1d | $IMAP 1651

Kann ich jetzt davon ausgehen, dass das nach meinen Wünschen läuft ?
Wenn es auch alles ankommt, dann ja ...
antorox wrote:PS: Was ich noch nicht ganz raffe ist warum ich in cyrus das hier aktivieren muss und ausgerechnet postfix siehe maillog dieses nimmt,es weiß doch an der Stelle noch garnichts von cyrus, schließlich wandert die mail noch zu procmail und dort erst wird über deliver zu cyrus transportiert ....

lmtpunix cmd="lmtpd -a" listen="/var/lib/imap/socket/lmtp" prefork=0
fetchmail gibt die Mail an Deinen lokalen MTA weiter - von da aus wird mit Deinen GMX-Mails verfahren wie mit jeder anderen Mail auf dem System auch.

Deliver gibt seit den neuen Versionen standardmäßig über lmtp weiter, deshalb auch das Rechteproblem, für das aber chmod 777 nicht unbedingt eine Lösung ist - besser wäre es die Gruppen anzupassen, das machst du, wenn Du statt mailbox_command den mailbox_transport (cyrus) setzt - hier wird dann der procmail als cyrus ausgeführt und also auch der deliver.

Spamfilterung im procmail ist durchaus statthaft, aber wenn Du z.B. amavis einsetzt, dann kannst Du dort gleich z.B. spamassassin einbinden. Das macht die Anzahl der Zwischenschritte etwas kleiner.

flo.