Composites (Kombinations-Regeln)¶
Unter Composites werden rspamd Composite-Regeln verwaltet. Eine Composite-Regel kombiniert mehrere rspamd-Symbole mit boolescher Logik zu einem neuen, eigenständigen Symbol mit eigenem Score.
Composites sind das mächtigste Werkzeug, um bestehende Erkennungssignale gezielt miteinander zu verknüpfen — ohne die rspamd-Konfiguration direkt zu bearbeiten.
Felder¶
| Feld | Beschreibung |
|---|---|
| Name | Symbolname in Großbuchstaben, z. B. NMG_TRUSTED_RELAY_PASS — muss dem Muster [A-Z][A-Z0-9_]{2,63} entsprechen |
| Ausdruck | Boolesche Verknüpfung von rspamd-Symbolen (siehe Syntax) |
| Score | rspamd-Score-Beitrag wenn das Composite feuert (negativ = Ham-Bonus) |
| Policy | Was mit den Eingabe-Symbolen passiert, wenn das Composite feuert |
| Beschreibung | Optionaler Freitext |
| Aktiv | Composite ein-/ausschalten |
| Builtin | Vom System mitgelieferte Regeln — bearbeitbar, aber nicht löschbar |
Ausdrucks-Syntax¶
Composites nutzen rspamd-Composite-Ausdruckssprache:
| Operator | Bedeutung | Beispiel |
|---|---|---|
& |
UND — beide Symbole müssen feuern | SPF_FAIL & DKIM_TRACE_FAIL |
\| |
ODER — mindestens eines muss feuern | RCVD_IN_ZEN \| RCVD_IN_BARRACUDA |
! |
NICHT — Symbol darf nicht feuern | RCVD_IN_ZEN & !DKIM_VALID |
( ) |
Gruppierung | (SPF_FAIL \| DKIM_FAIL) & !WHITELIST |
Beispiele:
# Bekannte RBL-Treffer ohne gültige DKIM-Signatur → hard spam
NMG_RBL_NO_DKIM = RCVD_IN_ZEN & !DKIM_VALID
# Outbound Submission-Mails (kein inbound filter nötig)
NMG_OUTBOUND_OK = NMG_OUTBOUND_SUBMISSION & DKIM_VALID
# Verdächtige TLD kombiniert mit fehlender SPF-Ausrichtung
NMG_SUSPICIOUS_COMBO = NMG_SUSPICIOUS_TLD & SPF_FAIL & !NMG_TRUSTED_RELAY
Verfügbare Symbole
Alle aktuell aktiven rspamd-Symbole sind über die rspamd-Web-UI (http://localhost:11334) unter Symbols einsehbar. Alternativ: rspamadm configdump | grep -i symbol.
Policy-Optionen¶
Die Policy bestimmt, was mit den Eingabe-Symbolen passiert, nachdem das Composite gefeuert hat:
| Policy | Verhalten |
|---|---|
leave |
Eingabe-Symbole bleiben im Score erhalten (Standard) |
remove_weight |
Score-Gewichte der Eingabe-Symbole werden auf 0 gesetzt |
remove_symbol |
Eingabe-Symbole werden vollständig aus dem Ergebnis entfernt |
remove_existing |
Entfernt Eingabe-Symbole und verhindert ihr erneutes Feuern |
Wann welche Policy:
leave— wenn das Composite ein zusätzliches Signal ist und die Einzelsignale trotzdem zählen sollenremove_weight— wenn das Composite die Einzelsignale „ersetzt" und Doppelzählung vermieden werden sollremove_symbol— wenn die Einzelsignale nach Composite-Auswertung irrelevant sind (z. B. Normalisierung)remove_existing— für strenge Exklusion, typischerweise bei Whitelist-Composites
Score-Richtung¶
| Score | Wirkung |
|---|---|
Positiv (z. B. 5.0) |
Erhöht den Spam-Score → Richtung Quarantäne/Reject |
Negativ (z. B. -3.0) |
Senkt den Spam-Score → Ham-Bonus, reduziert Fehlalarm-Risiko |
0.0 |
Composite feuert (als Symbol sichtbar), ändert Score nicht |
Builtin-Composites¶
nmg liefert vorkonfigurierte Composites für typische Szenarien (z. B. Origin-Tag-Kombinationen, Outbound-Erkennung). Diese können bearbeitet (Score, Policy, aktiv/inaktiv), aber nicht gelöscht werden.
Anwendungsfälle¶
False-Positive reduzieren¶
Reduziert den Score für legitime Massenmail mit gültigem DKIM, die nicht in Spamhaus gelistet ist.Spezifischen Angriffsmuster erkennen¶
NMG_BEC_PATTERN = FROM_NEQ_ENVELOPE_FROM & !DKIM_VALID & NMG_SUSPICIOUS_TLD
score: 8.0 policy: remove_weight