Whitelisting Optionen in Rspamd

Es gibt verschiedene Möglichkeiten, bestimmte Absender, Empfänger, Mailserver-Hostnamen etc. in Rspamd freizuschalten.

Grundsätzlich gibt es mehre Ansätze, von denen ich hier nur einen vorstellen möchte. Eine Variante besteht darin, bestimmte Spam-Tests abzuschalten oder andere Score-Werte zu setzen. Dies alles wird in den sogenannten User-Settings erledigt. Diese Einstellungen finden in der Datei /etc/rspamd/rspamd.conf.local statt. Entweder direkt kodiert oder als Verweis auf eine Map (zum Beispiel eine file-Map)

Hier möchte ich aber eine Möglichkeit vorstellen, Regeln im Modul multimap zu definieren. Ich persönlich nutze diese Variante, da ich hier E-Mails hart abweisen kann. Auf diese Weise lassen sich auch manche Policy-Services in Postfix ersetzen.

Das Modul ist sehr umfangreich, so dass ich auf jeden Fall empfehle, einen Blick in die Dokumentation zu werfen. Hier stelle ich erst einmal ein paar kleinere Beispiele vor, um ein Gefühl für dieses mächtige Modul zu bekommen.

Das erste Beispiel listet Servernamen, die als Spammer bekannt sind und von denen keinerlei E-Mails angenommen werden sollen. Das zweite Beispiel nennt Absender, die als Spammer bekannt geworden sind.

Dazu erstellt man die Datei /etc/rspamd/local.d/multimap.conf mit folgendem Inhalt:

LOCAL_REJECT_HOSTNAMES {
    prefilter = true;
    action = "reject";
    type = "hostname";
    map = "$LOCAL_CONFDIR/maps.d/hostnames-blacklist.map";
    regexp = true;
    description = "Blacklist hostname map (local)";
}

LOCAL_REJECT_SENDERS {
    prefilter = true;
    action = "reject";
    type = "from";
    map = "$LOCAL_CONFDIR/maps.d/senders-blacklist.map";
    regexp = true;
    description = "Blacklist sender map (local)";
}

Ich wähle für eigene Regeln generell den Präfix LOCAL_. Groß- und Kleinschreibung sind offiziell nicht zwingend, aber da alle Symbole in Rspamd großgeschrieben werden, halte ich mich immer an diese Konvention.

Es folgt dann jeweils ein Definitionsblock. Mit prefilter lege ich fest, dass ein Treffer der Maps automatisch zu einem finalen Resultat führt und keine weiteren Filter-Regeln angewendet werden. action ist auf reject gesetzt und gibt das Verhalten der Regel vor. Hier also das harte abweisen einer E-Mail. Der Parameter type unterscheidet hier einmal in hostname und from, also genau dem, was wir filtern wollen. map verweist hier auf file-Maps. Hier könnten auch andere Services genutzt werden. Vorteil dieser Maps im Modul ist, dass Änderungen automatisch nach einer kurzen Zeit in Rspamd neu geladen werden, sobald sich Änderungen ergeben haben. Mit regexp wird mitgeteilt, dass alle Einträge der Maps als reguläre Ausdrücke zu interpretieren sind. Letzlich bleibt hier noch der Parameter description, der einfach einen erklärenden Text für die Regel definiert. Dies wird zum Beispiel im WebGUI angezeigt, wenn man sich die Liste aller Symbole anzeigen lässt.

Nun fehlt noch der Inhalt der beiden Maps. Den möchte ich natürlich nicht verschweigen und zeige ihn exemplarisch:

/^.*\.douglaspubs\.com$/
/^kundenservice@spc-support\.fagms\.de$/
/^newsletter@premiumpassnews\.com$/
/@outlets\.de$/
/^support@kizzle\.net$/
/^noel\.butler@ausics\.net$/
/^info@gewinner-tarif\.org$/

Die beiden Dateien lege ich in einem gesonderten Verzeichnis unter /etc/rspamd/maps.d ab. Hier lege ich persönlich alle Arten von Maps ab. Dazu zähle ich auch die eingangs skizzierten User-Settings.