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.1Mehr 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 indeiner 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 = nobodyMit "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.
Attachment:
PGP.sig
Description: Signierter Teil der Nachricht