Mail-Server

ID #1147 SpamAssassin: sa-learn per Email füttern

ACHTUNG: Plesk/Qmail-User finden hier ein angepaßtes HowTo: Plesk: sa-learn per Email füttern

SpamAssassin filtert zu wenig Spams

Wer SpamAssassin auf seinem Server installiert hat, kennt das:
Hin und wieder (am Anfang recht häufig) kommen doch noch Spams durch.
Wie bekommt man jetzt diese Email aus seinem Mozilla/Thunderbird/KMail (habe ich einen wichtigen Client vergessen? Nö!) in sa-learn rein?

Diese Frage will ich heute klären:

(Die folgende Idee ist nicht von mir, sondern habe ich zufällig im Internet gefunden. Ich habe lediglich das Perl-Script etwas gekürzt ohne das Copyright zu entfernen und eine brauchbare Installationsanleitung geschrieben.)

Erklärung:

Wir wollen aus unserem Email-Client eine nicht erkannte Spam-Mail per Forward/Weiterleiten an spam@server.tld schicken. (Und zwar als Anhang! Ganz wichtig!)
Der Email-Server nimmt diese Mail entgegen, gibt sie an procmail weiter, dieser reicht sie dann an sa-wrap.pl durch, der dann den Anhang an sa-learn füttert.
Man beachte: Der Anhang wird verfüttert, nicht die ganze Email!

Vorraussetzung:

sa-learn ist bereits entsprechend konfiguriert und aktiv.

1.)
Es werden entsprechende Emailadressen gebraucht. Ich nenne sie mal spam@server.tld und ham@server.tld. Der Server muß so präperiert sein, daß er diese Emails annimmt und auf ein lokales Postfach legen will.

2.)
Wir brauchen das folgende Script unter /usr/local/bin/sa-wrap.pl (und zwar ausführbar als 755). (Download siehe unten.)

Achtung: wenn sa-wrap.pl zu einem Fehler kommt, dann versucht die neuere Version sa-wrapper.pl.

3.)
Wir brauchen eine /etc/procmailrc (Domain-Namen ändern!) bzw. als Ergänzung dazu:

#alte Versionen von procmail:
verbose=yes
#neue Versionen von procmail:
VERBOSE=ON
LOGFILE=/var/log/procmail.log

:0
* ^To: spam@server.tld
{
:0fw
| /usr/local/bin/sa-wrap.pl --spam
:0
/dev/null
}

:0
* ^To: ham@server.tld
{
:0fw
| /usr/local/bin/sa-wrap.pl --ham
:0
/dev/null
}

4.)
Die Logfiles und das unpack-Verzeichnis muß man evtl. mit der Hand anlegen, da dem MTA evtl. die nötigen Rechte fehlen:

touch /var/log/procmail.log
chown root:mail /var/log/procmail.log
chmod 775 /var/log/procmail.log
touch /var/log/sa-learn.log
chown root:mail /var/log/sa-learn.log
chmod 775 /var/log/sa-learn.log
mkdir /var/spool/unpack
chown root:mail /var/spool/unpack
chmod 775 /var/spool/unpack

Fertig

Nun könnt Ihr alle Spams und Hams als Anhang an die jeweilige Emailadresse schicken und der SA lernt!

Den Erfolg kann man dann in /var/log/sa-learn.log mit verfolgen.
Achtung: entweder Logrotate für die 2 Dateien einschalten, oder, wenn alles funzt einfach verbose, logfile und debug in den Dateien auskommentieren.

Fehlersuche:

In /var/log/procmail.log. Wenn dort nichts steht, dann sucht erstmal im maillog nach 'procmail'-Fehlern.

Download:

sa-wrap.pl (als gzip)
neuere Version: sa-wrapper.pl (als gzip).

Diskussion:

Bitte im Server-Support-Forum

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

vom 2006-09-06 12:36, zuletzt 2006-12-22 11:12     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   5 von 5 (1 Bewertungen)

Artikel kommentieren

Kommentar von Stefan Bauer (2008-05-14 08:55:59):
Folgende Erweiterung ist noch sinnvoll:

spam/ham will man in den meisten Fällen in die selbe bayes-Datenbank einpflegen:

sa-wrapper.pl

my $SPAMDIR = '/home/spam/.spamassassin';
my ($spamham, $sender) = @ARGV;

Sowie dann weiter unten beim eigentlichen Aufruf auf die Variable verweisen:

open(OUT, "|$SA_LEARN -D $spamham --dbpath $SPAMDIR --single >>$LOGFILE 2>&1")

--dpath $SPAMDIR hinzufügen...

Kommentar von huschi (2010-02-22 11:14:09):
Nachtrag:
Sollte man bei eingeschalteten DEBUG die Fehlermeldung "spamassassin remove-addr-from-whitelist" erhalten, so muss ein "-U" in der Shebang-Zeile des wrap.pl|wrapper.pl ergänzt werden.

huschi.