Vserver: Spamassassin mit autolearn?

Hallo,

derzeit teste ich einen Linux VServer von Hosteurope mit Plesk Frontend.
Dort kann ich spamassassin aber nur sehr begrenzt konfigurieren.

Angeblich soll SA so installiert sein, dass automatisch Mails, die ich in den Spamordner verschiebe als Spam gelernt werden. Da ich ziemlich viel Spam bekomme, der gleich aufgebaut ist, habe ich ca. 500 Spammails in den Ordner verschoben und einige Zeit drin gelassen, aber es hat sich an der Erkennungsrate nichts geändert.

Daher die Frage: Wo kann ich feststellen, ob SA tasächlich aus dem Spamverzeichnis des jeweiligen Users die Mails gelernt hat?

In der etc/spamassassin/local.cf steht nur:
ifplugin Mail::SpamAssassin::stuck_out_tongue:lugin::Shortcircuit
endif # Mail::SpamAssassin::stuck_out_tongue:lugin::Shortcircuit
rewrite_header subject *****SPAM******
required_score 7.00

und in der /var/qmail/mailnames/domainname.tld/info/spamassassin/user_prefs steht:
rewrite_header subject ***SPAM***
required_score 7

Habt Ihr eine Idee, wie ich feststellen kann, ob der Bayes Filter arbeitet und ob SA auch lernt?

Viele Grüße
Robert

Hallo Robert,

Angeblich soll SA so installiert sein, dass automatisch Mails,
die ich in den Spamordner verschiebe als Spam gelernt werden.

Automatisch schon, aber doch wohl nur, wenn der Parameter

bayes\_auto\_learn 1

in der Konfigurationsdatei gesetzt ist.
http://wiki.apache.org/spamassassin/BasicConfiguration
Kann auch sein, daß dies per Default so ist, weiss ich im Moment nicht. Trotzdem kann das Setzen ja auf keinen Fall schaden, doppelt genäht hält besser :wink:
Aber auf jeden Fall dauert das einige Zeit, so daß es sich empfiehlt, die Spam- und Ham-Ordner mit sa-learn „überwachen“ zu lassen, damit SA davon lernt. Ganz wichtig ist, daß sowohl Spam als auch Ham gelernt wird!
http://spamassassin.apache.org/full/3.3.x/doc/sa-lea…
http://wiki.apache.org/spamassassin/BayesInSpamAssassin

Wo kann ich feststellen, ob SA tasächlich aus
dem Spamverzeichnis des jeweiligen Users die Mails gelernt
hat?

Mit

sa-learn --dump magic

erfährst Du u.a. was über den Lernerfolg.

Viele Grüße
Marvin

Hallo Marvin,

bayes_auto_learn 1

Der ist drin.
Ich sehe auch, dass sich vom Datum her bei den beiden Bayes Files etwas tut.

Mich irritiert nur noch, dass ich die bayes files an mehreren Stellen habe. Zum einen sind unter /root/.spamassassin die files bayes_seen und bayes_tok und dann in jedem Mailordner unter /var/qmail/mailuser/domainname/mailboxname/.spamassassin sind die gleichen Files nochmal drin.

Wenn ich mir das Datum ansehe, ändert sich dieses automatisch alle paar Stunden, also scheint ein autolearn zu laufen.

Wenn ich aber mit sa-learn --dump magic mir die Statistik ansehe, sehe ich keine Änderung während der automatischen läufe. Erst wenn ich sa-learn manuell ausführe ändert sich die Anzahl.

kann ich irgendwie sa-learn --dump magic so ausführen, dass ich den Inhalt der beiden Datenbanken vergleichen kann?

Oder was hat es mit den verschiedenen Orten für die bayes Files auf sich?

Aber auf jeden Fall dauert das einige Zeit, so daß es sich
empfiehlt, die Spam- und Ham-Ordner mit sa-learn „überwachen“
zu lassen, damit SA davon lernt. Ganz wichtig ist, daß sowohl
Spam als auch Ham
gelernt wird!

hab ich manuell mit ca. 3000 ham und ca. 2000 Spam gerade files gemacht

Mit

sa-learn --dump magic

erfährst Du u.a. was über den Lernerfolg.

Kann ich das irgendwie für verschiedene Mailboxen aufrufen? (siehe oben)

Vielen Dank und viele Grüße
Robert

Daher die Frage: Wo kann ich feststellen, ob SA tasächlich aus
dem Spamverzeichnis des jeweiligen Users die Mails gelernt
hat?

Starte den Lernvorgang manuell (sa-learn --spam /userpfad/spam/*). Wenn sa diese Dateien schon einmal durchgegangen ist, wird das Ergebnis entspr. lauten Learned tokens from 0 message(s) (### message(s) examined).

Allerdings musst du den Befehl im jeweiligen Userkontext aufrufen, also nicht als root. Ich kenne den Aufbau und die Funktion deines Servers nicht, aber nach deiner Schilderung sieht es so aus, als ob sa grundsätzlich im Userkontext arbeite. Muss nicht so sein, wenn du neben qmail z. B. auch einen postfix am laufen hast, kann der sa mittels amavis an postfix gebunden sein und somit im Systemkontext laufen.

HTH

Hallo,

Allerdings musst du den Befehl im jeweiligen Userkontext
aufrufen, also nicht als root. Ich kenne den Aufbau und die

Wie kann ich den SA denn in einem anderen Kontext laufen lassen?

Der Server läuft unter Ubuntu und Plesk 10 als Oberfläche und da habe ich bisher noch keine eigenen User angelegt.

Viele Grüße
Robert

Der Server läuft unter Ubuntu und Plesk 10 als Oberfläche und
da habe ich bisher noch keine eigenen User angelegt.

Plesk kenne ich garnicht, qmail habe ich bislang nur einmal einen Server aufgesetzt, und Ubuntu setze ich nur selten ein. Aber du hast doch einen shell-Zugriff? Ein qmail-User ist immer auch ein System-User. Wenn du in der Shell angemeldet bist, kannst du mittels su user die Identität eines beliebigen qmail-users annehmen. Oder du startest einen Befehl als user mittels sudo -u user /qualifizierter/pfad/befehl parameter

Gruß

Hallo Robert,

Mich irritiert nur noch, dass ich die bayes files an mehreren
Stellen habe. Zum einen sind unter /root/.spamassassin die
files bayes_seen und bayes_tok und dann in jedem Mailordner
unter /var/qmail/mailuser/domainname/mailboxname/.spamassassin
sind die gleichen Files nochmal drin.

Das sind dann User- bzw. Mailaccountspezifische Spam-Datenbanken.

Wenn ich aber mit sa-learn --dump magic mir die Statistik
ansehe, sehe ich keine Änderung während der automatischen
läufe. Erst wenn ich sa-learn manuell ausführe ändert sich die
Anzahl.

So genau habe ich mir das noch nicht angesehen. Aber ich denke, daß hängt mit der verzögerten Synchronisation der Bayes-DB zusammen und ob Du sa-learn mit --sync oder --no-sync ausführst. Im Handbuch steht dazu folgendes:
_While SpamAssassin is scanning mails, it needs to track which tokens it uses in its calculations. To avoid the contention of having each SpamAssassin process attempting to gain write access to the Bayes DB, the token timestamps are written to a ‚journal‘ file which will later (either automatically or via sa-learn --sync) be used to syncronize the Bayes DB.

Also, through the use of bayes_learn_to_journal, or when using the --no-sync option with sa-learn, the actual learning data will take be placed into the journal for later syncronization. This is typically useful for high-traffic sites to avoid the same contention as stated above._

man sa-learn

gibt da bei der Option --no-sync noch mehr Details dazu. Aber eigentlich sehe ich darin nichts, worüber man sich beunruhigen müsste.
Ich hatte jedenfalls sa-learn nicht von Hand ausgeführt, sondern das einen cron-Job machen lassen. Da gibt es z.B. hier ein ziemlich ausgefeiltes Skript für:
http://help.directadmin.com/item.php?id=358

kann ich irgendwie sa-learn --dump magic so ausführen, dass
ich den Inhalt der beiden Datenbanken vergleichen kann?

? Verstehe ich jetzt nicht so ganz. So gross ist die Ausgabe doch nicht, daß man nicht zwei miteinander vergleichen kann. Du kannst aber auch mit der Option -f eine Datei angeben, in der gleich eine ganze Liste von Verzeichnissen (eine pro Zeile) eingetragen ist.

Kann ich das irgendwie für verschiedene Mailboxen aufrufen?
(siehe oben)

Wenn ich dich richtig verstanden habe, ja (s.o. die Option -f).

Viele Grüße
Marvin

Hallo Marvin,

Kann ich das irgendwie für verschiedene Mailboxen aufrufen?
(siehe oben)

Wenn ich dich richtig verstanden habe, ja (s.o. die Option
-f).

Danke für Deine Hilfe.

Mit dbpath läßt sich angeben, welche Datenbank geprüft werden soll. In Verbindung mit dump magic konnte ich so sehen, dass die User DB tatsächlich automatisch anwächst und ich sie aber noch massiv trainieren muss, weil die bisherigen Trainings alle nur die root DB trainiert haben.

viele Grüße
Robert