close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 3 years ago

Closed 2 years ago

Last modified 2 years ago

#5047 closed Verbesserung (erledigt)

Spam-Mail-Ordner und Sieve-Regel

Reported by: Rüdiger Kupper Owned by: Rüdiger Kupper
Priority: bald erledigen Milestone: Schuljahr 2023/24
Component: Webdienst: Mail Severity: beeinträchtigt den Unterricht einiger Lehrer
Keywords: Cc: tgs-it@…, bau

Description

Hallo Jens, mich aus dem Spamfilter zu nehmen hat geklappt, ich bekomme jetzt dir Spam (juhu ;-)). Es sind nicht übermäßig viele, eine handvoll täglich.
Für den Sieve-Filter bräuchte ich etwas, das sich leicht filtern lässt. Momentan steht im Header der Spam-Score als Zahl, das bekomme ich Sieve eher nicht beigebracht.
Die Mails, die Du für mich aus der Quarantäne befreit hattest, hatten im Subject [SPAM] stehen. Das ließe sich leicht filtern. Vermutlich kan Spamassassin auch noch andere Header schreiben. Kannst Du das aktivieren?

Change History (27)

comment:1 by Rüdiger Kupper, 3 years ago

Cc: bau added
Status: new → accepted
@bau
Wir bräuchten außerdem für jeden Mailnutzer einen automatisch angelegten Spam-Ordner, der am Besten auch noch alle 30 Tage geleert wird. Wo würde man das konfigurieren?

comment:2 by bau, 3 years ago

Lieber Rüdiger,

ich scheine für Euer Keppler Trac keine Schreibrechte zu haben (bekomme aber die Notifications und kann mir das Ticket auch ansehen). Ansonsten hätte ich folgendes gern sofort am Ticket kommentiert.

Dass Du keine eindeutige Spam-Kennzeichnung erhältst liegt an einem klassischem Fehler, dem ich aufgesessen bin: das Subject ändert erst eine Regel, die bei Dir nun als Mitglied der Gruppe ohne Spamfilterung nicht mehr ausgeführt wird (weil das PMG derzeit noch keine Negation als Operator bei den Filterregeln kennt - einen entsprechenden Feature Request gibt es im PMG-Forums schon seit längerem und ist auch von Proxmox angenommen worden).

Ich habe dieses "Action Object" nun aufgenommen, so dass es im Header nicht nur den errechneten Spam-Level im Feld X-SPAM-LEVEL geben sollte, sondern auch ein eindeutiges "[SPAM]" am Beginn des Subjects.

Bitte melde Dich gern, wenn es nicht funktionieren sollte.

Liebe Grüße,
Jens

comment:3 by bau, 3 years ago

Probleme werden auch von hill gemeldet:
Lieber Jens,

seit gestern versuche ich mich mit meiner Dienst-E-Mail-Adresse bei Fobizz zu registrieren. Leider gelingt es mir nicht, weil die automatisierte E-Mail, mit der ich meine Adresse bestätigen soll, nicht ankommt. Ich habe bereits zweimal eine neue E-Mail angefordert und auch im Spam-Ordner nachgesehen - ohne Erfolg.
Kann es sein, dass das System diese E-Mail zurückhält?

Viele Grüße

Sebastian

comment:4 by bau, 3 years ago

Die Spam-Ordner muss man als Cronjob anlegen, das geht mit sieve-Befehlen automatisiert.
Auch die Löschung kann automatisiert werden (das habe ich bei den Mailquota-Überschreitungen so gemacht).
Das Script der Mailquota-Überschreitungen (/usr/local/sbin/mailquota.sh) können wir erweitern.

comment:5 by bau, 3 years ago

Jens Herbers schreibt:

Die SIEVE-Regel sollte meiner Recherche nach etwa so aussehen müssen (wenngleich das meine erste SIEVE-Regel ist):

Require ["mailbox", "fileinto"]

if header :contains "Subject" "[SPAM]" {

If mailboxexists "INBOX.Spam" {

fileinto "INBOX.Spam";

} else {

fileinto :create "INBOX.Spam";

}

}

comment:6 by bau, 3 years ago

Damit würde das Anlegen der Ordner entfallen.

comment:7 by Rüdiger Kupper, 3 years ago

Ah, super! Sieht gut aus :-).

@JensHerbers
Du kannst Dich im Trac tatsächlich nicht einloggen ohne Account bei uns. Du kannst aber einfach auf die Mails antworten (Reply drücken und Subject unverändert lassen.) Dann erscheint Deine Mail automatischn als Kommentar im Ticket.

in reply to:  2 comment:8 by Rüdiger Kupper, 3 years ago

Replying to bau:

Ich habe dieses "Action Object" nun aufgenommen, so dass es im Header nicht nur den errechneten Spam-Level im Feld X-SPAM-LEVEL geben sollte, sondern auch ein eindeutiges "[SPAM]" am Beginn des Subjects.

Klappt, danke! Mit der Sieve-Regel, die Du gebastelt hat, müssten wir das eigentlich sofortt umsetzen können :-).

Übrigens: Auch Deine eigenen Mails wurde als [SPAM] klassifiziert:

  • "[SPAM] Zustellzeiten Mails" (X-Spam-Level 0) – verstehst Du das?
  • "[SPAM] WG: [Kepler-Trac] #5047: Spam-Mail-Ordner und Sieve-Regel​" (X-Spam-Level 1)

Wieso die Zustellzeiten-Mail das [SPAM] bekommen hat, wenn sie Level 0 hat, verstehe ich nicht

comment:9 by Rüdiger Kupper, 3 years ago

Nächste Frage wäre dann, ob wir es auch hinbekommen, dass Spamassassin von den Usern lernt: Kann ein Nutzer Mail absichtlich in den Spam-Ordner verschiebt oder sie aus dem Spam-Ordner in den Eingang verschiebt, kann Spamassassin das lernen?

An der Uni hatten wir das vor Jahren mal so konfiguriert, da lief der Spamassassin allerdings lokal auf meinem Rechner und hat das "Junk"-Verzeichnis von Thunderbird irgendwie überwacht und seinenen Bayes-Filter damit trainiert…

comment:10 by Rüdiger Kupper, 3 years ago

Habe mir grade ein sieve-Skript ins Verzeichnis /etc/sieve/k/kup auf dem paedml gelegt. Die Dinger müssen aber noch aktiviert werden (in Bytecode übersetzt). Das geht mit "sieveshell", wie ich ergoogelt habe.
Dabei muss man sich als user "cyrus" authentifizieren.

@bau
Ich kenne das PW von cyrus nicht. Kannst Du mir das schreiben (nicht im Ticket!)

comment:11 by Rüdiger Kupper, 3 years ago

Aufruf ist dann (auf dem paedml)

sieveshell --authname=cyrus --user=<user> localhost

Dann müsste man in einer Shell landen und den Befehl "activate <scriptname>" absetzen können.

comment:13 by Rüdiger Kupper, 2 years ago

Es gibt jetzt auf dem paedml ein Script “kepler—install-sieve-filter <uid> <uid …>”. Es installiert und aktiviert ein vorgegebenes Template (zu finden in /etc/default/kepler—sieve) als Sieve-Filter für den/die gegebenen User.

Todo
  • Jens Herbers bitten, die Spammails für alle Nutzer auszuliefern, markiert als SPAM.
  • Skript für alle Nutzer aufrufen
  • Nutzer informieren

Dieses Skript muss dann auch beim anlegen eines neuen Nutzers einmalig ausgeführt werden. (Gibt es dafür einen Hook?)

comment:14 by Rüdiger Kupper, 2 years ago

Der Aufruf, um das Skript für alle Nutzer zu aktivieren wäre dann einfach

kepler—install-sieve-filter $(teachers) $(students)

comment:15 by Rüdiger Kupper, 2 years ago

Vielleicht bekommen wir es noch hin, den Header "X-SPAM-LEVEL" so zu konfigurieren, dass er Sternchen enthält statt einer Zahl. Momentan sieht der Header z.B. so aus:

X-SPAM-LEVEL: Spam detection results:  7
	DKIM_SIGNED               0.1 Message has a DKIM or DK signature, not necessarily valid
	DKIM_VALID               -0.1 Message has at least one valid DKIM or DK signature
	DKIM_VALID_AU            -0.1 Message has a valid DKIM or DK signature from author's domain
	HEADER_FROM_DIFFERENT_DOMAINS   0.25 From and EnvelopeFrom 2nd level mail domains are different
	HTML_MESSAGE            0.001 HTML included in message
	KAM_BODY_MARKETINGBL_PCCC  0.001 Body contains URI associated with mass-marketing (https://raptor.pccc.com/RBL) [mailchi.mp,list-manage.com,mailchimp.com]
	KAM_MARKETINGBL_PCCC        1 Message contains URI associated with mass-marketing (https://raptor.pccc.com/RBL)
	MIME_QP_LONG_LINE       0.001 Quoted-printable line longer than 76 chars
	NBL_0SPAM                   1 Spam Source Networks, high volume of 0SPAM spam trap hits in a Class C block
	RCVD_IN_DNSWL_NONE     -0.0001 Sender listed at https://www.dnswl.org/, no trust
	RCVD_IN_HOSTKARMA_BL      1.5 Sender listed in HOSTKARMA-BLACK
	RCVD_IN_MSPIKE_H3       0.001 Good reputation (+3)
	RCVD_IN_MSPIKE_WL       0.001 Mailspike good senders
	RD_BODY_1X1TRACK            1 Contains an Image from 1x1 until 9x9 Pixels
	SPF_HELO_PASS          -0.001 SPF: HELO matches SPF record
	SPF_PASS               -0.001 SPF: sender matches SPF record
	URIBL_GREY              1.084 Contains an URL listed in the URIBL greylist [list-manage.com]
	URIBL_SC_SWINOG             1 URI's listed in uribl.swinog.ch. [mailchimp.com,mcusercontent.com]
	URIBL_ZAPBL                 1 Contains an domain listed in the ZapBL RHSBL blocklist [mailchi.mp,mcusercontent.com,mailchimp.com]

Er sollte so aussehen:

X-SPAM-LEVEL: *******

Meines Wissens ist das auch die Standardeinstellung, im Manual steht:

X-Spam-Level: header
A series of * charactes where each one represents a full score point.

Bei uns ist dieser Header offenbar anders konfiguriert, das müsste irgendwo im Config-File stehen, vermutlich /etc/mail/spamassassin/local.cf.

Kann jemand mal in dem Configfile nachsehen oder es mir mal schicken?

comment:16 by bau, 2 years ago

Seit heute macht das das PMG:

X-SPAM-LEVEL: mit Sternchen
X-SPAM-STATUS: das, was bislang dort stand (PMG hat eine komische Vorstellung von X-SPAM-LEVEL)

in reply to:  16 comment:17 by Rüdiger Kupper, 2 years ago

Bei mir nicht ;-). Beide Header fehlen.


Replying to bau:

Seit heute macht das das PMG:

X-SPAM-LEVEL: mit Sternchen
X-SPAM-STATUS: das, was bislang dort stand (PMG hat eine komische Vorstellung von X-SPAM-LEVEL)

comment:18 by Rüdiger Kupper, 2 years ago

Resolution: → erledigt
Status: accepted → closed

Mein Fehler, hab nur intern zugestellte Mails angeschaut.
Klappt wie gewünscht!

comment:19 by Rüdiger Kupper, 2 years ago

Alles ist fertig, die Spam-Mails müssen nur ausgeliefert werden. Bekommen wir die Umstellung noch im Schuljahr hin?

comment:20 by bau, 2 years ago

RegEx ist eingetragen!
Mails werden nun ausgeliefert.
Allerdings liefern wir nun jeden Sch... aus.
Da gab es noch diverse Fragen, auf die ich noch keine Antwort erhalten habe ... Feintuning fehlt halt noch:

  • Ich würde z.B. ab einem SPAM-Level blocken (z.B. 8 .. 10)
  • Sollen SPAM-Scoures mit [SPAM?] getagged werden (z.B. 1..2)?

in reply to:  20 comment:21 by Rüdiger Kupper, 2 years ago

Replying to bau:

RegEx ist eingetragen!
Mails werden nun ausgeliefert.

Super! Dann installiere ich jetzt die Filter für alle Nutzer.
Hast Du die Mails nur für Lehrer freifegebenutzt oder auch für Schüler?

Allerdings liefern wir nun jeden Sch... aus.

Genau das ist die Idee ;-).

comment:22 by Rüdiger Kupper, 2 years ago

Erledigt. Sieve-Filter für alle Nutzer installiert und aktiviert.

comment:23 by bau, 2 years ago

Ich hoffe, dass die Regel auch macht, was sie soll:

[a-zA-Z]{0,5}@kg-fds.de

Bei mir kam jetzt noch kein SPAM rein.

in reply to:  20 comment:24 by Rüdiger Kupper, 2 years ago

Replying to bau:

  • Ich würde z.B. ab einem SPAM-Level blocken (z.B. 8 .. 10)
  • Sollen SPAM-Scoures mit [SPAM?] getagged werden (z.B. 1..2)?

Eigentlich müssen die Mails gar nicht mehr im Betreff markiert werden, jedenfalls nicht für den Filter. Fragt sich, ob es den Kollegen eher nützt oder sie verwirrt, wenn Mails mit niedrigem Spamlevel in ihrer Inbox landen, aber mit [Spam?] markiert sind?

Ob Du Mails mit sehr hohem Spamlevel weiterhin blocken willst hängt vielleicht davon ab, wie oft sowas vorkommt. Der Filter würde die ja auch in den Spam-Ordner einsortieren.

comment:25 by bau, 2 years ago

OK, das können wir also erstmal so lassen.
Die Mails, die im SPAM-Ordner eingruppiert werden sind ja auch nicht markiert.
Sollen die ein Tag bekommen oder reicht es, wenn die Mails einfach im Ordner landen?

comment:26 by Rüdiger Kupper, 2 years ago

Ich würde sagen, das reicht. Andere Maildienste machen es auch so.

comment:27 by Rüdiger Kupper, 2 years ago

Infomail ist raus.

Note: See TracTickets for help on using tickets.