Seit Oktober 2018 habe ich auf meinem Server einen Dirty Hack am laufen.
Er sorgt dafür, dass die von den Usern als SPAM markierten emails als SPAM gelernt werden, um die Bayes Filter zu verbessern.
Meine Hoffnung war, dass dadurch die verbesserte Erkennung von Spam allen Usern zu Gute kommt.
Mittlerweile habe ich Buster und der hack funktioniert immer noch.
Deshalb hier meine Notizen:
Als root: usermod -aG vmail amavis chmod -R g+rx /var/vmail/ # Als amavis: su - amavis # Voraussetzung: Debian Stretch, nach "der perfekte Server" # Zustand VOR dem Lernen: sa-learn -D --username=amavis --dump magic # Anlernen HAM find /var/vmail/*/* -type d -not -path "*.Spam*" -not -path "*.Junk*" -not -path "*.Trash*" -not -path "*new*" -not -path "*tmp*" -not -path "*.Sent*" -not -path "*.Archive*" -not -path "*Maildir/cur*" -not -path "*dovecot*" -not -path "*sieve*" -not -path "*quotausage*" -not -path "*courier*" -type d -exec /usr/bin/sa-learn --ham {} \; # Anlernen SPAM /usr/bin/find /var/vmail/*/*/Maildir/ -type d \( -iname "*Junk*" -o -iname "*spam*" \) -exec /usr/bin/sa-learn --spam {} \; # Zustand NACH dem Lernen: sa-learn -D --username=amavis --dump magic #Als root: STRG-D # Die Gruppe kann IMHO bleiben chmod -R g-rx /var/vmail/
Das ganze habe ich in ein Script gepackt:
#!/bin/bash #/usr/local/sbin/spamlern.sh # Einmal als Root #usermod -aG vmail amavis # in Root crontab #nice chmod -R g+rx /var/vmail/ # Anlernen HAM (funktioniert aber ohne, wie ich gemerkt habe) #find /var/vmail/*/* -type d -not -path "*.Spam*" -not -path "*.Junk*" -not -path "*.Trash*" -not -path "*new*" -not -path "*tmp*" -not -path "*.Sent*"$ # Anlernen SPAM nice /usr/bin/find /var/vmail/*/*/Maildir/ -type d \( -iname "*Junk*" -o -iname "*spam*" \) -exec /usr/bin/sa-learn --spam {} \; >/dev/null # Zustand NACH dem Lernen: #sa-learn --username=amavis --dump magic|grep 'n*am'|mailx -s 'sa-lern Status' root echo "$(date +'%Y-%m-%d')$(sa-learn --username=amavis --dump magic |grep nspam|cut -c18-30)" >>/var/log/spam-lern.log mailx -s 'sa-lern Status' root
#und als amavis User in die Crontab gepackt 6 5 * * 1,4 /usr/local/sbin/spamlern.sh
... und wo ist der "Dirty" Hack?
Hier
4 5 * * 1,4 nice chmod -R g+rx /var/vmail/ >/dev/null 2>&1 15 5 * * 1,4 nice chmod -R g-rx /var/vmail/ >/dev/null 2>&1
Ich erlaube damit meinem obigen Script für 11 Minuten, die Mailboxen nach Spam abzuklappern
Update 27.02.2023:
Script ist nun im CVS und auch auf dem neuen rootserver aktiv, hatte ich vergessen.