Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-14 Diskussionsfäden Matthias Fechner
Hallo Andreas,

* Andreas Vögele [EMAIL PROTECTED] [11-06-05 14:12]:
 Wenn Du das Paket exim4-daemon-heavy installierst, kannst Du  
 Nachrichten mit ClamAV und SpamAssassin auf recht einfache Art und  
 Weise gleich beim Eingang überprüfen. Das ist in der Exim- 
 Dokumentation im Abschnitt Content scanning dokumentiert.
 [...]

danke dir, das funktioniert wunderbar, hab jetzt das alte Konzept über
Board geworfen. :)

-- 
Gruss
Matthias

Programming today is a race between software engineers striving to build
bigger and better idiot-proof programs, and the universe trying to produce
bigger and better idiots. So far, the universe is winning. -- Rich Cook


pgpvSH6K3AmHO.pgp
Description: PGP signature


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-13 Diskussionsfäden Joerg Rossdeutscher
Hallo,

vielen Dank für eure zahlreichen Tips. Anbei eine erste Zusammenfassung.


Ich bin offensichtlich beim Googeln auf die schiefe Bahn geraten. :-)

Wenn man nach Debian, spamassassin und exim googelt, landet man sehr
schnell auf der Schiene Router/Transporter - vermutlich, weil fast alle
HowTos sich noch auf Woody beziehen.

Nach meiner bisherigen Erfahrung sollte man das keinesfalls so machen.

Der Hinweis auf sa-exim war wirklich Gold wert. Wenn man das
installiert, kann man, bereits ohne irgendwas zu konfigurieren, in der
Prozessliste sehen, das exim jetzt eine Mail nach der anderen abarbeitet
und auf spamassassin wartet.


Ich habe jetzt noch ein bisschen Finetuning gemacht:

- in der /etc/sa-exim.conf muss man explizit die Einlieferung per
127.0.0.1 erlauben, wenn man fetchmail benutzt.

- Ich habe noch das Problem, das einige wenige Mails, die anscheinend
völlig eindeutig Spam sind, immer noch bei Einliefung abgelehnt werden.

Letzteres Verhalten muss ich noch untersuchen, ein durchlesen der
Config-Datei hat erstmal noch nichts ergeben. Zumindest habe ich einen
Spamassassin-Score entdeckt, ab dem irgendwas passiert, und den habe ich
erstmal auf 99.0 hochgesetzt, in der Hoffnung, dass das einem
deaktivieren gleichkommt.

Gruß und Danke,
Ratti


-- 
 -o) fontlinge | Fontmanagement for Linux | Schriftenverwaltung in Linux
 /\\ http://freshmeat.net/projects/fontlinge/
_\_V http://www.gesindel.de https://sourceforge.net/projects/fontlinge/


signature.asc
Description: This is a digitally signed message part


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-12 Diskussionsfäden Christian Schmidt
Hallo Ratti,

Joerg Rossdeutscher, 11.06.2005 (d.m.y):

 1.
 Jede Mail soll ankommen. Ich will nichts bouncen, ich will nur taggen.
 Das ist ein Firmenserver, und jeder Mitarbeiter will/soll über seine
 Filterregeln selbst bestimmen, ob er Spam löschen/markieren/lesen will.

Vielleicht waere dazu der MailScanner etwas fuer Dich (Debian-Oaket:
mailscanner), siehe auch http://www.mailscanner.info.
Die Inbetriebnahme sit etwas tricky, das Teil funktioniert IMHO aber
ganz gut.
Prinzip:
- Eine exim-Instanz nimmt Mails an (oder auch nicht) und wirft sie in
  eine Art Eingangsqueue.
- Diese ueberwacht der MailScanner, prueft die darin liegenden Mails
  wahlweise auf Spam (mit dem SpamAssassin) und/oder Viren (mittels
  eines quasi beliebigen Virenscanners), und legt sie dann in eine
  Ausgangsqueue...
- ...die wiederum von einer zweiten und zustellenden Instanz von
  exim ueberwacht wird.

 2.
 Wir verwenden ausschliesslich Macintosh- und Linuxsysteme. Ich will
 keinen Virenfilter, weil ich keinen brauche.
 Von unseren Kunden kommen gerne mal verseuchte Word-Dokumente, die
 sollen durchaus ankommen, das macht uns ja keine Probleme.

Bedenke aber bitte, dass Deine Benutzer dadurch zu (wenn auch
unbewussten) Multiplikatoren werden koennen. Ausserdem kann Dir
niemand garantieren, dass nicht schon morgen eine Malware im Ulmauf
ist, die auch Macs und Linux-Systeme befallen kann und sich ueber ein
Word-Dokument verbreitet bzw. verbreiten laesst.

 (Natürlich ist dieser Umgang diskutabel, ich würde hier aber gern bei
 meinem technischen Problem bleiben, statt allgemeinen Umgang mit
 Makrowürmern zu diskutieren. :-) )
 
 Vielen Dank für deine große Mühe, aber der von dir beschriebene
 Mailserver macht ganz andere Dinge als ich haben will. 

Das ist aber Konfigurationssache... ;-)

 Ich will kein direktes ablehnen bei Einlieferung, kein Greylisting, keinen
 Virenfilter.

Du musst die fuer den Virenscan zusaetzlichen ACL-Zeilen ja nicht
aktivieren - genauso, wie Du exim beibringen kannst, die empfangenen
Mails at SMTP time nur mittels des SpamAssassin zu scannen, ohne sie
ab einem bestimmten Score-Wert abzulehnen.

Bei dem beschriebenen Verfahren bedient sich exim der Dienste des
SpamAssassin uebrigens ueber den spamd, also ueber ein Socket.
Dem spamd kannst Du per Konfiguration sagen, dass nur ein Daemon
gestartet werden soll, was die Systemlast auch im Zaum halten sollte.

So habe ich es auf meinem Heimserver (PII-400, 640 MB RAM, Mails
gelangen per fetchmail auf das System und werden zunaechst mittels
AVMailgate von HB EDV, dann via Sophos/sophie und SpamAssassin sowie z.T.
von bogofilter gescannt) geloest. Vom Abruf bis zur erfolgten
Zustellung meiner Mails dauert es zwar immer ein wenig, aber das
System ist auch waehrend der Verarbeitung mehrerer hundert Mails
durchaus noch benutzbar.

Um Missverstaendnisse zu vermeiden: Du moechtest keine
SpamAssassin-Regeln pro Benutzer definieren koennen, oder?

Wenn Du Vorlagen fuer Deine exim.conf benoetigst, bin ich gerne
behilflich (PM genuegt),

Gruss,
Christian Schmidt

-- 
Den Wert eines Menschenlebens bestimmt nicht seine Länge, sondern
seine Tiefe.
-- Gustav Frenssen


signature.asc
Description: Digital signature


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-12 Diskussionsfäden Christian Schmidt
Hallo Andreas,

Andreas Vögele, 11.06.2005 (d.m.y):

 Am 11.06.2005 um 17:07 schrieb Joerg Rossdeutscher:
 
 Ich habe deine Mail hier neben dieser offen. Tut mir leid - ich sehe
 nicht, dass da irgendwo spamassassin oder spamc aufgerufen würde.
 
 Die SpamAssassin-Unterstützung ist in Exim 4.50 eingebaut (unter  
 Debian nur in exim4-daemon-heavy). Du musst Exim nur mitteilen, wie  
 Nachrichten an spamd weitergeleitet werden sollen. Dafür gibt es die  
 Option spamd_address, die Entweder eine IP-Adresse oder einen Socket  
 als Parameter haben möchte.

Exakt. exim kontaktiert den spamd dann ueber diesen Socket bzw. (wenn
er auf einer anderen Maschine laeuft) ueber die angegebene IP-Adresse.
Dazu muss der spamd natuerlich auch unter der entsprechenden Adresse
bzw. via Socket erreichbar sein.

[..]
 Wie in meiner ersten Mail beschrieben, würde ich für dem spamd einen  
 eigenen Benutzer anlegen, damit mögliche Fehler in SpamAssassin nicht  
 mit privilegierten Rechten ausgenutzt werden können.

Zusaetzlich koennte man dann unter dieser UID auch z.B. die
Bayes-Features des SpamAssi nutzen und/oder zusaetzliche
Ueberpruefungen (Razor, DCC) einbinden und konfigurieren.

Gruss,
Christian Schmidt

-- 
Es gibt vielerlei Lärm, aber es gibt nur eine Stille.
-- Kurt Tucholsky


signature.asc
Description: Digital signature


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-12 Diskussionsfäden Christian Schmidt
Hallo Joerg,

Joerg Rossdeutscher, 11.06.2005 (d.m.y):

 spamd_address = /var/run/spamassassin/spamd.sock
 
 Wer verwendet wo diesen Socket?

Der spamd, also der Daemon-Part des SpamAssassin.

 Später erfolgt dann noch eine Auswertung der gesetzten Header, zum
 Beispiel hier:
 
 # Reject spam messages with score over 12, using an extra condition.
 deny
   message = This message scored $spam_score points. Congratulations!
   !acl = acl_whitelist_local_deny
   sender_domains = !+mm_domains
   condition = ${if {$message_size}{200K}{yes}{no}}
   spam = nobody:true
condition = ${if {$spam_score_int}{120}{yes}{no}}

Um das Ablehnen von Mails zu unterbinden, sollte das Kommentieren
dieser Zeilen ausreichen.

 ...aber ich entdecke einfach nirgendwo die Zeile, die besagt, dass die
 Mail jetzt an spamassassin übergeben würde. Kannst du mir da einen Tip
 geben?

Siehe spamd_address. ;-)

[..]
 Mir war nicht klar, dass es überhaupt anders geht als mit
 transport/router, und bei Exiscan klingelt bei mir gar nichts.
 Anscheinend habe ich zu speziell gegoogelt und dabei ist eine komplette
 Technologie an mir vorbeigerauscht. 

Der exiscan-acl-Patch (die mittlerweile in die exim-Sources
integriert ist) erweitert exim4 um die Faehigkeit, aus bestimmten ACLs
heraus den SpamAssassin sowie diverse Virenscanner anzusprechen und
die weitere Behandlung der gescannten Mails von den Resultaten dieser
Ueberpruefungen abhaengig zu machen.

Gruss,
Christian Schmidt

-- 
Der Krieg ist zu langsam für das Medium Fernsehen.
-- Peter Slotterdijk


signature.asc
Description: Digital signature


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-11 Diskussionsfäden Andreas Vögele

Am 11.06.2005 um 10:36 schrieb Joerg Rossdeutscher:


Hallo,

Ich bastle mir einen Mailserver, der Spam herausfiltern soll.
[..] Es soll ein exim transport/router sein.


Warum möchtest Du Deine Post nicht gleich beim Eingang filtern?

Wenn Du das Paket exim4-daemon-heavy installierst, kannst Du  
Nachrichten mit ClamAV und SpamAssassin auf recht einfache Art und  
Weise gleich beim Eingang überprüfen. Das ist in der Exim- 
Dokumentation im Abschnitt Content scanning dokumentiert.


Ich bin bei uns so vorgegangen:

In /etc/exim4/conf.d/main legst Du eine Datei folgenden Inhalts an:

 acl_smtp_mime = acl_check_mime
 av_scanner = clamd:/var/run/clamav/clamd.ctl
 spamd_address = /var/run/spamassassin/spamd.sock

Damit ClamAV reinkommende Post prüfen kann, muss der Benutzer clamav  
in die Gruppe Debian-exim:


 Debian-exim:x:103:clamav

Nicht vergessen, ClamAV nach dieser Änderung neu zu starten!

Außerdem würde ich, falls Dein Mailserver direkt ans Internet  
angeschlossen ist, Greylisting einsetzen. Dazu installierst Du das  
Paket greylistd, änderst die Exim-Konfiguration mit greylistd-setup- 
exim4 add -netmask=24 und trägst in /etc/greylistd/whitelist-hosts  
ggf. die IP-Adressen, von denen Ihr regelmässig Post bekommt, ein.


Zur SpamAssassin-Konfiguration weiter unten mehr.  Jetzt erstmal  
zurück zu Exim:


Im acl-Unterverzeichnis solltest Du eine Datei folgenden Inhalts  
anlegen:


 acl_check_mime:

   # Decode MIME parts to disk. This will support virus scanners later.
   warn
 decode = default

   # File extension filtering.
   deny
 message = Blacklisted file extension detected
 condition = ${if match \
  {${lc:$mime_filename}} \
  {\N(\.exe|\.pif|\.bat|\.scr|\.lnk|\.com)$\N} \
   {1}{0}}

   accept

Außerdem musst Du 40_exim4-config_check_data ändern oder, wie in  
40_exim4-config_check_data beschrieben, das Makro  
CHECK_DATA_LOCAL_ACL_FILE festlegen. In diese Datei sollte dann in  
etwa folgendes:


  # Reject virus infested messages.
  deny
message = This message contains malware ($malware_name)
malware = *

  # Always add X-Spam-Score header, using SA system-wide settings
  # (user nobody), no matter if over threshold or not.
  warn
message = X-Spam-Score: $spam_score ($spam_bar)
sender_domains = !+mm_domains
condition = ${if {$message_size}{200K}{yes}{no}}
spam = nobody:true

  # Add X-Spam-Flag if spam is over system-wide threshold
  warn
message = X-Spam-Flag: YES
sender_domains = !+mm_domains
condition = ${if {$message_size}{200K}{yes}{no}}
spam = nobody

  # Reject spam messages with score over 12, using an extra condition.
  deny
message = This message scored $spam_score points. Congratulations!
!acl = acl_whitelist_local_deny
sender_domains = !+mm_domains
condition = ${if {$message_size}{200K}{yes}{no}}
spam = nobody:true
condition = ${if {$spam_score_int}{120}{yes}{no}}

Mit obigen Regeln werden alle Nachrichten auf Viren hin untersucht  
und ggf. abgewiesen. Nach Spam wird nur in Mails, die kleiner als  
200KB sind, gesucht. Unerwünschte Werbung, deren Score größer als 12  
ist, wird gleich beim Empfang abgewiesen. Der Rest wird mit X-Spam- 
Flag markiert.


Die Zeilen mit sender_domains stellen sicher, dass Nachrichten, die  
unser lokaler Mailman verteilt, nicht doppelt überprüft werden.  
Entferne sie, wenn Du Mailman nicht einsetzt und mm_domains in Deiner  
Exim-Konfiguration nicht gesetzt ist.


Falls Du fetchmail verwendest, solltest Du in Deiner fetchmailrc den  
Fehlercode, mit dem Exim unerwünschte Werbung ablehnt, eintragen:


 defaults
 antispam 550

Ein Problem bei der Verwendung von fetchmail ist, dass abgewiesene  
Nachrichten nicht gebounct werden, sondern im Nirvana verschwinden.  
Deswegen würde ich den Schwellwert, ab dem Spam abgewiesen wird,  
nicht zu niedrig ansetzen. Fang am besten wie im obigen Beispiel mit  
einem Schwellwert von 12 an und senke den Wert, wenn Du sicher bist,  
dass keine false positives abgewiesen werden.


Ein weiteres Problem beim Einsatz von fetchmail ist, dass Exim nur  
die ersten 10 Nachrichten direkt annimmt. Der Rest landet in der  
Warteschlange. Exim hat einige Parameter, mit denen man dieses  
Verhalten anpassen kann. Ich würde aber einfach QUEUEINTERVAL in /etc/ 
default/exim4 auf 5 Minuten runter setzen.


Jetzt zu SpamAssassin:

Der spamd läuft unter Debian standardmässig mit root-Rechten. Das  
würde ich ändern. Du legst dazu einen Benutzer namens spamd und  
folgende Verzeichnisse an:


 adduser --system --home /var/lib/spamassassin --group spamd
 chmod 0777 /var/lib/spamassassin
 mkdir /var/run/spamassassin
 chown spamd:spamd /var/run/spamassassin

In /etc/default/spamassassin setzt Du ENABLED auf 1 und ersetzt die  
Variablen OPTIONS und PIDFILE durch folgendes:


 OPTIONS=--username spamd --helper-home-dir /var/lib/spamassassin -- 
socketpath /var/run/spamassassin/spamd.sock


 

Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-11 Diskussionsfäden Andreas Vögele

Am 11.06.2005 um 14:12 schrieb Andreas Vögele:


Warum möchtest Du Deine Post nicht gleich beim Eingang filtern?


Was ich zu erwähnen vergessen habe: Wenn Du Post beim Empfang  
ablehnst, gilt die Post als nicht zugestellt und der versendende MTA  
muss sich darum kümmern. An sich bist Du also fein raus. Allerdings  
müssen Deine Nutzer dem streng genommen zustimmen, da Du ihnen Post  
vorenthältst, auch wenn es sich nur um Viren und unerwünschte Werbung  
handelt. Meine Meinung dazu: Sch*** auf die Juristen :-)




PGP.sig
Description: Signierter Teil der Nachricht


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-11 Diskussionsfäden Joerg Rossdeutscher
Hallo,

Am Samstag, den 11.06.2005, 14:12 +0200 schrieb Andreas Vögele:
 Am 11.06.2005 um 10:36 schrieb Joerg Rossdeutscher:

  Ich bastle mir einen Mailserver, der Spam herausfiltern soll.
  [..] Es soll ein exim transport/router sein.
 
 Warum möchtest Du Deine Post nicht gleich beim Eingang filtern?
 
 Wenn Du das Paket exim4-daemon-heavy installierst, kannst Du  
 Nachrichten mit ClamAV und SpamAssassin auf recht einfache Art und  
 Weise gleich beim Eingang überprüfen. Das ist in der Exim- 
 Dokumentation im Abschnitt Content scanning dokumentiert.

Ne, das will ich so nicht, das hatte ich ja schon geschrieben.
Der Lesbarkeit wegen hatte ich in meiner Anfrage die Begründungen
erstmal weggelassen, ich kann aber nachliefern:

1.
Jede Mail soll ankommen. Ich will nichts bouncen, ich will nur taggen.
Das ist ein Firmenserver, und jeder Mitarbeiter will/soll über seine
Filterregeln selbst bestimmen, ob er Spam löschen/markieren/lesen will.

2.
Wir verwenden ausschliesslich Macintosh- und Linuxsysteme. Ich will
keinen Virenfilter, weil ich keinen brauche.
Von unseren Kunden kommen gerne mal verseuchte Word-Dokumente, die
sollen durchaus ankommen, das macht uns ja keine Probleme.

(Natürlich ist dieser Umgang diskutabel, ich würde hier aber gern bei
meinem technischen Problem bleiben, statt allgemeinen Umgang mit
Makrowürmern zu diskutieren. :-) )


Vielen Dank für deine große Mühe, aber der von dir beschriebene
Mailserver macht ganz andere Dinge als ich haben will. Ich will kein
direktes ablehnen bei Einlieferung, kein Greylisting, keinen
Virenfilter.



 Die Zeilen mit sender_domains stellen sicher, dass Nachrichten, die  
 unser lokaler Mailman verteilt, nicht doppelt überprüft werden.  
 Entferne sie, wenn Du Mailman nicht einsetzt und mm_domains in Deiner  
 Exim-Konfiguration nicht gesetzt ist.

Nein, ich verwende sympa, weil mailman immer noch keine offizielle
Mysql-Unterstützung hat (Kopfschüttel).

 Falls Du fetchmail verwendest, solltest Du in Deiner fetchmailrc den  
 Fehlercode, mit dem Exim unerwünschte Werbung ablehnt, eintragen:

Nein, der Rechner ist im MX der Domain, hat eine feste IP und bekommt
mail ganz regulär eingeliefert.


 Ein weiteres Problem beim Einsatz von fetchmail ist, dass Exim nur  
 die ersten 10 Nachrichten direkt annimmt. Der Rest landet in der  
 Warteschlange. Exim hat einige Parameter, mit denen man dieses  
 Verhalten anpassen kann. Ich würde aber einfach QUEUEINTERVAL in /etc/ 
 default/exim4 auf 5 Minuten runter setzen.

Die 10 Nachrichten habe ich bereits hochgesetzt.

 Wenn Du nicht allen Benutzern, die auf Deinem Mailserver einen Shell- 
 Zugang haben, vertraust, kannst Du anstelle von 0777 eingeschränktere  
 Berechtigungen verwenden.

Ich arbeite nur mit virtuellen Usern.

Vielen Dank für deine Mühe!

Gruß,
Ratti


-- 
 -o) fontlinge | Fontmanagement for Linux | Schriftenverwaltung in Linux
 /\\ http://freshmeat.net/projects/fontlinge/
_\_V http://www.gesindel.de https://sourceforge.net/projects/fontlinge/


signature.asc
Description: This is a digitally signed message part


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-11 Diskussionsfäden Andreas Vögele

Am 11.06.2005 um 15:13 schrieb Joerg Rossdeutscher:


Vielen Dank für deine große Mühe, aber der von dir beschriebene
Mailserver macht ganz andere Dinge als ich haben will. Ich will kein
direktes ablehnen bei Einlieferung, kein Greylisting, keinen
Virenfilter.


Die von mir vorgeschlagene Konfiguration lässt sich problemlos so  
anpassen, dass sie Deine Anforderungen erfüllt. Du musst nur die  
av_scanner-Option und die drei deny-ACLs weglassen. Hast Du Dir den  
Abschnitt Content scanning in der Exim-Dokumentation überhaupt  
schon mal angeschaut oder erwartest Du, dass hier jemand eine fertige  
Lösung postet?


Ich verstehe beim besten Willen nicht, warum Du, wie es unter Exim 3  
üblich war, einen Transport und einen Router zur Spamfilterung  
einsetzen möchtest. Der von mir beschriebene Vorschlag basiert auf  
dem in Exim 4.50 offiziell integrierten Exiscan-Patch. Warum möchtest  
Du eine andere Lösung verwenden? Wo ist der Sinn?


Und warum willst Du eigentlich kein Greylisting einsetzen?  
Greylisting ist momentan das effektivste Mittel zur Spambekämpfung.  
Und mit einer guten Whitelist gibt es nur bei neuen Kontakten eine  
Verzögerung, die sich normalerweise verschmerzen lässt. Zudem ist die  
Integration von greylistd in Exim dank des mitgelieferten Setup- 
Skripts trivial.




PGP.sig
Description: Signierter Teil der Nachricht


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-11 Diskussionsfäden Joerg Rossdeutscher
Hallo,

Am Samstag, den 11.06.2005, 15:47 +0200 schrieb Andreas Vögele:
 Am 11.06.2005 um 15:13 schrieb Joerg Rossdeutscher:
 
  Vielen Dank für deine große Mühe, aber der von dir beschriebene
  Mailserver macht ganz andere Dinge als ich haben will. Ich will kein
  direktes ablehnen bei Einlieferung, kein Greylisting, keinen
  Virenfilter.
 
 Die von mir vorgeschlagene Konfiguration lässt sich problemlos so  
 anpassen, dass sie Deine Anforderungen erfüllt. Du musst nur die  
 av_scanner-Option und die drei deny-ACLs weglassen.

Ich habe deine Mail hier neben dieser offen. Tut mir leid - ich sehe
nicht, dass da irgendwo spamassassin oder spamc aufgerufen würde.
Deswegen bin ich davon ausgegangen, dass spamassassin von innerhalb
ClamAV aufgerufen würde, und das wäre für mich nicht möglich (weil ich
ja keinen ClamAV laufen lassen will).

Kannst du mir einen Tip geben? Den einzigen Verweis auf Spamassassin in
deiner Mail entdecke ich hier:

spamd_address = /var/run/spamassassin/spamd.sock

Wer verwendet wo diesen Socket?


Später erfolgt dann noch eine Auswertung der gesetzten Header, zum
Beispiel hier:

# Reject spam messages with score over 12, using an extra condition.
deny
  message = This message scored $spam_score points. Congratulations!
  !acl = acl_whitelist_local_deny
  sender_domains = !+mm_domains
  condition = ${if {$message_size}{200K}{yes}{no}}
  spam = nobody:true
   condition = ${if {$spam_score_int}{120}{yes}{no}}


...aber ich entdecke einfach nirgendwo die Zeile, die besagt, dass die
Mail jetzt an spamassassin übergeben würde. Kannst du mir da einen Tip
geben?


 Ich verstehe beim besten Willen nicht, warum Du, wie es unter Exim 3  
 üblich war, einen Transport und einen Router zur Spamfilterung  
 einsetzen möchtest. Der von mir beschriebene Vorschlag basiert auf  
 dem in Exim 4.50 offiziell integrierten Exiscan-Patch. Warum
 möchtest  
 Du eine andere Lösung verwenden? Wo ist der Sinn?

Mir war nicht klar, dass es überhaupt anders geht als mit
transport/router, und bei Exiscan klingelt bei mir gar nichts.
Anscheinend habe ich zu speziell gegoogelt und dabei ist eine komplette
Technologie an mir vorbeigerauscht. 

Danke für den Hinweis, da setze ich dann nochmal an.


Ich versichere dir, dass ich mich seit Monaten mit dem Thema
auseinandersetze und nix vorgekaut haben will. Nützt ja eh nix - ich
muss das Teil hinterher verwalten, und ohne das begriffen zu haben geht
es eh in die Hose.



 Und warum willst Du eigentlich kein Greylisting einsetzen?  
 Greylisting ist momentan das effektivste Mittel zur Spambekämpfung.  
 Und mit einer guten Whitelist gibt es nur bei neuen Kontakten eine  
 Verzögerung, die sich normalerweise verschmerzen lässt. Zudem ist
 die  
 Integration von greylistd in Exim dank des mitgelieferten Setup- 
 Skripts trivial.

Wie ich schon sagte: Weil /jede/ Mail /sofort/ ankommen soll. Es geht
hier ausschliesslich um den X-Spam: Yes-Header, anhand dessen jeder
Mitarbeiter selbst entscheiden kann, ob er die Mail in AppleMail einfach
nur einfärbt, sie verschiebt, löscht oder whatever. Auf eigene
Verantwortung.


Jede Ablehnung oder Verzögerung ist für uns völlig unakzeptabel. Alles
muss sofort zugestellt werden. Hier sitzen Leute, die telefonieren
miteinander und hämmern dabei auf den Mail abholen-Knopf, weil sie
über das beigelegte PDF sprechen wollen. ...und wenn ich alle Mails
bouncen würde, deren angehängte Word-Dokumente einen Wurm enthalten,
würde bei uns wohl gar nichts mehr ankommen. :-)


Gruß,
Ratti

-- 
 -o) fontlinge | Fontmanagement for Linux | Schriftenverwaltung in Linux
 /\\ http://freshmeat.net/projects/fontlinge/
_\_V http://www.gesindel.de https://sourceforge.net/projects/fontlinge/


signature.asc
Description: This is a digitally signed message part


Re: Exim und Spamassassin: Crash, wenn viele Mails

2005-06-11 Diskussionsfäden Andreas Vögele

Am 11.06.2005 um 17:07 schrieb Joerg Rossdeutscher:


Ich habe deine Mail hier neben dieser offen. Tut mir leid - ich sehe
nicht, dass da irgendwo spamassassin oder spamc aufgerufen würde.


Die SpamAssassin-Unterstützung ist in Exim 4.50 eingebaut (unter  
Debian nur in exim4-daemon-heavy). Du musst Exim nur mitteilen, wie  
Nachrichten an spamd weitergeleitet werden sollen. Dafür gibt es die  
Option spamd_address, die Entweder eine IP-Adresse oder einen Socket  
als Parameter haben möchte.


Wenn Du SpamAssassin auf dem Mailserver installiert und ENABLED=1 in / 
etc/default/spamassassin gesetzt hast, damit spamd gestartet wird,  
verwendest Du folgende Einstellung:


spamd_address = 127.0.0.1

Mehr dazu in der Exim-Dokumentation unter URL:http://www.exim.org/ 
exim-html-4.50/doc/html/spec_40.html#SECT40.2.


Wie in meiner ersten Mail beschrieben, würde ich für dem spamd einen  
eigenen Benutzer anlegen, damit mögliche Fehler in SpamAssassin nicht  
mit privilegierten Rechten ausgenutzt werden können.


Kannst du mir einen Tip geben? Den einzigen Verweis auf  
Spamassassin in

deiner Mail entdecke ich hier:

spamd_address = /var/run/spamassassin/spamd.sock

Wer verwendet wo diesen Socket?


Um Nachrichten nach unerwünschter Werbung zu durchsuchen, erweiterst  
Du die Access-Control-List in /etc/exim4/conf.d/40_exim4- 
config_check_data. Diese ACL wird von Exim nach dem Empfang einer  
Nachricht abgearbeitet. Hier ein Beispiel, das Du vor dem  
abschliessenden accept einfügen könntest:


warn
  message = X-Spam-Flag: YES
  !acl = acl_whitelist_local_deny
  condition = ${if {$message_size}{200K}{yes}{no}}
  spam = nobody

Mit warn und message legst Du fest, dass dem Nachrichtenkopf das  
Feld X-Spam-Flag: YES hinzugefügt wird, falls es sich bei der zu  
überprüfenden Nachricht um unerwünschte Werbung handelt.


Die Zeile mit acl_whitelist_local_deny sorgt dafür, dass Nachrichten,  
die von in der Datei /etc/exim4/local_host_whitelist gelisteten Hosts  
stammen, nicht nach Spam durchsucht werden. In dieser Datei kannst Du  
zum Beispiel die Adresse Eures lokalen Netzes in der Form  
192.168.1.0/24 eintragen. Anstelle dieser Zeile sind auch andere  
Bedingungen denkbar, z.B. !hosts = +relay_from_hosts. ACLs sind   
relativ kompliziert, aber in der Exim-Dokumentation findest Du  
etliche Beispiele.


Die nächste Zeile bewirkt, dass nur Nachrichten, die kleiner als  
200KB groß sind, überprüft werden. Größere Nachrichten enthalten  
selten Spam, verursachen bei der Überprüfung mit SpamAssassin aber  
eine hohe Last, so dass es Sinn macht, sie auszuschliessen.


Für den Aufruf von SpamAssassin ist die letzte Zeile verantwortlich.  
Wenn diese Bedingung wahr ist, wird der mit message festgelegte  
Kopf in die Nachricht eingefügt.




PGP.sig
Description: Signierter Teil der Nachricht


Exim und Spamassassin: Crash, wenn viele Mails

2005-06-11 Diskussionsfäden Joerg Rossdeutscher
Hallo,

Ich bastle mir einen Mailserver, der Spam herausfiltern soll.
Da ich mit virtuellen Usern herumspiele, möchte ich Spamassassin
explizit in exim direkt einbinden und nicht mit
forward/procmail/mailfilter arbeiten, und ich will sa auch nicht
innerhalb eines anderen Scanners (Amavis oder so) einbinden. Es soll ein
exim transport/router sein.


Ich habe mir folgende Config zusammengeklaut/gegebaut, die eigentlich
auch funktioniert

...aber:

Wenn viele Mails gleichzeitig aufschlagen, zum Beispiel weil die Leitung
hing, der Provider-Mailserver klemmt oder einfach jemand eine
Spam-Attacke loslässt, dann bricht mir die Kiste weg:

/usr/sbin/exim4 -bd -q30m
 \_ /usr/sbin/exim4 -bd -q30m
 \_ /usr/sbin/exim4 -Mc 1Dg5Gz-s3-OP
 |   \_ /usr/sbin/exim4 -Mc 1Dg5Gz-s3-OP
 |   \_ /usr/sbin/exim -oMr spam-scanned -bS
 |   \_ /usr/sbin/exim4 -Mc 1Dg5Gz-s3-OP
 |   \_ /usr/bin/spamc
 |   \_ [exim4] defunct
 \_ /usr/sbin/exim4 -Mc 1Dg5H4-s3-Em
 |   \_ /usr/sbin/exim4 -Mc 1Dg5H4-s3-Em
 |   \_ /usr/sbin/exim -oMr spam-scanned -bS
 |   \_ /usr/sbin/exim4 -Mc 1Dg5H4-s3-Em
 |   \_ /usr/bin/spamc
 |   \_ [exim4] defunct
 \_ /usr/sbin/exim4 -Mc 1Dg5HC-s3-93
 |   \_ /usr/sbin/exim4 -Mc 1Dg5HC-s3-93
 |   \_ /usr/sbin/exim -oMr spam-scanned -bS
 |   \_ /usr/sbin/exim4 -Mc 1Dg5HC-s3-93
 |   \_ /usr/bin/spamc
 |   \_ [exim4] defunct
 \_ /usr/sbin/exim4 -Mc 1Dg5HD-s3-Fr
 |   \_ /usr/sbin/exim4 -Mc 1Dg5HD-s3-Fr
 |   \_ /usr/sbin/exim -oMr spam-scanned -bS
 |   \_ /usr/sbin/exim4 -Mc 1Dg5HD-s3-Fr
 |   \_ /usr/bin/spamc
 |   \_ [exim4] defunct

[Hunderte weitere Einträge...]



Ich habe unter /etc/default/spamassassin einen Eintrag, der maximal 5
Children zulassen soll:

OPTIONS=--create-prefs --max-children 5 --helper-home-dir

...aber es tut nicht.


Ich habe den Verdacht, dass es unklug von mir ist, im exim-Filter eine
pipe aufzumachen und dass ich deswegen die 5-Prozesse-Beschränkung
selbst kaputtmache. Es gab in der Config einen Kommentar, der besagte,
pipes-transporter sein nicht mehr zeitgemäss, ein Risiko, und nur was
für Deppen - naja, stimmt anscheinend. :-)


Hat jemand einen Tip für mich?

Anbei meine exim-config:



Router:

spamcheck_router:
  no_verify
  # check_local_user
  # When to scan a message :
  # - it isnt already flagged as spam
  # - it isnt already scanned
  condition = ${if and { {!def:h_X-Spam-Flag:} {!eq
{$received_protocol}{spam-scanned}}}{1}{0}}
  driver = accept
  transport = spamcheck





Transporter:

spamcheck:
  debug_print = T: spamcheck
  driver = pipe
  command = /usr/sbin/exim -oMr spam-scanned -bS
  use_bsmtp = true
  transport_filter = /usr/bin/spamc
  home_directory = /tmp
  current_directory = /tmp
  user = Debian-exim
  group = Debian-exim
  log_output = true
  return_fail_output = true
  return_path_add = false
  message_prefix =
  message_suffix =


(/tmp/ wegen virtuellen Usern. Die haben keine Homedir)




-- 
 -o) fontlinge | Fontmanagement for Linux | Schriftenverwaltung in Linux
 /\\ http://freshmeat.net/projects/fontlinge/
_\_V http://www.gesindel.de https://sourceforge.net/projects/fontlinge/


signature.asc
Description: This is a digitally signed message part