Zurück zur SpamAssassin Installation
Inhalt
Vor zu RulesDuJour konfiguration

SpamAssassin Konfiguration.

SpamAssassin sucht seine Konfigurationsdatein immer in /etc/spamassassin, es sei denn, wir haben bei der Installation einen anderen Pfad angegeben. SpamAssassin erkennt alle Konfigurationsdateien an ihrerer Endung .cf - egal was für einen Namen sie tragen, die Dateien haben die Endung .cf und dann läd sie SpamAssassin als Konfigurationsdatei. Die wichtigste Datei bei SpamAssassin ist die local.cf in /etc/spamassassin/. Dort werden alle nötigen Einstellungen vorgenommen. Die local.cf enthält viele Punkte. Damit es nicht zu unübersichtlich wird, erkläre ich sie in einzelnen Teilen; zum Schluss findest du sie noch zum herrunterladen. Fangen wir also an:

/etc/spamassassin/local.cf

required_hits 4.8
rewrite_subject 1
subject_tag [SPAM?]
auto_whitelist_factor 0.03
report_safe 1
use_terse_report 1

required_hits, gibt die Anzahl an Punkten an, die eine mail braucht, um als spam gekennzeichnet zu werden.
rewrite_subject, bedeutet, dass wir den Betreff der Mail ändern.
subject_tag, schreibt [SPAM?] in unseren Betreff, aber nur wenn rewrite_subject aktiviert ist.
auto_whitelist_factor, so viel Punkte bekommen mails, wenn sie als sauber eingestuft werden.
report_safe, speichert die Orginalmail als Anhang.
use_terse_report, sollte eine E-Mail nicht komplett plain text sein, wird die Orgninalnachricht als Anhang zum Spamreport gehängt.

#bayes konfiguration
use_bayes 1
bayes_path /etc/spamassassin/bayes
bayes_use_chi2_combining 1
bayes_auto_expire 0
bayes_journal_max_size 15000000
bayes_expiry_max_db_size 20000000
bayes_auto_learn 0

bayes_ignore_header Return-Path
bayes_ignore_header Received
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Level
bayes_ignore_header X-purgate
bayes_ignore_header X-purgate-ID
bayes_ignore_header X-purgate-Ad
bayes_ignore_header X-GMX-Antispam
bayes_ignore_header X-Resent-For
bayes_ignore_header X-Resent-By
bayes_ignore_header X-Resent-To
bayes_ignore_header Resent-To
bayes_ignore_header Sender
bayes_ignore_header Precedence
bayes_ignore_header X-Antispam
bayes_ignore_header X-Sieve
bayes_ignore_header X-Spamcount
bayes_ignore_header X-Spamsensitivity
bayes_ignore_header To
bayes_ignore_header X-Sieve
bayes_ignore_header X-WEBDE-FORWARD

use_bayes, bedeutet, dass wir bayes nutzen wollen.
bayes_path, legt das verzeichnis fest, inden die bayes datein gespeichert werden sollen.
bayes_use_chi2_combining, hier geben wir an, dass wir das chi2 Verfahren benutzen, um die Punkteverteilung in die "extreme" zu verschieben.
bayes_auto_expire, hier sagen wir, dass bayes nach einer gewissen Zeit alte Tocks löschen oder weniger Punkte vergeben soll.
bayes_journal_max_size, legt die maximale Journalgröße fest.
bayes_expiry_max_db_size, legt die maximale bayesdatenbankgröße fest.
bayes_auto_learn, schaltet automatisches Lernen aus.
bayes_ignore_header, legt header fest, die bayes ignorieren soll.

#dcc konfiguration
dcc_path /usr/local/bin/dccproc
dcc_add_header 1

#pyzor konfiguration
pyzor_path /usr/local/bin/pyzor
pyzor_add_header 1
pyzor_max 3

# Andere Module benutzen
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1

dcc_path, gibt den Pfad zu DCC an.
dcc_add_header, fügt einen DCC header der e-mail hinzu.
pyzor_path, gibt den Pfad zu Pyzor an.
pyzor_add_header, fügt ein Pyzor header hinzu.
pyzor_max, gibt die maximalen Verbindungen zu Pyzor an.
skip_rbl_checks, bedeutet "RBL Überprüfung überspringen", in unserem Fall nein.
use_razor2, aktiviert razor2 Prüfung.
use_dcc, aktiviert dcc Prüfung.
use_pyzor, aktiviert pyzor Prüfung.

rbl_timeout 4
ok_languages all
ok_locales all
dns_available yes
check_mx_attempts 0
check_mx_delay 1
auto_learn 1
auto_learn_threshold_spam 5.9
auto_learn_threshold_nonspam 2.0
trusted_networks #mein netzwerk

rbl_timeout, legt den timeout für rbl Abfragen fest.
ok_languages, legt die zu überprüfenden Sprachen fest.
ok_locales, überprüft die lokale Codierung der mails.
dns_available, aktiviert dns lookup
check_mx_attempts, hier wird überprüft, wie oft der zu sendende Mailserver versucht hat, diese mail zuzustellen.
check_mx_delay, wie lang er für die Zustellung gebraucht hat.
auto_learn, schaltet automatisches Lernen ein.
auto_learn_threshold_spam, vergibt Punkte für automatisch erkannter Spam.
auto_learn_threshold_nonspam, vergibt Punkte für kein Spam
trusted_networks, legt meine Netze fest.

#reports
clear_report_template
report Diese Mail wurde von der Installation des SpamAssassin Spam-Filters als
report Spam erkannt. Sollte diese Nachricht zu unrecht als Spam markiert worden sein,
report dann bitte diese Mail an admin@meine-domain.tld weiterleiten (wenn möglich
report als Anlage!). Vielen Dank!
report Die Originalnachricht ist dieser E-Mail als Anhang beigefügt.
report
report Content analysis details: (_HITS_ points, _REQD_ required)
report
report
report " Pkt Regel Name Beschreibung"
report ---- ---------------------- --------------------------------------------------
report _SUMMARY_

clear_unsafe_report_template
unsafe_report Diese Nachricht ist nicht komplett plain text gewesen, so dass es
unsafe_report evtl. gefaehrlich ist diese zu oeffnen, da die Mail vielleicht auch
unsafe_report einen Virus enthalten könnte. Wer sie dennoch anschauen möchte sollte
unsafe_report dafür lieber einen Editor verwenden!

clear_report_template, löscht den Inhalt der Mail, die orginal Mail bekommen wir ja als Anhang.
report, gibt uns die Möglichkeit einen eigenen Text für unsere Spamreportmails zu definieren.
clear_unsafe_report_template, löscht den Inhalt der Mail, die Orginalmail bekommen wir ja als Anhang.
unsafe_report, gibt uns die Möglichkeit einen eigenen Text zu schreiben für mails, die aus html bestehen und spam waren.

#spamcop punkte
uri SPAMCOP_URI_RBL eval:check_spamcop_uri_rbl('sc.surbl.org','127.0.0.2')
describe SPAMCOP_URI_RBL URI's domain appears in spamcop database at sc.surbl.org
tflags SPAMCOP_URI_RBL net
score SPAMCOP_URI_RBL 5.0

Hier überprüfen wir bestimmte urls in den e-mails, ist eine URL in erkannten Spammails schon oft vorgekommen, so ist es höchstwahrscheinlich wieder spam.

#bayes punkte
score BAYES_00 -6.1
score BAYES_01 -5.0
score BAYES_10 -3.5
score BAYES_20 -2.0
score BAYES_30 -1.0
score BAYES_40 -0.3
score BAYES_44 -0.01
score BAYES_50 0.01
score BAYES_56 0.3
score BAYES_60 1.0
score BAYES_70 1.6
score BAYES_80 3.1
score BAYES_90 5.2
score BAYES_99 7.2

#razor punkte
score RAZOR2_CHECK 1.8
score RAZOR2_CF_RANGE_11_50 0.32
score RAZOR2_CF_RANGE_51_100 2.7

#dcc punkte
score DCC_CHECK 4.9

#pyzor punkte
score PYZOR_CHECK 4.8

score SUBJ_ILLEGAL_CHARS 2.6
score PORN_4 3.7
score RCVD_IN_RFCI 2.0
score RCVD_IN_ORBS 1.0
score RCVD_IN_DSBL 1.0
score RCVD_IN_SBL 0.5
score RCVD_IN_VISI 1.0
score RCVD_IN_RFCI 0.5
score RCVD_IN_SORBS 0.5
score X_NJABL_OPEN_PROXY 0.5
score RCVD_IN_UNCONFIRMED_DSBL 0.2
score RCVD_IN_BL_SPAMCOP_NET 1.1
score RCVD_IN_VISI 0.3
score RCVD_IN_RELAYS_ORDB_ORG 0.3
score USER_AGENT_MACOE 1.0
score NIGERIAN_TRANSACTION_1 1.5
score MICROSOFT_EXECUTABLE 3.100
score MIME_SUSPECT_NAME 3.100
score RCVD_IN_BONDEDSENDER -6.0
score HABEAS_HIL_RBL -6.0
score X_LIST_UNSUBSCRIBE 0.5
score EMAIL_ATTRIBUTION -0.5
score IN_REP_TO -0.5
score QUOTED_EMAIL_TEXT -0.5
score REPLY_WITH_QUOTES -0.5
score HTML_IMAGE_ONLY_02 1.978
score HTML_IMAGE_ONLY_04 2.087
score HTML_IMAGE_ONLY_06 1.228
score HTML_IMAGE_ONLY_08 0.984
score HTML_IMAGE_ONLY_10 0.843
score HTML_IMAGE_ONLY_12 0.487
score EMAIL_ATTRIBUTION -1
score MSGID_GOOD_EXCHANGE -1

Mit score legen wir unsere Punkte fest. Als Erstes für unsere Bayes, Razor, Dcc und Pyzor Module. Danach kommen noch einige allgemeine Regeln, die man so auch lassen sollte.

Hier noch einmal die ganze Konfiguration am Stück. Damit wäre die local.cf fertig und unser SpamAssassin betriebsbereit.

Damit wir nun unsere Mails auch überprüfen, gehen wir wieder in die /etc/procmailrc und fügen folgende Zeilen hinzu:

# Procmail
LOGFILE="/var/log/procmail"
VERBOSE=off

# Mailbox-Zustellung
DELIVERMAIL="/usr/cyrus/bin/deliver"
INBOX="$DELIVERMAIL -r $SENDER -m $EXTENSION $USER"
SPAM="$DELIVERMAIL -e -a $USER -q -m user.$USER.spam"

# "From" Zeile loeschen, sonst funktioniert cydeliver nicht
:0fw
| formail -f -I "From "

:0fw
* < 256000
| /usr/bin/spamc -u filter

# --- score = 11

:0 w
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*
| $SPAM

# zur mailbox zustellen
:0w
| $INBOX

# schluss
:0w
{
	EXITCODE=$?
	HOST
}

Der rot markierte Text ist von mir nachträglich eingefügt worden. In der ersten Zeile:

SPAM="$DELIVERMAIL -e -a $USER -q -m user.$USER.spam"

Hier mache ich das Gleiche wie mit dem deliver, den wir ja schon von der procmail konfiguration kennen. Nur dass ich diesmal die Mail nicht in die INBOX leite, sondern in den Unterorder " spam". Da ich nicht dafür verantwortlich gemacht werden will, den Benutzern ihren M üll zu löschen, leite ich ihn einfach in einen Unterordern. Wer will kann ihn dort sammeln oder bei Gelegenheit einfach rauslöschen. So bleibt es jedem selbst überlassen. In der nächsten Zeile:

:0fw
* < 256000
| /usr/bin/spamc -u filter

Hier leite ich alle Mails, die kleiner sind als 256kb zu meinem Spamfilter. Größere Mails sind meist keine Spam mehr und müssen deswegen nicht geprüft werden. In der n ächsten Zeile:

:0fw
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*
| $SPAM

Alles was mehr als 11 Punkte hat, wird in die Benutzermailboxen in den Unterordner "spam" verschoben. Man kann hier aber auch z. B. angeben, dass alle mails, die als spam erkannt wurden, gelöscht werden sollen, was ich aber, wie schon gesagt, nicht für sehr sinnvoll halte, aber das kannst du ja entscheiden.

Damit wäre nun SpamAssassin eingebunden und wird als Spamfilter genutzt.


Zurück zur SpamAssassin Installation
Inhalt
Vor zu RulesDuJour konfiguration