postfix + procmail + spamassassin + cyrus

Pagina: 1
Acties:

  • riotrick
  • Registratie: Mei 2002
  • Laatst online: 08:01
Ik heb een werkende setup van postfix + cyrus. Ik probeer hier spamassassin als spamfilter aan toe te voegen. Om dit te realiseren gebruik ik procmail om mail door spamassassin te filteren.

in main.cf van postfix staat de volgende regel:
code:
1
mailbox_transport = cyrus


in de master.cf van postfix het volgende:
code:
1
2
cyrus     unix  -       n       n       -       -       pipe
  flags=R user=cyrus argv=/usr/bin/procmail -m -p USER=${user}EXTENSION=${extension} /etc/procmailrc


en /etc/procmailrc:
code:
1
2
3
4
5
6
LOGFILE="/var/log/procmail/procmail.log"
IMAP="/usr/sbin/cyrdeliver -m user.$USER -e $EXTENSION $USER"
VERBOSE=on

:0
|$IMAP


Tot zover werkt het. Mail wordt nu via procmail in de juiste mailbox gedropped.
stukje log wat je krijgt:
code:
1
2
3
4
5
6
procmail: [25147] Thu Oct 23 14:46:10 2003
procmail: Assigning "LASTFOLDER=/usr/sbin/cyrdeliver -m user.rick -e rick"
 Subject: bar456
  Folder: /usr/sbin/cyrdeliver -m user.rick -e rick                 507
procmail: [25147] Thu Oct 23 14:46:10 2003
procmail: Executing "/usr/sbin/cyrdeliver,-m,user.rick,-e,rick"


Als ik nu in de procmailrc aanpas om mail door spamassassin te filteren dan komt de mail niet meer aan. Ik zie de boel wel langskomen in de procmail log, maar de mail komt niet in de mailbox terecht.

hier de aangepaste procmailrc:
code:
1
2
3
4
5
6
7
8
9
LOGFILE="/var/log/procmail/procmail.log"
IMAP="/usr/sbin/cyrdeliver -m user.$USER -e $EXTENSION $USER"
VERBOSE=on

:0fw
| /usr/bin/spamc

:0
|$IMAP


en de log:
code:
1
2
3
4
5
6
7
8
9
procmail: [25077] Thu Oct 23 14:44:39 2003
procmail: Executing "/usr/bin/spamc"
procmail: [25077] Thu Oct 23 14:44:45 2003
procmail: Assigning "LASTFOLDER=/usr/sbin/cyrdeliver -m user.rick -e rick"
From rick@schippers.linie  Thu Oct 23 14:44:45 2003
 Subject: *****SPAM***** bar123
  Folder: /usr/sbin/cyrdeliver -m user.rick -e rick                1446
procmail: [25077] Thu Oct 23 14:44:45 2003
procmail: Executing "/usr/sbin/cyrdeliver,-m,user.rick,-e,rick"


Heeft iemand een idee wat hier mis gaat?

Facebook :: Twitter :: PSN


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

maakt cyrdeliver geen logs aan in /var/log/mail of eventueel /var/log/cyrus? Zo nee, kijk even door /var/log/daemon en /var/log/syslog. Vaak staat er in wat er misgaat.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 16:55
Welke versie van Cyrus gebruik je hier? Als je 2.x gebruikt, zou ik je afraden om het op deze manier te doen.

In de source tarball van spamassassin zit een bestandje spamcheck.py, deze naar bijvoorbeeld usr/bin kopieren en python installeren.
Vervolgens een regeltje aanmaken waarbij postfix via spamcheck.py aflevert.
Spamcheck.py kan je instellen dat ie via LMTP naar Cyrus 2.x aflevert.

Uiteindelijk komt alle mail in je mailbox terecht met een X-Spam-Flag: Yes eraan als dit spam is. so far so good, maar jij wilt filteren. Op het moment dat mail binnenkomt via hetzij cyrdeliver, hetzij LMTP bij Cyrus 2.x, gaat Sieve eroverheen, sieve is just another filter extentie, speciaal voor Cyrus gemaakt, en werkt IMHO een stuk beter dan procmail. Filters kan je instellen met de cyrus webadmin, of met de avelsieve plugin voor squirrelmail.

Hopelijk heb je hier wat aan, tis zeker de moeite waard om dit uit te zoeken.

  • riotrick
  • Registratie: Mei 2002
  • Laatst online: 08:01
Ik gebruik Cyrus imap 2.1. Maar het probleem is inmiddels opgelost. Het probleem zat hem erin dat wanneer je de mail door spamassassin heen piped, dat procmail dan een From envelope header toevoegd. Cyrdeliver accepteert deze header niet. Nu heb haal ik met formail deze from enevelope header eruit en ook heb ik de cyrdeliver regel iets opgeschoond. Mijn procmailrc ziet er nu als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
LOGFILE="/var/log/procmail/procmail.log"
IMAP="/usr/sbin/cyrdeliver -e $EXTENSION $USER"
VERBOSE=on

:0fw
* < 256000
| /usr/bin/spamc

:0fw
| /usr/bin/formail -I 'From ' -b

:0
|$IMAP

Facebook :: Twitter :: PSN


  • riotrick
  • Registratie: Mei 2002
  • Laatst online: 08:01
Ik zie net dat die From envelope header door spamassassin wordt gegenereerd. En die kan je met een command line switch op spamd ook uitzetten. Dus daarmee kan de formail regel ook weer uit m'n procmailrc verwijderd worden.

-F 0 | 1

Ensure that the output email message either always starts with a 'From ' line (1) for UNIX mbox for­mat, or ensure that this line is stripped from the output (0). (default: 1)

Facebook :: Twitter :: PSN