Rspamd logging und policy banks

In einem voran gegangenen Artikel habe ich generell über Logging von Rspamd in Verbindung mit rsyslog geschrieben. In diesem Artikel zeige ich exemplarisch, wie man in den sogenannten “user settings” Policies erstellen kann und eigene Symbole in die Log-Ausgabe integriert. Ferner verwende ich ein eigenes Log-Template in Rspamd, in dem ich Lua eingebaut habe.

Hier ein Beispiel meiner aktuellen rsyslog-Meldungen für Submission:

Im Log taucht eine Information zu policy_bank auf.

Ausgangspunkt für mich war, dass ich ein verlässliches Merkmal im Log benötige, um in rsyslog Meldungen basierend auf dieser Information unterschiedlich zu behandeln.

User Settings in Rspamd können prinzipiell auf zei verschiedene Arten realisiert werden. Entweder man definiert setting {} innerhalb der Datei rspamd.conf.local oder settings_redis. In meinem Beispiel nutze ich Variante 1 und nutze zusätzlich eine Datei-Map:

Wie man erkennen kann, liegt eine Datei namens settings.map in einem Unterverzeichnis maps.d. Dieses muss der Administrator selbst erstellen. Der Pfad ist dabei grundsätzlich frei wählbar.

Ohne zu sehr auf die Einzelheiten dieser Datei eingehen zu wollen, zeige ich beispielhaft, wie die Idee von Policy-Banks funktioniert.

Dieses Beispiel zeigt zwei Policy-Banks. Jede dieser Regeln setzt ein eigenes Symbol beginnend mit “POLICY_”. Diese Symbole wurden selbst definiert und werden nur durch diese User-Settings gesetzt.

Hier die Definition der Symbole in der Datei /etc/rspamd/rspamd.local.lua:

Diese Regeln benötigen noch einen Score. Und hier zeigt sich auch schon ein Vorteil: Admins können auf diese Weise verschiedenen Policy-Banks vorab Punkte schenken.

In der local.d/metrics.conf befindet sich folgende Definition:

Im letzten Schritt zeige ich, wie ich das Logging nun angepasst habe. Dazu definiere ich ein eigenes Logging-Template in der Datei local.d/logging.inc:

Viel Spaß

[ratings]