Zarafa spamtrain und UCS

UCS Mailstack (Handbuch)

Zarafa spamtrain und UCS

Postby Duufoy » Fri 4. Dec 2015, 17:16

Hallo zusammen,

ich bin neu hier und habe dank der tollen Beiträge eigentlich schon alles zum laufen bekommen.
Was noch fehlt is die Spam/Ham integration in Zarafa.

Bei Zarafa habe ich das Plugin spamtrain gefunden und den Entwickler kontaktiert um zu erfahren ob er dies noch aktiv entwickelt, da er dies bejaht hat aber leider nicht sagen konnte wie es mit dem UCS läuft frage ich mal hier in die Runde, da es noch keinen Beitrag dazu gab, wie es zum funktionieren gebracht werden kann.

Hier die Konfigurationsmöglichkeiten in der config.php

Code: Select all
<?php
/**
 * Global plugin settings.
 */

/** Logging */
define('PLUGIN_SPAMTRAIN_LOGGING_ENABLED', true);
define('PLUGIN_SPAMTRAIN_LOGGING_FILE', '/tmp/spamtrain.log');

/** Spam Filter train commands (choose the one suitable for your setup) */
// DSPAM with shared spam database
//define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', '/usr/bin/dspam --user dspam --source=error --class=spam');
//define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', '/usr/bin/dspam --user dspam --source=error --class=innocent');
// DSPAM with per user spam database
//define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', '/usr/bin/dspam --user %u --source=error --class=spam');
//define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', '/usr/bin/dspam --user %u --source=error --class=innocent');
// SpamAssassin with per user database
define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', '/usr/bin/sa-learn --spam --username %u');
define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', '/usr/bin/sa-learn --ham --username %u');

/**
 * Per user plugin settings.
 */

/** Enable the spamtrain plugin for all clients */
define('PLUGIN_SPAMTRAIN_USER_DEFAULT_ENABLE', false);
?>


Denke mal dass läuft mit SpamAssasin, drum habe ich da mal die auskommentierung weggenommen.
Muss da nun sonst noch was beachtet oder konfiguriert werden.
Bissher ging dass auf dem alten Server mittels eines Skript und einem junkunlearn ordner, denke aber das Plugin funktioniert besser und einfacher für die meisten Enduser auf dem System.

Viele Grüße D.
Duufoy
 
Posts: 4
Joined: Fri 4. Dec 2015, 17:04

Re: Zarafa spamtrain und UCS

Postby Duufoy » Sun 6. Dec 2015, 09:53

Hallo noch mal,

ich hatte nun mit dem Entwickler gesprochen, nachdem ich diese Logfile an ihn gesendet habe.
Code: Select all
DEBUG: enter::trainham
DEBUG: Invoking command '/usr/bin/sa-learn --ham --username maxmustermann'...
DEBUG: Streaming message to command:
Return-Path: <testmail@domain.de>
Received: from intranet.maxmustermann.de (127.0.0.1)
   by intranet (Zarafa-spooler) with LMTP
   for <testmail@domain.de>; Thu, 19 Nov 2015 18:20:40 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
   by intranet.maxmustermann.de (Postfix) with ESMTP id 7260AA0064
   for <testmail@domain.de>; Thu, 19 Nov 2015 18:20:40 +0100 (CET)
X-Virus-Scanned: by amavisd-new-2.7.1 (20120429) (Debian) at maxmustermann.de
X-Spam-Flag: YES
X-Spam-Score: 1001.203
X-Spam-Level: ****************************************************************
X-Spam-Status: Yes, score=1001.203 tagged_above=-1000 required=5
   tests=[DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, GTUBE=1000,
   HTML_MESSAGE=0.001, NML_ADSP_CUSTOM_MED=1.2, NO_RELAYS=-0.001,
   TVD_SPACE_RATIO=0.001] autolearn=no
Received: from intranet.maxmustermann.de ([127.0.0.1])
   by localhost (intranet.maxmustermann.de [127.0.0.1]) (amavisd-new, port 10024)
   with ESMTP id JRmakEEpflsX for <testmail@domain.de>;
   Thu, 19 Nov 2015 18:20:40 +0100 (CET)
Received: from intranet.maxmustermann.de (localhost [127.0.0.1])
   by intranet.maxmustermann.de (Postfix) with ESMTP id 201B4A0062
   for <testmail@domain.de>; Thu, 19 Nov 2015 18:20:40 +0100 (CET)
MIME-Version: 1.0
Received: from gmail-pop.l.google.com [74.125.206.108]
   by intranet.maxmustermann.de with POP3 (fetchmail-6.3.21)
   for <testmail@domain.de> (single-drop); Thu, 19 Nov 2015 18:20:40 +0100 (CET)
Received: by 10.36.211.146 with HTTP; Thu, 19 Nov 2015 09:19:38 -0800 (PST)
Date: Thu, 19 Nov 2015 18:19:38 +0100
Delivered-To: testmail@domain.de
Message-ID: <CAGran6nTeTWi-EPXyetAzQ1KiALArTnsQo2RsVjj6OWhN0NCJw@mail.gmail.com>
Subject: test
From: Test User <testmail@domain.de>
To: Test User <testmail@domain.de>
Content-Type: multipart/alternative; boundary=001a114457a6af5c380524e7f6a1

This is a multi-part message in MIME format. Your mail reader does not
understand MIME message format.
--=_QwOo8UTGVYPTMsXHh1X8on93Fvpg+74npNcYgs-ZMJIogoy6
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

--=_QwOo8UTGVYPTMsXHh1X8on93Fvpg+74npNcYgs-ZMJIogoy6
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><code>XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UB=
E-TEST-EMAIL*C.34X</code></div>=0D=0A
--=_QwOo8UTGVYPTMsXHh1X8on93Fvpg+74npNcYgs-ZMJIogoy6--
ERROR: Command '/usr/bin/sa-learn --ham --username maxmustermann' finished with status 2
DEBUG: exit::trainham (result=false)


Er denkt es könnte mit den Userrechten zu tun haben und mir diesen Link gesendet, wobei ja nicht Dovecot genutzt wird
http://serverfault.com/questions/703173/spamassassin-with-dovecot-antispam-training

Ich habe noch dieses Gefunden
http://wiki.apache.org/spamassassin/SiteWideBayesSetup

Hat noch jemand eine Idee, denke ansonsten würde das Zarafa Plugin funktionieren.

Gruss D.
Duufoy
 
Posts: 4
Joined: Fri 4. Dec 2015, 17:04

Re: Zarafa spamtrain und UCS

Postby fbartels » Mon 7. Dec 2015, 08:09

Duufoy wrote:Er denkt es könnte mit den Userrechten zu tun haben und mir diesen Link gesendet, wobei ja nicht Dovecot genutzt wird

Hast du denn versucht wie im verlinkten Artikel die Berechtigungen anzupassen? In diesem Fall läuft ja sa-learn nicht als Dovecot sondern, als www-data (weil über den Webserver ausgeführt).

Ansonsten könnte das von mir in https://github.com/zarafa4ucs/zarafa4uc ... -160276783 genannte Skript auch interessant sein. Dieses arbeitet Serverseitig und erfasst damit auch Mails die z.B. über ein Mobiltelefon als Spam/Ham markiert werden.
User avatar
fbartels
 
Posts: 286
Joined: Wed 18. Dec 2013, 17:51
Location: Hannover/Delft

Re: Zarafa spamtrain und UCS

Postby theodor.m » Mon 7. Dec 2015, 09:40

@fbartels

Danke für Ihre Antwort Herr Bartels, ich habe das gleiche Problem wie der User

ich werde mir das Skript heute Abend ansehen.
Ich dachte nur spamtrain würde out of the box arbeiten und ist eine einfache Sache.
Würden die beiden Dinge auch parallel laufen?

Es wäre toll, ich bin mit Zuteilung oder Änderungen von Rechten immer sehr vorsichtig und eher unerfahren, wenn Sie mir diesbezüglich noch mal auf die Sprünge helfen und mir schreiben was ich genau anpassen muss.

Mein english ist jetzt auch nicht gerade der Hammer und die ich habe auch bis auf sa-learn die anderen Dateien nicht gefunden.

Danke Ihnen und einen schönen start in die neue Woche Theodor
theodor.m
 
Posts: 42
Joined: Sun 15. Nov 2015, 14:20

Re: Zarafa spamtrain und UCS

Postby fbartels » Tue 8. Dec 2015, 21:24

Ich habe das leider auch noch nicht auf Univention umgesetzt und müsste es daher auch erstmal selbst durchspielen. Dafür fehlt mir momentan aber leider die Zeit.
User avatar
fbartels
 
Posts: 286
Joined: Wed 18. Dec 2013, 17:51
Location: Hannover/Delft

Re: Zarafa spamtrain und UCS

Postby Duufoy » Wed 9. Dec 2015, 10:53

Danke für die Antwort Herr Bartels,

es eilt ja nicht, aber es wäre toll, wenn die Sache mal gut dokumentiert wäre, so dass es die meistens selbständig einrichten Können.
Vielleicht ergibt sich ja am Jahresende eine Möglichkeit ;-)
Gerne kann ich Ihnen auch einen Zugang zu dem Testsystem geben.

Viele Grüße D.
Duufoy
 
Posts: 4
Joined: Fri 4. Dec 2015, 17:04

Re: Zarafa spamtrain und UCS

Postby t0mcat » Thu 18. Feb 2016, 11:26

Hallo zusammen,

auch wenn der Thread schon etwas länger liegt, kann ich hier meinen Senf dazu geben. Ich habe ebenfalls nach Lösungen gesucht, wie das Trainieren des Bayes Filter in UCS etwas komfortabler gestaltet werden kann, wenn Zarafa benutzt wird.
Dabei bin ich über diesen Thread gestolpert und demzufolge das spamtrain WebApp - Plugin. Dieses konnte ich so zum laufen bekommen:

Normalerweise wird spamassassin im UCS täglich über einen cron - job trainiert, hier der entsprechende Auszug aus dem Script, welches letztlich per cron.daily aufgerufen wird:
Code: Select all
find /var/spool/cyrus/mail/domain/ \( -wholename \*/\*/\*/user/\*/Spam \) \
        -exec $SA_LEARN --dbpath /var/lib/amavis/.spamassassin --spam {} \;

find /var/spool/cyrus/mail/domain/ -wholename \*/\*/\*/user/\*/Ham \
        -exec $SA_LEARN --dbpath /var/lib/amavis/.spamassassin --ham {} \;

Wie zu sehen, werden dabei u.a. alle Mails in allen "Spam" Ordnern der Benutzer mittels /usr/bin/sa-learn verarbeitet. Da spamassassin bei Univention als amavis - "Plugin" läuft, wird per --dbpath Parameter die entspr. Bayes - DB angegeben.
Das Ganze funktioniert aber nicht, wenn Zarafa benutzt wird, denn in dem Fall liegen die Mails ja in der MySQL DB von Zarafa und nicht als mbox - Dateien irgendwo unterhalb von /var/spool.

Damit nun das spamtrain Plugin für die Zarafa Webapp richtig funktioniert, muß nach dessen Installation folgendes angepaßt werden:

1.) Der Aufruf in der config.php des Plugins muss so abgeändert werden:
Von:
Code: Select all
/** Spam Filter train commands (choose the one suitable for your setup) */
// DSPAM with shared spam database
define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', '/usr/bin/dspam --user dspam --source=error --class=spam');
define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', '/usr/bin/dspam --user dspam --source=error --class=innocent');
// DSPAM with per user spam database
//define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', '/usr/bin/dspam --user %u --source=error --class=spam');
//define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', '/usr/bin/dspam --user %u --source=error --class=innocent');
// SpamAssassin with per user database
//define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', '/usr/bin/sa-learn --spam --username %u');
//define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', '/usr/bin/sa-learn --ham --username %u');


Nach:
Code: Select all
/** Spam Filter train commands (choose the one suitable for your setup) */
// DSPAM with shared spam database
//define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', '/usr/bin/dspam --user dspam --source=error --class=spam');
//define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', '/usr/bin/dspam --user dspam --source=error --class=innocent');
// DSPAM with per user spam database
//define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', '/usr/bin/dspam --user %u --source=error --class=spam');
//define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', '/usr/bin/dspam --user %u --source=error --class=innocent');
// SpamAssassin with per user database
define('PLUGIN_SPAMTRAIN_TRAIN_SPAM_CMD', 'sudo /usr/bin/sa-learn --spam --dbpath /var/lib/amavis/.spamassassin');
define('PLUGIN_SPAMTRAIN_TRAIN_HAM_CMD', 'sudo /usr/bin/sa-learn --ham --dbpath /var/lig/amavis/.spamassassin');

Es müssen also zum Einen die sa-learn Kommandos "Einkommentiert" und die "dspam" - Kommandos "auskommentiert" werden. Des weiteren muß statt des "--username" - Parameters der "--dbpath" Parameter (s. Univention Cron - Script) benutzt werden.

2.)
Da das Verzeichnis "/var/lib/amavis/.spamassassin" nur vom Benutzer "amavis" beschrieben werden darf, das sa-learn Kommando aber als "www-data" abgesetzt wird (es kommt ja letztlich vom Webserver, der als www-data läuft), habe ich hier "sudo" verwendet, damit das sa-learn Kommando mit root - Rechten aufgerufen wird, und so in das Verzeichnis "/var/lib/amavis/.spamassassin" schreiben kann.
Damit das klappt, muß das dem www-data "erlaubt" werden. Dazu in "/etc/sudoers.d/" eine neue Datei anlegen (bspw. "www-data"):

Code: Select all
cmnd_Alias SALEARN = /usr/bin/sa-learn
%www-data ALL=(ALL) NOPASSWD: SALEARN

Damit darf fortan der Benutzer "www-data" den Befehl "/usr/bin/sa-learn" per "sudo" mit root-Rechten ausführen, ohne nach seinem Passwort gefragt zu werden.

Wenn man dann in der WebApp eine Mail per Kontext-Menü als "Spam" kennzeichnet, wird das konfiguierte sa-learn Kommando aufgerufen und - wenn dieses mit RC 0 zurück kommt - die Mail anschließend gelöscht.
Sollte ein Fehlerfenster erscheinen (das evtl. sogar keinen Text enthält), kann man mit Aktivieren des Loggings in der config.php:
Code: Select all
/** Logging */
define('PLUGIN_SPAMTRAIN_LOGGING_ENABLED', true);
define('PLUGIN_SPAMTRAIN_LOGGING_FILE', '/tmp/spamtrain.log');


auf Fehlersuche gehen.

Vllt. hilft das ja hier dem Ein oder Anderen weiter...

Viele Grüße
T0mcat
t0mcat
 
Posts: 15
Joined: Sat 25. Apr 2015, 16:06

Re: Zarafa spamtrain und UCS

Postby t0mcat » Thu 18. Feb 2016, 11:53

Und weiter gehts....

Habe mir das hier:
fbartels wrote:Ansonsten könnte das von mir in https://github.com/zarafa4ucs/zarafa4uc ... -160276783 genannte Skript auch interessant sein. Dieses arbeitet Serverseitig und erfasst damit auch Mails die z.B. über ein Mobiltelefon als Spam/Ham markiert werden.


mal angesehen und auch das funktioniert offensichtlich gut.
Hier muß lediglich in der "zarafa-spamhandler.cfg" das spamcommand geändert werden:
Code: Select all
[spamcommand]
command = /usr/bin/sa-learn --spam --dbpath /var/lib/amavis/.spamassassin/

(Dies wurde vorher per "sudo -u amavis" als amavis ausgeführt. Wenn geplant ist, das script als "root" auszuführen, ist das mMn. nicht nötig)

Wenn man nun zarafa-spamhandler.sh ausführbar macht und ausführt, funktioniert das Ganze auch gut und kann somit als Cron-Job eingerichtet werden.
t0mcat
 
Posts: 15
Joined: Sat 25. Apr 2015, 16:06

Re: Zarafa spamtrain und UCS

Postby sakgRtd2w » Mon 31. Oct 2016, 16:14

I'm trying to "install" the spamtrain plugin. I'm having trouble to find out which folder to place it in. I would expect the webapp folder to be in /var/www, but it isn't. Can anyone tell me?

NB: with "find . -name "webapp" -type d", I find only /etc/zarafa/webapp. It has a htaccess file, but I am not used to find webcontent in /etc
sakgRtd2w
 
Posts: 6
Joined: Mon 31. Oct 2016, 15:52

Re: Zarafa spamtrain und UCS

Postby fbartels » Mon 31. Oct 2016, 18:07

Hello sakgRtd2w,

the webapp itself is located in /usr/share/zarafa-webapp. The plugins are installed in subfolders of the folder "plugins".
User avatar
fbartels
 
Posts: 286
Joined: Wed 18. Dec 2013, 17:51
Location: Hannover/Delft

Re: Zarafa spamtrain und UCS

Postby sakgRtd2w » Sat 12. Nov 2016, 17:49

Thanks! Running "/usr/bin/sa-learn --spam --dbpath /var/lib/amavis/.spamassassin/" takes a long time as it seems. I wonder how I can check whether it works well?
sakgRtd2w
 
Posts: 6
Joined: Mon 31. Oct 2016, 15:52


Return to Mail

Who is online

Users browsing this forum: No registered users and 1 guest

cron