http://spamassassin.apache.org/images/arrowlogo.png

SpamAssassin (dt.: Spam-Attentäter) ist ein Spam-Filter. Es kann z.B. über einen MDA aufgerufen werden.

Homepage: http://spamassassin.apache.org/

Lizenz: Perl Artistic License

Tips & Tricks

Filter Leistung verbessern

Bayes System

In der config datei erlauben "use_bayes 1" (standardmäßig aktiv)

Dann immer wenn man spam bekommt kann man sa-learn den Filter verbessern. z:B einzelne abgespeicherte Mail:  sa-learn --spam --showdots --mbox spam 

Hat man eine Mail Adresse wo nur spam eintrifft. Kann man diese prima für den Filter nutzen. :)

siehe auch: http://www.softwaredesign.co.uk/Information.SpamFilters.html

Einbindung in MDAs

SpamAssassin und Courier/maildrop

Um SpamAssassin erfolgreich in Courier einbinden zu können, müssen zunächst folgende Schritte durchgeführt werden.

DEFAULTDELIVERY=./.Maildir

auf

DEFAULTDELIVERY="| /usr/bin/maildrop"

Danach kann der Spam Filter entweder global oder per Benutzer eingerichtet werden.

Global

Es muß die Datei /etc/courier/maildroprc angelegt werden. In diese Datei kommen dann die folgenden Informationen. Weiterhin müssen die Berechtigungen auf die Datei mittels chmod 644 /etc/courier/maildroprc abgeändert werden. Weiterhin muss der Eigentümer und die Gruppe wie folgt geändert werden chown daemon:users /etc/courier/maildroprc. Alle Benutzer, die nun Zugriff auf diese globale Datei haben sollen, müssen der Gruppe users hinzugefügt werden. Im Falle von virtuellen Konten wäre dies beispielsweise lediglich der Benutzer vmail.

import USER

# hier den korrekten Pfad konfigurieren, z.B. $HOME/.Maildir
# der korrekte Wert kann der Einstellung MAILDROPDEFAULT in der
# Konfigurationsdatei /etc/courier/courierd entnommen werden
DEFAULT="$HOME/.Maildir"

if ($LOGNAME ne "")
{
        xfilter "spamc -u $LOGNAME"
}
else
{
        xfilter "spamc -u $USER"
}
if (/^X-Spam-Status: Yes/)
{
        # hier sollte der korrekte Ordner angegeben werden, bei mir ist dies .SPAM_IDENTIFIED
        to $DEFAULT/.SPAM_IDENTIFIED/
}

Lokal

TBD Dieser Part sollte entsprechend obigen Vorgaben überarbeitet werden, da die folgenden Informationen nicht unbedingt zu einem funktionierenden Einbindung von SpamAssassin führen

cc "|spamassassin -e" # oder 'cc "|spamc -c -f"', wenn man spamd benutzt
if ($EXITCODE != 0)
 to Maildir/.spam/
EXITCODE=0

als erste Regel in die .mailfilter Datei einsetzen. Dabei wird die Mail nicht verändert.

Wenn man die X-Spam-Status Header haben will, kann man so vorgehen:

xfilter "spamassassin" # bzw.  "spamc -f"
if (/^X-Spam-Status: Yes/)
  to Maildir/.spam/

Die Verarbeitung dauert dann aber etwas länger, da die mail zusätzlich von maildrop geparst werden muss.

Hier noch ein paar nützliche Links zum Thema:


SpamAssassin und procmail

~/.forward für Postfix und andere MTAs mit .forward Dateien wie exim, SendMail etc., bei QMail oder Courier besser .qmail bzw. .courier benutzen

"|/usr/bin/procmail -t"

.qmail oder .courier

|preline /usr/bin/procmail -t

~/.procmailrc

:0fw
| /usr/bin/spamassassin
:0:
* ^X-Spam-Status: Yes
$Maildir/.spam/

Man sollte sich die grundlegende Funktionsweise von procmail einmal anschauen, damit man die Mailbox richtig angibt.

Mit spamd:

:0 fw
* < 50000
| /usr/local/bin/spamc -f

:0:
* ^X-Spam-Flag: YES
$MAILDIR/.spam/

* < 50000 sagt dem procmail dass die Regel nur bei einer Mail < 50000 Bytes angewendet werden soll (Spam ist meist nicht größer), auch das schont das System, vor allem, wenn man mal größere Dateianhänge bekommt.

Beispieltreffer

Und so sieht eine von SpamAssassin gefundene und verarbeitete Mail aus:

SPAM: -------------------- Start SpamAssassin results ----------------------
SPAM: This mail is probably spam.  The original message has been altered
SPAM: so you can recognise or block similar unwanted mail in future.
SPAM: See http://spamassassin.org/tag/ for more details.
SPAM: 
SPAM: Content analysis details:   (30.4 hits, 5 required)
SPAM: Hit! (0.5 points)  Subject has an exclamation mark
SPAM: Hit! (0.4 points)  Subject has lots of exclamation marks
SPAM: Hit! (3.9 points)  BODY: You'd better read all of this spam!
SPAM: Hit! (0.2 points)  BODY: Contains at least 3 dollar signs in a row
SPAM: Hit! (0.9 points)  BODY: Common pyramid scheme phrase (1)
SPAM: Hit! (1.1 points)  BODY: Talks about bulk email
SPAM: Hit! (2.5 points)  BODY: See for yourself
SPAM: Hit! (0.2 points)  BODY: No such thing as a free lunch (1)
SPAM: Hit! (3.0 points)  BODY: Contains "My wife, Jody" testimonial
SPAM: Hit! (1.0 point)   BODY: Free money!
SPAM: Hit! (1.8 points)  BODY: Not intended for residents of XYZ.
SPAM: Hit! (2.3 points)  BODY: Gives a lame excuse about why you were sent this SPAM
SPAM: Hit! (1.3 points)  BODY: I wonder how many emails they sent in error...
SPAM: Hit! (4.8 points)  BODY: Claims compliance with senate bill 1618
SPAM: Hit! (2.6 points)  BODY: 'one time mailing' doesn't mean it isn't spam
SPAM: Hit! (2.3 points)  BODY: List removal information
SPAM: Hit! (1.9 points)  BODY: List removal information
SPAM: Hit! (0.5 points)  BODY: A WHOLE LINE OF YELLING DETECTED
SPAM: Hit! (0.6 points)  BODY: 2 WHOLE LINES OF YELLING DETECTED
SPAM: Hit! (-1.5 points) BODY: 3 WHOLE LINES OF YELLING DETECTED
SPAM: Hit! (-0.4 points) BODY: Contains a line >=199 characters long
SPAM: Hit! (0.5 points)  Forged hotmail.com 'Received:' header found
SPAM: 
SPAM: -------------------- End of SpamAssassin results ---------------------


I'll make you a promise. READ THIS E-MAIL TO THE END! ...
(restlicher Schwachsinn gelöscht)

Der war gut. 30 Spampunkte, dabei hätten 5 schon gereicht. ;)

Also ich hätte ers interessant gefunden auch die Mail zu sehen... -- FlorianFesti 2003-08-28 13:17:59

Liegt eine Mail als Datei vor und will man wissen wie diese bewertet würde, kann das Ergebnis ihrer Verarbeitung mit folgendem Befehl auf der Console ausgeben:

spamassassin < mail.txt
  1. Das Starten von SpamAssassin dauert recht lange, weil es von vielen Modulen abhängig ist. (1)

SpamAssassin (zuletzt geändert am 2008-12-29 21:11:24 durch xdsl-87-79-143-219)