Synology MailStation – Spam Mails automatisch verschieben

Da Synology mit der DSM 4 Version sämtliche Verzeichnisse geändert hat, stimmen leider viele Foren/Blog/Wiki Beiträge nicht mehr zu dem Thema.

Also anbei mal eine einfache Kurzfassung für DSM 4.2 und neuer, Spamassassin kann zwar aktiviert werden in der MailStation, markiert aber Emails nur mit *****SPAM***** als Betreff und verschiebt diese nicht automatisch.

Damit das Ganze klappt, einfach in den Home Ordner vom User eine Datei mit anlegen mit dem Namen: .forward

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

Dann noch eine weitere Datei anlegen mit dem Namen: .procmailrc

PATH=/volume1/@appstore/MailStation/bin
MAILDIR=$HOME/.Maildir
DEFAULT=$MAILDIR/
#LOGFILE=$HOME/procmail.log

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

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

Damit werde die Emails in den Ordner Junk verschoben.

Wer ganze Protokolliert haben möchte bei Logfile die # entfernen.

Optional noch beide Dateien auf den Benutzer zuweisen und nur Lese/Schreibrechte für diesen über die FileStation mit Rechtsklick Eigenschaften oder halt mit

chown USERNAME:users .forward
chmod 600 .forward
chown USERNAME:users .procmailrc
chmod 600 .procmailrc

In der .procmailrc könnten auch noch weitere Sortierregeln erstellt werden. Hier http://www.butschek.de/procmail-faq/ findet man noch eine Übersicht was noch so möglich ist.

Da Spamassassin alleine nur wenig Spam findet gibt es noch zusätzlich die bayes Datenbank.

Diese muss leider noch selbst angelegt werden. Dazu einfach in der folgenden Datei den Inhalt hinzufügen:

bis MailServer 1.1: /volume1/@appstore/MailServer/etc/spamassassin/local.cf

use_bayes 1
bayes_auto_learn 1
bayes_auto_learn_threshold_nonspam 0.01
bayes_auto_learn_threshold_spam 5.0
bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:spamassassin_db:localhost
bayes_sql_username [COLOR="#006400"]DB-USER[/COLOR]
bayes_sql_password [COLOR="#006400"]PASSWORT[/COLOR]
bayes_sql_override_username spamassassin

Wen es stört, dass der Spam oder falsch erkannte Spam in einem Spambericht als Anhang ins Postfach zugestellt wird, muss in der selben Konfig noch report_safe auf 0 ändern.

ab MailServer 1.2: /volume1/@appstore/MailServer/etc/template/spamassassin.template

bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:spamassassin_db:localhost
bayes_sql_username DB-USER
bayes_sql_password PASSWORT
bayes_sql_override_username spamassassin

Werte für für autolearn und Spam in Anhang verkapseln können in der DSM eingestellt werden. Emails als Spam markieren ist ungefähr ein Wert von 4-8 zu verwenden, je nachdem wie schnell mal diese im Spam haben möchte.

Dann noch die spamassassin_db selbst anlegen z.B. mit phpMyAdmin folgendes SQL importieren:

CREATE TABLE bayes_expire (
  id int(11) NOT NULL default '0',
  runtime int(11) NOT NULL default '0',
  KEY bayes_expire_idx1 (id)
) ENGINE=MyISAM;

CREATE TABLE bayes_global_vars (
  variable varchar(30) NOT NULL default '',
  value varchar(200) NOT NULL default '',
  PRIMARY KEY  (variable)
) ENGINE=MyISAM;

INSERT INTO bayes_global_vars VALUES ('VERSION','3');

CREATE TABLE bayes_seen (
  id int(11) NOT NULL default '0',
  msgid varchar(200) binary NOT NULL default '',
  flag char(1) NOT NULL default '',
  PRIMARY KEY  (id,msgid)
) ENGINE=MyISAM;

CREATE TABLE bayes_token (
  id int(11) NOT NULL default '0',
  token char(5) NOT NULL default '',
  spam_count int(11) NOT NULL default '0',
  ham_count int(11) NOT NULL default '0',
  atime int(11) NOT NULL default '0',
  PRIMARY KEY  (id, token)
) ENGINE=MyISAM;

CREATE TABLE bayes_vars (
  id int(11) NOT NULL AUTO_INCREMENT,
  username varchar(200) NOT NULL default '',
  spam_count int(11) NOT NULL default '0',
  ham_count int(11) NOT NULL default '0',
  token_count int(11) NOT NULL default '0',
  last_expire int(11) NOT NULL default '0',
  last_atime_delta int(11) NOT NULL default '0',
  last_expire_reduce int(11) NOT NULL default '0',
  oldest_token_age int(11) NOT NULL default '2147483647',
  newest_token_age int(11) NOT NULL default '0',
  PRIMARY KEY  (id),
  UNIQUE bayes_vars_idx1 (username)
) ENGINE=MyISAM;

Danach kann die Datenbank noch gefüttert werden mit:

/volume1/@appstore/MailServer/bin/sa-learn --ham /volume1/homes/USERNAME/.Maildir/cur
/volume1/@appstore/MailServer/bin/sa-learn --spam /volume1/homes/USERNAME/.Maildir/.Junk/cur

Die DNSBL Liste /volume1/@appstore/MailServer/etc/MailScanner/spam.lists.conf kann ersetzt durch:

spamhaus-ZEN        zen.spamhaus.org.
spamcop.net        bl.spamcop.net.
iX Heise        ix.dnsbl.manitu.net.
Barracuda        b.barracudacentral.org.
SORBS            dnsbl.sorbs.net.
abuse.ch-Spam        spam.abuse.ch.
abuse.ch-Drone    drone.abuse.ch.
StopSpam        block.stopspam.org.

In der Original stehen einige Listen mehrfach drinnen, einmal einzeln für jeden Bereich + die Liste mit allen Bereichen. Und dann sind noch paar drinnen die garnicht mehr aktuell sind.

Dieses sind aber nur zur Spambewertung, für direkte Ablehnung (reject) müssen diese in MailServer angegeben werden bei Sicherheit.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert