rspamd: Punkte für RegExp vergeben

Ich hatte die Tage ein etwas, äh, “kurioses” Phänomen: Ich bekam Spam für eine Webseite (nennen wir sie mal spamsite.example), was jetzt erstmal noch nichts ungewähnliches ist. Ungewöhnlich war, dass das ganze einen stark negativen Spam-Score hatte.

Als ich mir angesehen habe warum das so ist habe ich, für mich völlig neu und unerwartet, herausgefunden dass der Spam über die Server des Mail-Marketing-Dienstleisters mailgun verschickt worden waren - und zwar anscheinend im Rahen von deren “free tier”, den man sich also einfach klicken kann.

Um solchen Spam in den Griff zu kriegen muss man etwas kreativer werden, z.B. eben eigene regulär Ausdrücke verwenden, und den Spam-Score der Mail zu erhöhen.

Die Upstream-Dokumentation zum entwickeln eigener Regeln findet sich hier und zum Regexp-Modul hier, aber ich dachte mir, schreibste hier mal ein kleines Beispiel hin. Der folgende Code wandert in die Datei /etc/rspamd/rspamd.local.lua:

-- spamsite.example
config['regexp']['MY_SPAMSITE_EXAMPLE'] = {
  re = '/spamsite\.example/i{mime}',
  score = 8.5,
  description = 'blacklist mails containing spamsite.example in body',
  group = 'incertum.net ',
}

Die Match-Qualifier findet man in der o.g. Doku zum Regexp-Modul. Ich hab keine Ahnung wie performant das bei echt großem Volumen ist, für mich jedenfalls funktioniert das jetzt erstmal so.