server:spamassassin

Spamassassin

SpamAssassin ist ein weitverbreitetes und ausgezeichnetes Filter-Programm, mit dem ungewünschte E-Mails (Spam) automatisch aussortiert werden können. SpamAssassin ist Freie Software.

SpamAssassin kann an jeder Stelle der Mailverarbeitungskette eingesetzt werden, d. h. es kann auf Benutzer-Ebene, zum Beispiel als Plug-in im E-Mail-Programm oder als direkter Aufruf in der procmailrc des Benutzers eingesetzt werden, genauso wie auf Mailserver-Ebene, wo es bei vielen E-Mail-Providern seinen Dienst tut, indem es in den Betrieb der Mail Transfer Agents eingebunden ist.

Das in Perl geschriebene Programm gibt jeder E-Mail nach bestimmten Regeln Punkte, die anzeigen, wie hoch SpamAssassin die Spamwahrscheinlichkeit einschätzt. Bei Überschreiten eines einstellbaren Schwellenwertes wird die E-Mail als Spam markiert und kann dann zum Beispiel auf Mailserver-Ebene direkt gelöscht, annahmeverweigert, in spezielle Spamordner oder Spamdateien abgelegt, oder einfach nur mit einem Warn-Betreff versehen werden; auch auf Benutzerebene kann als Spam markierte E-Mail mit Hilfe von Filtereinstellungen im Mailprogramm automatisch in einen Spamordner oder in eine Spamdatei („caughtspam“) abgelegt werden und der Lernfunktion des Bayesschen Filters zugeführt werden.

SpamAssassin verwendet unterschiedliche Mechanismen um zwischen erwünschter und unerwünschter Mail (ham und spam) zu unterscheiden:

  • Statische Regeln, die auf Regulären Ausdrücken basieren und in den Mails nach Sequenzen suchen, wie sie typischerweise in Spam vorkommen.
  • Abfrage von Schwarzen Listen von spamversendenden Servern, den Realtime Blackhole Lists (RBLs).
  • Abfrage von Prüfsummen-basierten Filtern wie Vipul’s Razor, Pyzor und DCC.
  • Integrierter Bayesscher Filter, der aufgrund der Einteilung der bisher empfangenen Mails statistisch die Wahrscheinlichkeit berechnet, ob es sich bei neuer Mail um erwünschte oder unerwünschte Mail handelt.

Mittels des Testtextes GTUBE (s.u.) lässt sich eine Installation von SpamAssassin auf ihre Funktionsweise überprüfen.

Quelle: Wikipedia zu SpamAssassin.

  • Syntax:
    spamassassin --lint
  • klappt lokaler Aufruf?:
    spamassassin -D < /usr/share/spamassassin/doc/spamassassin-3.0.3/sample-spam.txt

    statt sample-spam.txt kann auch ein beliebiger Text z.B. von einer Spam-eMails dienen.

  • Einbindung in Mailserver erfolgreich?: Wenn in einer eMail die folgende (unveränderte!) GTUBE Zeichenkette enthalten ist, sollte die eMail als Spam klassifiziert werden:
    XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Die „NOVOWEL“-Tests (prüft ob eine best. Anzahl von Vokalen sich häufen) sind bei manchen deutschen Domains ein Problem. Da sie mit hoher Punktzahl in die Bewertung eingehen, werden so gebrandmarkte Domains schnell Opfer von Spamfiltern.

Eine Datei (z. B. 99_myScores.cf) hinzufügen:

# too many false-positives with NOVOWEL-rules:
score FROM_DOMAIN_NOVOWEL 0.5
score FROM_LOCAL_NOVOWEL 0.5
score URI_NOVOWEL 0.5
# stay low, avoid reset from rescorer:
tflags FROM_DOMAIN_NOVOWEL userconf
tflags FROM_LOCAL_NOVOWEL userconf
tflags URI_NOVOWEL userconf
score FH_DATE_PAST_20XX 0.0

Über einen cronjob sollte Spamassassin seine Regeln regelmäßig aktualisieren, die liegen in /var/lib/spamassassin, bei Debian muss dass aktiviert werden in /etc/default/spamassassin.

Auf manchen Whitelist (=Seiten mit Vertrauenswürdigen Absendern) kann man sich eintragen: