Mail Server SPAM Mails im DSM 4.0 Mailserver werden nicht in Junk Folder verschoben

Status
Für weitere Antworten geschlossen.

shiver

Benutzer
Mitglied seit
20. Mrz 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen

Ich bin eigentlich glücklicher Besitzer einer DS 212+ mit mittlerweile DSM 4.0 darauf.
Da ich auf der DSM einen Mailserver bei mir betreibe, bin ich mit dem leidigen Thema SPAM konfrontiert.
Eigentlich hatte ich gehofft, dass dies in DSM 4.0 endlich gelöst wird - aber dies ist scheinbar nicht der Fall.

Folgendes: Ich will ganz einfach die SPAM Mails, welche im Mailserver durch das Setzen des Häkchens "Spam-Filter aktivieren" im E-Mail-Server der DSM Systemsteuerung als *****SPAM***** markiert werden, in den dafür ja eigentlich vorgesehenen Folder "Junk" verschieben lassen, BEVOR sie auf einem Client (iPhone, Outlook, Thunderbird etc.) landen.

Gemäss div. Foreneinträgen sollte dies mit procmail (dovecot-sieve ist mir zu kompliziert mit kompilieren etc.) problemlos möglich sein, indem man "nur" zwei Files im jeweiligen Benutzerverzeichnis erstellt:

.forward
Rich (BBCode):
"|/usr/syno/mailstation/sbin/procmail -t"

.procmailrc
Rich (BBCode):
PATH=/usr/syno/mailstation/sbin:/usr/syno/mailstation/bin
VERBOSE=off
MAILDIR=$HOME/.Maildir
DEFAULT=$MAILDIR/
LOGFILE=$HOME/procmail.log
LOCKFILE=$HOME/.lockmail

#### SPAM Handling begin
:0:
* ^X-Spam-Flag: YES
.Junk/

:0:
* ^Subject:.*(*****SPAM*****)
.Junk/
#### Spam handling end

Leider tut sich so - auch nach x-mal herumexperimentieren (alles in vi auf der Konsole erstellt, Berechtigungen gesetzt, etc.) überhaupt nichts...die SPAM Mails werden nachwievor in den Posteingang geliefert.

Hat irgend Jemand in DSM 4.0 (oder 3.2) dies zum Laufen gebracht?
Ich wäre froh um jeden Tipp oder um eine einfache Anleitung zur Fehlereingrenzung, da ich nicht so versiert im Linux-Debugging bin.

Danke und Gruss,
shiver
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
2 Sachen: prüf mal das Logfile unter
$HOME/procmail.log und ggf stell den procmail mittels verbose=on so ein, dass er mehr von sich gibt
 

shiver

Benutzer
Mitglied seit
20. Mrz 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Danke für die schnelle Antwort!

2 Sachen: prüf mal das Logfile unter
$HOME/procmail.log und ggf stell den procmail mittels verbose=on so ein, dass er mehr von sich gibt

Das Lustige ist eben, dass ich im Home-Verzeichnis gar kein Logfile habe. Dieses würde ja automatisch erstellt, oder?
Wie stelle ich sicher, dass .forward wirklich aufgerufen wird, dieses den procmail startet und procmail das .procmailrc auch wirklich abfragt?
Vielleicht hapert es schon da...aber ist für mich schwer prüfbar. Habe auch schon das "-t" im .forward rausgenommen, damit ich die Rückmeldung erhalte, was passiert. Hat aber nix gebracht.

Soviel ich weiss, ist der Weg so:
- postfix verwaltet die Mailerei
- dovecot empfängt die Mails (habe POP und IMAP aktiviert und beides funzt gut)
- spamassassin prüft diese und markiert sie (Score und Subject)
- procmail sortiert sie ein (default in den jeweiligen Posteingang des Benutzers)

Ist im $HOME ein .forward und ein .procmailrc drin, sollte statt dem default-Weg der Weg über den procmail-Aufruf im .forward erfolgen, korrekt?
Was ich möchte, ist schon mal sicherstellen, dass bei einem neuen Mail für Benutzer x der Weg über den Aufruf im $HOME erfolgt.
Wie überprüfe ich dies?

Habe mal verbose auf on gestellt. Muss ich nach solchen Aktionen noch postfix neu starten oder kann man die beiden Files im $HOME bearbeiten und es wird sofort aktiv? (Habe teilweise postfix neu gestartet oder sogar die DS neu gebootet. Ist aber etwas mühsam, immer neu zu starten...und wohl auch nicht notwendig.)

Tnx und Grüsse
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ich kenn mich mit procmail nicht sehr aus. Aber damit procmail überhaupt involviert würde, müsste postfix eine Anweisung dazu haben (meist in master.cf) d.h. postfix würde an Spamassassin übergeben und die Rücklieferung von SA mittel procmail in die Usermailboxen schreiben.
Zudem könnte ich mir vorstellen das $HOME nicht immer sauber aufgelöst wird. Probier das auch mal mit dem absoluten Pfad zu deinem home z.B. /volume1/homes/DEIN_BENUTZER
Guck dir mal das (http://www.postfix-howto.de/konfiguration/procmail.htm) an. Dort steht auch ein möglicher Eintrag für procmail in master.cf (das Basisverzeichnis bei der DS für Mail ist /usr/syno/mailstation/)
 

darthmaul

Benutzer
Mitglied seit
19. Mrz 2012
Beiträge
26
Punkte für Reaktionen
1
Punkte
3
Bei mir funzt es

Also bei mir hat der Weg über die 2 Files funktioniert, allerdings mit der Bedingung, dass ich die Files (.forward & .procmailrc) nicht mit einem Windows-Editor, sondern mit vi über's Terminal (als root) erstellt habe. Weiters habe ich mit chown benutzername:users (in meinem Fall christian:users) den Besitzer entsprechend geändert. Dann noch chmod 600 auf die 2 Dateien loslassen und dann habe ich noch /usr/syno/mailstation/sbin/postfix reload aufgerufen.
Dann ist nach dem ersten Eintreffen der Mails ein Logfile erzeugt worden und die SPAM Mails sind in den Junk Ordner gewandert.

Grüße
Christian
 
Zuletzt bearbeitet:

shiver

Benutzer
Mitglied seit
20. Mrz 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Ich versuche dies auch (noch)mal in dieser Sequenz. Evtl. hilft's - danke schon für die Beschreibung darthmaul!
 

shiver

Benutzer
Mitglied seit
20. Mrz 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Problem gelöst!

Hallo zusammen

Also, das Problem lag wahrscheinlich beim Owner der Files.
Habe folgendes gemacht und nun funktionierts:

- Terminal aufrufen, als root einloggen und ins Userverzeichnis wechseln (USER = jeweiliger Benutzername)
- File .forward erstellen
Rich (BBCode):
cd /volume1/homes/USER
vi .forward

- folgendes reinkopieren ("I" drücken und nach dem Reinkopieren "ESC" drücken)
Rich (BBCode):
"|/usr/syno/mailstation/sbin/procmail -t"
- mit :wq! File speichern und vi beenden
- Owner (USER = jeweiliger Benutzer) und Berechtigung des Files ändern
Rich (BBCode):
chown USER:users .forward
chmod 600 .forward

- File .procmailrc erstellen (Prüfung auf Subject und SPAM-Score; Verschiebung in den SPAM-Ordner ".Junk")
Rich (BBCode):
cd /volume1/homes/USER
vi .procmailrc
- SPAM-Handling reinkopieren
Rich (BBCode):
PATH=/usr/syno/mailstation/sbin:/usr/syno/mailstation/bin
VERBOSE=off
MAILDIR=$HOME/.Maildir
DEFAULT=$MAILDIR/
LOGFILE=$HOME/procmail.log
LOCKFILE=$HOME/.lockmail

#### SPAM Handling begin
:0:
* ^X-Spam-Flag: YES
.Junk/

:0:
* ^Subject:.*(*****SPAM*****)
.Junk/
#### Spam handling end
- mit :wq! File speichern und vi beenden
- Owner und Berechtigung des Files ändern
Rich (BBCode):
chown USER:users .procmailrc
chmod 600 .procmailrc

- Postfix neu starten
Rich (BBCode):
/usr/syno/mailstation/sbin/postfix reload

Dies jeweils für jeden gewünschten USER ausführen. (Start von Postfix kann auch einfach am Schluss nach allen Benutzern gemacht werden).
Besten Dank für die Hilfestellungen!
Hoffe, die Anleitung hilft anderen Mailserver-Newbies...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Top das es jetzt funzt. Die Rechte sind bei Mailservergeschichten immer sehr heikel :)
Darf ich fragen was für dich (euch) das Killerargument für procmail was/ist?
 

shiver

Benutzer
Mitglied seit
20. Mrz 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Top das es jetzt funzt. Die Rechte sind bei Mailservergeschichten immer sehr heikel :)
Darf ich fragen was für dich (euch) das Killerargument für procmail was/ist?

hi jahlives

für mich sollte möglichst wenig modding drin sein. procmail ist seit DSM 3.2 fixer bestandteil. desgleichen spamassassin. die leute von synology haben nur "vergessen", eine funktion mehr einzubauen, die die SPAM-mails bei bedarf auch in den junkfolder verschiebt.
mit den beiden files kann man dementsprechend procmail für dieses filtering einsetzen - ohne zusatzinstallationen/moddings etc. über ipkg mit kompilation usw.

ist also wohl das einfachste, wenn man einen mailserver betreibt und die SPAM-mails nicht im posteingang haben will...

beste grüsse,
shiver
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ist also wohl das einfachste, wenn man einen mailserver betreibt und die SPAM-mails nicht im posteingang haben will...
bei einfach stimm ich Dir zu, aber nicht sehr mächtig ;-) Mit dovecot-sieve kannst du z.B. auf sämtliche POP-IMAP Eigenschaften einer Mail zugreifen und diese u.U. auch verändern z.B. spezielle Markierungen, gelesen/ungelesen. Ich kenne jetzt procmail zu wenig, aber so wie ich das sehe, verschiebt procmail die Mails direkt in der Mailbox. imho wäre es besser dies vom dovecot selber machen zu lassen (dovecot-sieve). Dann wird das sieve nach dem Verschieben der Mail den dovecot anweisen die Indices der Verzeichnisse der Mailbox sofort zu aktualisieren. andernfalls muss man warten bis dovecot die Indices von selber prüft und aktualisiert.
 

rozu

Benutzer
Mitglied seit
04. Mrz 2009
Beiträge
97
Punkte für Reaktionen
1
Punkte
8
Hi Shiver
Das ist ja ne tolle Anleitung, aber als erfahrener User aus der Windowswelt versteh ich hier leider fast nur Bahnhof. Ich möchte das Spam-verschieben-Problem gerne auch lösen. Nehm ich da einen Editor wie Putty oder was empfiehlst Du für einen Anfänger? Und dann wie logge ich in die Syno ein (die liegt bei bei mir auf einer eigenen WAN-Adresse, nicht im LAN). Kann ich - wenn ich es einmal schaffe, als root einzuloggen - Deine aufgeführten Befehle einen nach dem anderen eingeben? Und wenns schiefläuft, wie stelle ich die Ursprungskonfiguration wieder her?
Ich weiss, ein bisschen viel verlangt... Eigentlich wäre ich auch super glücklich, wenn die Programmierer dies endlich fixen würden. Bei den ersten Versionen der Mailstation hat dies nämlich noch funktioniert.
Herzlichen Dank anyway!
 

shiver

Benutzer
Mitglied seit
20. Mrz 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
hallo rozu
ist ganz einfach: mit putty über windows als root einloggen per ssh (kannst du in den einstellungen deiner diskstation aktivieren), die befehle ausführen und voila.
wenn du es nicht mehr willst: einfach die beiden erstellten dateien im homeverzeichnis des jeweiligen users löschen. das kannst du dann sonst auch per DSM file machen. geändert wir da nix an der konfiguration.
ich bin übrigens auch windows-user und musste mir mühsam ein paar linux-kniffe aneignen... :)

beste grüsse,
shiver
 

Joesix

Benutzer
Mitglied seit
08. Feb 2012
Beiträge
137
Punkte für Reaktionen
0
Punkte
0
Ich weiß nicht ob diese simple Variante auf mit den via POP3 abgeholten Mails funktioniert (ich bekomme alles via SMTP zugestellt) aber zwei einfache Dateien im Home Ordner genügen so dass alle Spam Mails automatisch verschoben werden:

Der procmail-Pfad gilt für DSM 4.1 Beta und muss bei älteren Versionen angepasst werden!

Rich (BBCode):
.forward:

"|/volume1/@appstore/MailStation/bin/procmail -t"

und

Rich (BBCode):
.procmailrc:

PATH=/usr/syno/mailstation/sbin:/usr/syno/mailstation/bin
VERBOSE=yes
MAILDIR=$HOME/.Maildir
DEFAULT=$MAILDIR/
LOGFILE=$HOME/.procmail.log
LOCKFILE=$HOME/.lockmail

#### SPAM Handling begin
:0:
* ^X-Spam-Flag: YES
.Junk/

:0:
* ^Subject:.*(*****SPAM*****)
.Junk/
#### Spam handling end

Dieses übernommene Beispiel verschiebt alle Spams in den Junk Ordner...
 

rozu

Benutzer
Mitglied seit
04. Mrz 2009
Beiträge
97
Punkte für Reaktionen
1
Punkte
8
vielen dank shiver, ich werds probieren und rückmeldung geben, was ich da angerichtet habe... :rolleyes:
mit gruss aus zürich, rozu
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@jahlives würde deine Anleitung http://syno.brain-force.ch/dovecot_sieve_installieren auch mit DSM 4.1 Funktionieren?
gute Frage :) Habs schon seit etlichen Firmware nicht mehr gemacht. Zudem weiss ich ned ob Syno ggf die Software (v.a. dovecot) versionsmässig angepasst hat. Allerdings habe ich schon bemerkt, dass sich gewisse Dinge, die sich früher bauen liessen, heute nicht mehr bauen lassen. Allerdings habe ich bis jetzt auch nicht viel Energie reingesteckt, um dahinter zu kommen was da los ist. Ich würde mal sagen du hast ne 50:50-Chance dass es klappen könnte :)
Wenn ich den haken "Spam-Filter aktivieren" setze, werden meine Mails noch nicht einmal markiert. Woran kann das liegen?

Spamfilter brauchen Training bis sie einigermassen effektiv sind. Am Anfang wird sehr wenig Spam erkannt, das ist bei Spamassassin immer so. Das Training ist v.a. für die statistischen Wortfilter, welche sehr treffsicher sind, wenn der Filter mal trainiert ist.
 

Creatixchris

Benutzer
Mitglied seit
19. Dez 2011
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Wie kann ich den DS eigenen Spamfilter Trainieren? Und danach markiert er auch den Spam automatisch?
Sehe ich es wenn die Mail durch den Spamassassin geprüft wurde?
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
spamassassin sollte unabhängig vom Resultat sogenannte Header in die Mail einfügen. Die siehst du wenn du den Quelltext einer Mail anguckst. Spamassassin wird mit dem Kommando sa-learn trainiert. Allerdings weiss ich noch aus früheren Zeiten, dass dies mit der Firmware immer Ärger gegeben hat. guck mal ob das Kommando sa-learn bei dir vorhanden ist. Alternativ könnte man, wenn sa-learn von der Firmware nicht geht, auch Spamassassin von ipkg installieren. Im Wiki haben wir glaub auch noch was zum Thema sa-learn resp Spamassassin
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat