Spamassassin "Shortcircuit"-Funktion

In Computer und Netzwerk Qmail und Spamassassin | Erstellt: 09.10.2010, 10:00 | Editiert: 31.10.2018, 06:11 (Typos und Code) | 6.171 mal angesehen | Seite drucken

Es werden zwei qmail-Mailrelays in Reihe betrieben (dazwischen eine DMZ), beide Server mit Spamassassin.

Bisher waren beide mit den selben Spamassassin-Rulesets konfiguriert, doch um eine bessere Lastverteilung zu erreichen, werden Bild- und PDF-OCR-Tests auf den "inneren" Server verschoben und der "äußere" darf sich mit den reinen Text-Rules und diversen ORBL-Checks abkämpfen.

Wenn Spamassassin auf dem äußeren Server eine Mail bereits als Spam gekennzeichnet hat, muß sich der innere ja eigentlich nicht mehr bemühen – das shortcircuit-Plugin von Spamassassin ist ideal für diesen Zweck. Es kann auf bestimmte Ereignisse hin eine Mail sofort als Ham oder Spam kennzeichnen und alle weiteren Tests überspringen.

Beispiel

Der äußere Server (gate-2) taggt Spam mit der rewrite_header – Konfiguration

rewrite_header Subject SPAM [GATE-2|S:_SCORE_|A:_AUTOLEARN_]

Dabei kommt bei Spam-Mails ein Subject heraus wie

SPAM [GATE-02|S:28.5|A:spam] Wieder Spass am Leben - mit einem Leangeren

und beim Durchlauf durch den inneren Server (gate-1) dann

SPAM [GATE-1|S:34.8|A:spam] SPAM [GATE-02|S:28.5|A:spam] Wieder Spass am Leben - mit einem Leangeren

Shortcut

Auf dem inneren Server wird jetzt eine neue Regel in der Datei 00_G2_shortcurcuit.cf eingefügt mit folgendem Inhalt:

# Kurzschluss, wenn gate-2 bereits als Spam markiert hat
#
# Beispiel-Subject: "SPAM [GATE-02|S:15.2|A:spam] ......"
# Beispiel-Regex:   "^SPAM \[GATE-2.*\]"
#
# Nach was wird gesucht?
header       F_G2_TAGGED Subject =~ /^SPAM \[GATE-2.*\]/i
# Beschreibung fuer Regel
describe     F_G2_TAGGED Bereits von gate-2 als Spam getaggt
# Score fuer Regel
score        F_G2_TAGGED 0.1
# Prioritaet fuer Regel (Sehr frueh laufen)
priority     F_G2_TAGGED -100
# Shortcircuit als Spam
shortcircuit F_G2_TAGGED spam
# Autolearn ausschalten
tflags       F_G2_TAGGED noautolearn

Die Regex in der Zeile "header ..." muss natürlich an das Tagging des äußeren Servers angepasst werden, um auszulösen.

Test des Shortciruit

Für anfängliche Tests empfiehlt es sich, die Regel-Datei mit nur den ersten 3 Zeilen anzulegen, wie folgt:

# Kurzschluss, wenn gate-2 bereits als Spam markiert hat
#
# Beispiel-Subject: "SPAM [GATE-02|S:15.2|A:spam] ......"
# Beispiel-Regex:   "^SPAM \[GATE-2.*\]"
#
# Nach was wird gesucht?
header       F_G2_TAGGED Subject =~ /^SPAM \[GATE-2.*\]/i
# Beschreibung fuer Regel
describe     F_G2_TAGGED Bereits von gate-2 als Spam getaggt
# Score fuer Regel
score        F_G2_TAGGED 0.1

Es können dann zuerst in den Header-Zeilen auf den jeweiligen Mail-Clients geprüft werden, ob die Regel F_G2_TAGGED mit einer Score von 0.1 greift – also ob z.B. die Regex fehlerfrei ist. Die weiteren 3 Zeilen

# Prioritaet fuer Regel (Sehr frueh laufen)
priority     F_G2_TAGGED -100
# Shortcircuit als Spam
shortcircuit F_G2_TAGGED spam
# Autolearn ausschalten
tflags       F_G2_TAGGED noautolearn

legen dann – wenn alles ok ist und funktioniert – fest, dass diese Regel sehr früh geprüft wird (priority), dass der "shortcircuit als spam" ausgeführt wird und dass autolearn für diese Mail deaktiviert wird.

Spamassassin bricht dann jede weitere Bearbeitung ab und kann sich anderen Mails widmen.

Logging

Im spamd.log sieht es dann aus wie folgt:

Tue Jan 22 13:19:45 2008 [6463] info: spamd: result: . 0 - F_G2_TAGGED
scantime=0.1,size=9915,user=qscand,uid=210,required_score=5.0,rhost=gate-1.XXXXXX.de,
raddr=127.0.0.1,rport=10050,mid=<01c85d3c$e5824580$1ac2867d@pampel.rycki>,
autolearn=disabled,shortcircuit=spam

F_G2_TAGGED hat ausgelöst, autolearn ist aus, Scanzeit ist 0,1 Sekunden, fast unschlagbar.

Dran denken: spamassassin --lint ist Dein Freund!

Weitere Seiten in 'Qmail und Spamassassin'

Schreibe einen Kommentar

Captcha * Time limit is exhausted. Please reload CAPTCHA.