Rspamd Statistische Inhaltsanalyse (Bayesian Filtering)
Statistische Inhaltsanalyse durch Bayesian Filtering
Während DNS-Prüfungen die Identität des Absenders validieren, analysiert der Bayes-Filter den eigentlichen Inhalt der Nachricht. Er lernt statistisch, welche Wörter und Phrasen für das Schulnetzwerk (it201.int bis it213.int) typisch für Spam oder erwünschte Post (Ham) sind.
Funktionsweise des Bayes-Filters
Der Filter arbeitet mit Wahrscheinlichkeiten. Er zerlegt jede E-Mail in Fragmente (Tokens) und vergleicht diese mit einer Datenbank bereits gelernter Nachrichten.
- Tokenisierung: Wörter wie "Rechnung", "Gewinnspiel" oder "it213" werden isoliert betrachtet.
- Wahrscheinlichkeitsrechnung: Erscheint ein Wort fast nur in Spam-Mails, erhöht es den Gesamt-Score der Nachricht.
- Kontext-Lernen: Da jede Umgebung anders ist, muss der Filter mit lokalen Mails trainiert werden, um Fehlalarme zu vermeiden.
Konfiguration des Bayes-Speichers
Rspamd benötigt einen Speicherort für die gelernten Informationen. Für unsere Zwecke nutzen wir die integrierte SQLite-Datenbank.
Datei: /etc/rspamd/local.d/classifier-bayes.conf
# Aktiviert den statistischen Filter
enabled = true;
autolearn = true; # Automatisches Lernen bei eindeutigen Ergebnissen
# Definition des Backends
backend = "sqlite3";
statfile {
symbol = "BAYES_HAM";
path = "/var/lib/rspamd/bayes.ham.sqlite";
}
statfile {
symbol = "BAYES_SPAM";
path = "/var/lib/rspamd/bayes.spam.sqlite";
}
Manuelles Training des Filters
Damit der Filter von Anfang an eine hohe Trefferquote erzielt, müssen die Teilnehmer ihn manuell mit Beispielen füttern. Dies geschieht über das Tool 'rspamc'.
Lernen von Spam-Mails:
- rspamc learn_spam /pfad/zu/spam_ordner/
Lernen von erwünschten Mails (Ham):
- rspamc learn_ham /pfad/zu/archiv_ordner/
Status der Datenbank prüfen:
- rspamadm stat
Integration in die Bewertungs-Logik
Die statistischen Treffer werden in Symbole übersetzt, die massiven Einfluss auf den finalen Score haben. Ein gut trainierter Bayes-Filter ist oft das Zünglein an der Waage zwischen Zustellung und Reject.
Datei: /etc/rspamd/local.d/scores.inc (Erweiterung)
symbols {
"BAYES_SPAM" {
score = 5.0;
description = "Statistische Analyse: Eindeutiger Spam";
}
"BAYES_HAM" {
score = -2.5;
description = "Statistische Analyse: Bekannte saubere Struktur";
}
}
Erfolgskontrolle im Systemd-Journal
Ob die statistische Analyse greift, lässt sich im Live-Log beobachten. Wenn Rspamd eine Mail bewertet, tauchen die Bayes-Symbole in der Liste auf:
- Befehl: journalctl -u rspamd -f | grep "BAYES"
Erwartete Log-Ausgabe:
(default: F (pass): [-2.10 / 15.00] [BAYES_HAM(-2.50), R_SPF_ALLOW(-1.00)])
Fazit zur statistischen Analyse
- Lernfähigkeit
- Der Bayes-Filter wird mit jeder verarbeiteten Mail präziser.
- Individualität
- Was bei it213.int als Spam gilt, kann bei it201.int erwünscht sein – der Bayes-Filter passt sich an.
- Synergie
- Erst die Kombination aus DNS-Identität (Punkt 1) und Inhaltsstatistik (Punkt 2) macht den Filter robust gegen moderne Spam-Wellen.