customhost
New Member
Hallo zusammen,
nachdem ich mich nun lange mit dem automatischen Training von SpamAssassin beschäftigt habe, möchte ich meine Erkenntnisse nun gern mit euch teilen. Am Ende dieser Anleitung lernt SpamAssassin automatisch, sobald ein Benutzer über IMAP / Roundcube Mails in dem SPAM-Ordner verschiebt bzw. Mails aus dem SPAM-Ordner in den Posteingang.
Grundlage für diese Funktionalität sind diese Tutorials:
- https://www.howtoforge.com/perfect-server-debian-wheezy-apache2-bind-dovecot-ispconfig-3
- https://www.howtoforge.com/using-roundcube-webmail-with-ispconfig-3-on-debian-wheezy-apache2
1. Plugin "dovecot-antispam" installieren:
2. Dovecot-Konfiguration anpassen:
In der Sektion "protocol imap" das Plugin "antispam" hinzufügen:
In der Sektion "plugin" die relevanten Konfigurationseinträge für dovecot-antispam setzen (nähere Infos zu den einzelnen Einträgen: http://johannes.sipsolutions.net/files/antispam.html):
3. Dieses Skript (https://gist.github.com/kylemanna/d45a2be450de8ce6b79d) unter "/etc/dovecot/sa-learn-pipe.sh" erstellen:
speichern und anschließend ausführbar machen:
4. Neuen sudo-Benutzer "vmail" hinzufügen:
Anschließend entsprechende Berechtigungen vergeben:
nach Sektion "# User privilege specification" suchen, Benutzer "vmail" hinzufügen und speichern:
5. Roundcube-Konfiguration anpassen:
nach "$rcmail_config['plugins']" suchen und Plugin "markasjunk" hinzufügen:
6. Dovecot neustarten:
7. Fertig!
Von nun an könnt ihr den Spam-Filter selbst trainieren, indem ihr Mails in den IMAP-Ordner "Junk", "Spam" oder "SPAM" verschiebt bzw. falsch identifizierte Mails aus diesen Ordnern zurück in den Posteingang verschiebt. Außerdem findet man in Roundcube Webmail nun auch eine Option "als Spam markieren", die den Filter ebenfalls anlernt und die Mails automatisch in den Junk-Ordner verschiebt.
Mit folgendem Befehl könnt ihr dann noch kontrollieren, ob der Spam-Filter auch wirklich angelernt wird:
Die Einträge für "non-token data: nspam" und "non-token data: nham" sollten sich entsprechend verändern, wenn eine Mail als Spam eingestuft wird.
Ich hoffe diese kleine Anleitung hilft einigen von euch weiter.
nachdem ich mich nun lange mit dem automatischen Training von SpamAssassin beschäftigt habe, möchte ich meine Erkenntnisse nun gern mit euch teilen. Am Ende dieser Anleitung lernt SpamAssassin automatisch, sobald ein Benutzer über IMAP / Roundcube Mails in dem SPAM-Ordner verschiebt bzw. Mails aus dem SPAM-Ordner in den Posteingang.
Grundlage für diese Funktionalität sind diese Tutorials:
- https://www.howtoforge.com/perfect-server-debian-wheezy-apache2-bind-dovecot-ispconfig-3
- https://www.howtoforge.com/using-roundcube-webmail-with-ispconfig-3-on-debian-wheezy-apache2
1. Plugin "dovecot-antispam" installieren:
Code:
apt-get install dovecot-antispam
Code:
nano /etc/dovecot/dovecot.conf
Code:
protocol imap {
...
mail_plugins = quota imap_quota antispam
}
Code:
plugin {
...
antispam_debug_target = syslog
#antispam_verbose_debug = 1
antispam_backend = pipe
antispam_trash = Trash
antispam_spam = Junk;Spam;SPAM
antispam_allow_append_to_spam = no
antispam_pipe_program = /etc/dovecot/sa-learn-pipe.sh
antispam_pipe_program_spam_arg = --spam
antispam_pipe_program_notspam_arg = --ham
}
Code:
nano /etc/dovecot/sa-learn-pipe.sh
Code:
chmod +x /etc/dovecot/sa-learn-pipe.sh
Code:
sudo adduser vmail
Code:
sudo visudo
Code:
# User privilege specification
root ALL=(ALL:ALL) ALL
vmail ALL= (amavis) NOPASSWD: /etc/dovecot/sa-learn-pipe.sh
Code:
nano /etc/roundcube/main.inc.php
Code:
...
// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
//$rcmail_config['plugins'] = array();
$rcmail_config['plugins'] = array("markasjunk", "jqueryui", "ispconfig3_account", "ispconfig3_autoreply", "ispconfig3_pass", "ispconfig3_spam", "ispconfig3_fetchmail", "ispconfig3_filter");
...
Code:
/etc/init.d/dovecot restart
Von nun an könnt ihr den Spam-Filter selbst trainieren, indem ihr Mails in den IMAP-Ordner "Junk", "Spam" oder "SPAM" verschiebt bzw. falsch identifizierte Mails aus diesen Ordnern zurück in den Posteingang verschiebt. Außerdem findet man in Roundcube Webmail nun auch eine Option "als Spam markieren", die den Filter ebenfalls anlernt und die Mails automatisch in den Junk-Ordner verschiebt.
Mit folgendem Befehl könnt ihr dann noch kontrollieren, ob der Spam-Filter auch wirklich angelernt wird:
Code:
sa-learn --dbpath=/var/lib/amavis/.spamassassin --dump magic
Die Einträge für "non-token data: nspam" und "non-token data: nham" sollten sich entsprechend verändern, wenn eine Mail als Spam eingestuft wird.
Ich hoffe diese kleine Anleitung hilft einigen von euch weiter.