22.01.2008
Spamassassin shortcircuit
517x angesehen. Von Stefan, abgelegt in: Internet| Linux| qmail
Zwei qmail-Mailrelays in Reihe (dazwischen eine DMZ), beide Server mit Spamassassin.
Bisher waren beide mit den selben Rulesets konfiguriert, doch um eine bessere Lastverteilung zu erreichen, wird in Zukunft Bild- und PDF-OCR auf den “inneren” verschoben und der “äußere” darf sich mit reinen Text-Rules abkämpfen.
Wenn der äußere eine Mail bereits als Spam gekennzeichnet hat, muß sich der innere ja nicht mehr bemühen – das shortcircuit-Plugin von Spamassassin ist ideal dafür.
Beispiel
Der äußere Server taggt Spam mit
rewrite_header Subject SPAM [GATE-2|S:_SCORE_|A:_AUTOLEARN_]
dabei kommt ein Subject heraus wie
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 eine neue Regel 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.*\]”
#
header F_G2_TAGGED Subject =~ /^SPAM \[GATE-2.*\]/i
describe F_G2_TAGGED Bereits von gate-2 als Spam getaggt
score F_G2_TAGGED 0.1
priority F_G2_TAGGED -100
shortcircuit F_G2_TAGGED spam
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. Für Tests empfiehlt es sich, die 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.*\]”
#
header F_G2_TAGGED Subject =~ /^SPAM \[GATE-2.*\]/i
describe F_G2_TAGGED Bereits von gate-2 als Spam getaggt
score F_G2_TAGGED 0.1
Es kann dann zuerst am Mail-Client 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
priority F_G2_TAGGED -100
shortcircuit F_G2_TAGGED spam
tflags F_G2_TAGGED noautolearn
legen dann 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.
Loggin
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. Und dran denken:
spamassassin --lint ist Dein Freund!