menü

status

online seit 6643 tagen
letztes update am
28. November, 14:45

kalender

Dezember 2006
Mo
Di
Mi
Do
Fr
Sa
So
 
 
 
 
 1 
 3 
 5 
 6 
 7 
 8 
 9 
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
27
28
29
30
 

aktuelles

Ich lebe noch!
nighthawk - 28.11. 14:45
Nach langer Zeit ...
nighthawk - 04.10. 23:09
Lösungen vom draufgucken
nighthawk - 27.02. 22:30
Mal 'was neues
nighthawk - 26.01. 22:29
Ganz Münster auf dem Aasee
nighthawk - 11.01. 20:17

historisches

suche

 

buttonmania

xml version of this page

paRSS - Feews! for the rest of us

startseite > Dienstag, 26.12.2006


Dienstag, 26. Dezember 2006

SpamAssassin als Milter


weihnachtszeit, ferienzeit.. nachdem diverse renovierungsarbeiten in der wohnung erledigt waren, hatte ich mal wieder etwas zeit. mich hatte schon laenger die milter schnittstelle in postfix gereizt, weil es damit ja theoretisch moeglich sein muesste spam noch im smtp dialog abzuweisen, statt diesen erst nachtraeglich in spam ordner zu sortieren. als ich postfix seinerzeit installiert hatte, gab es die milter schnittstelle noch nicht.. als sie dann vor einem knappen halben jahr in den stable releases verfuegbar wurde, gab es noch keine ordentlichen anleitungen und es funktionierte auch noch lange nicht jedes milter programm mit postfix zusammen. es wurde also mal wieder zeit eine kleine recherche zu starten, was es so gibt und was funktionieren koennte. folgende programme habe ich finden koennen: MIMEDefang, milter-spamc, smtp-vilter und spamass-milter.
  • MIMEDefang erschien mir fuer mein kleines vorhaben als etwas zu gross
  • milter-spamc sieht ziemlich vielversprechend aus, scheint auch genau das zu koennen was ich brauche, ist aber leider nicht in den freebsd ports vorhanden, sonst waere das wohl das mittel meiner wahl geworden
  • zu smtp-vilter habe ich keinen downloadlink finden koennen.. das programm scheint kommerziell zu sein und kann zudem auch wieder mehr als ich brauche
  • bleibt also nur spamass-milter.. opensource, einfach zu findender downloadlink und es funktioniert angeblich auch mit postfix
also auf ans werk. der port laesst sich naturgemaess ziemlich einfach installieren und die tatsache, dass er sendmail vorraussetzt laesst sich dadurch umschiffen, dass im freebsd base system immer ein sendmail enthalten ist. nun ging es ans konfigurieren. nach etwas rumprobieren und googlerecherche haben sich die folgenden rc.conf eintraege als bei mir passend erwiesen..

spamass_milter_enable="YES"
spamass_milter_socket="/tmp/spamass-milter.sock"
spamass_milter_flags="-f -p ${spamass_milter_socket} -r 7 -m -a -- -u spamd"
spamass_milter_socket_owner="spamd"
spamass_milter_socket_group="postfix"
spamass_milter_socket_mode="664"

zeile 1: aktivieren
zeile 2: eigentlich unwichtig, aber alle meine sockets liegen in /tmp
zeile 3: -f = fork into background, -p sollte ersichtlich sein, -r 7 = ab 7.0 spampunkten mail rejecten, -m = mailbody nicht veraendern (wichtig, denn das kann die postfix milterschnittstelle nicht!), -a mail von smtp-auth verbindungen ignorieren ("WITH_ADDAUTH_PATCH=yes" beim compilen nicht vergessen) und -- (ab hier optionen an spamc weiterreichen) -u spamd = spamc unter dem user spamd starten, so ist das bei mir naemlich konfiguriert, da ich die meissten mails an virtuelle postfaecher zustelle, sprich keine wirklichen systemuser existieren
zeile 4: ist eigentlich egal, sollte nur ein gueltiger systemuser sein
zeile 5: das ist wichtig, denn sonst kommt postfix nicht an das socket
zeile 6: hier ist g+w wichtig, denn in der defaulteinstellung kann die gruppe nicht auf das socket schreiben - das waere hier postfix.

mein system ist leider nicht ganz so flott, daher musste ich im rc-script in zeile 38 noch ein "sleep 1" einfuegen, sonst war das programm noch nicht weit genug gestartet um das socket erstellt zu haben, wenn das script schon versucht die besitzrechte anzupassen. nun kann man spamass-milter starten.

jetzt muss man postfix noch mitteilen, dass er seine mails da durchzujagen hat. dazu traegt man in der main.cf folgendes ein:

smtpd_milters = unix:/tmp/spamass-milter.sock

wenn einen postfix danach mit derartigen meldungen beglueckt:
Dec 26 02:43:02 mailserver spamass-milter[4800]: SpamAssassin: st_optionneg[134600192]: 0x3d does not fulfill action requirements 0x13
Dec 26 02:43:02 mailserver postfix/smtpd[4773]: warning: milter unix:/tmp/spamass-milter.sock: can't read SMFIC_OPTNEG reply packet header:
Unknown error: 0
Dec 26 02:43:02 mailserver postfix/smtpd[4773]: warning: milter unix:/tmp/spamass-milter.sock: read error in initial handshake
dann muss man noch eine weitere zeile in die main.cf einfuegen:

milter_end_of_data_macros = b i j _ {daemon_name} {if_name} {if_addr} {mail_addr}

nun sollte alles funktionieren...
manchmal sieht man vielleicht noch diese meldung:
Dec 26 03:51:57 mailserver spamass-milter[19292]: Could not retrieve sendmail macro "i"!. Please add it to confMILTER_MACROS_ENVFROM for better spamassassin results
warum die kommt weiss ich nicht.. ich konnte sie auch nicht zuverlaessig reproduzieren, aber sie scheint den laufenden betrieb auch nicht zu stoeren.
nun hoffe ich, dass mein taeglicher spamreport (was so in den spam-ordner wegsortiert wurde) wieder etwas kuerzer wird.. der war in den letzten wochen naemlich leicht ausgeufert.
ältere beiträge