Zum Inhalt

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 sollen
  • remove_weight — wenn das Composite die Einzelsignale „ersetzt" und Doppelzählung vermieden werden soll
  • remove_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

NMG_KNOWN_NEWSLETTER = BULK_SENDER & DKIM_VALID & !RCVD_IN_ZEN
score: -2.0   policy: leave
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
Kombiniert mehrere BEC-Indikatoren zu einem eigenständigen Score-Signal.

Outbound-Mails von Filterregeln ausschließen

NMG_SKIP_RBL_OUTBOUND = NMG_OUTBOUND_SUBMISSION & RCVD_IN_ZEN
score: 0.0   policy: remove_symbol
Entfernt RBL-Treffer für ausgehende Submissions (eigene IPs können in RBLs stehen).