Rspamd: Subject Blacklist

Eine Blacklist für Wörter und Zeichenketten für den Betreff / Subject einer Email lässt sich in Rspamd anhand des Moduls Multimap und Regex umsetzen.

 

				
					#/etc/rspamd/local.d/multimap.conf

SUBJECT_BLACKLISTED {
        type = "header";
        header = "Subject";
        map = "${LOCAL_CONFDIR}/maps.d/blacklist_subject.map";
        regexp = true;
        action = "reject"; # Prefilter mode
        description = "Blacklist map for SUBJECT_BLACKLISTED";
}
				
			
				
					# /etc/rspamd/maps.d/blacklist_subject.map

/.*v[i!1][a@]gr[a@].*/i
/.*blaue.*pille.*/i
/.*voegeln.*/i
/sex[^yu]/i    # filtert sex aber nicht sexy oder sexualkunde
/.*erektion.*/i
/.*\spoten.\s.*/i
/.*\spotenzmittel.*/i
/.*\spotenzschwach.*/i
/.*\spoten..$/i
/.*impotent.*/i
/.*penis.*/i
/.*pimmel.*/i
/.*ficken.*/i
/.*orgasmus.*/i
/.*(flaute|versagen|unbefried).*\s(bett|kiste)[.!?]*?$/i
/.*(frau|girl|teen|ding|maedchen).*(reiten|verfuehren|zaehmen|vernaschen)[.!?]*?$/i
/.*diskret.*(shop|apotheke|klick|pille|tablette|medi).*/i
/.*liebe.*machen.*/i
/.*liebesapotheke.*/i
/.*liebesmedizin.*/i
/.*r[:.-]*?e[:.-]*?z[:.-]*?e[:.-]*?p[:.-]*?t[:.-]*?f[:.-]*?r[:.-]*?e[:.-]*?i.*(bank|visa|master|tablette|medikament|pille|pharma|mittel).*/i
/.*hose schlaff.*/i
/samsung.*anzurufen/i
/.*nachricht.*samsung/i
/7 Kilo pro Woche/i
/prehead/i
/rezepfrei/i
/[your account|withdraw|your balance has|now rich].*\+\d+(?:[\.|\,]\d+)?\$/i


				
			

Damit das dann auch über die Weboberfläche ohne Fehlermeldung gepflegt werden kann, habe ich noch mit chmod 777 /etc/rspamd/maps.d Schreibrechte gegeben. 

Die Map deckt die meisten Spammails, die noch durchkamen, ab. Die Mails werden mit der Fehlermeldung 554 5.7.1 Matched map: SUBJECT_BLACKLISTED rejected.

Die Website regex101.com ist nützlich beim ausprobieren der Regular Expressions. Rspamd benutzt Hyperscan für die Regular Expressions. Alles, was nicht von Hyperscan unterstützt wird, sollte generell nicht in regulären Ausdrücken von Rspamd verwendet werden, ansonsten bekommt man eine Fehlermeldung, wie diese im Logfile: cannot create tree of regexp when processing ‘sex(?!y|u)’: Zero-width assertions are not supported.

 

Eine Zeile pro Regular Expression. 
Jede startet und endet mit einem /, das i am Ende steht für Case insensitive match, als Groß- / Kleinschreibung ignorieren. 

.*     bedeutet beliebig viele Zeichen oder keines
\s    steht für Leerzeichen / Whitespace
|      steht für oder
$     steht für Ende der Zeile
[i!1] bedeutet, dass eines der Zeichen in den Klammern an die Stelle kommt, in dem Fall also i oder ! oder 1.  Setzt man ein ? dahinter, bedeutet das, es könnte eines der Zeichen dort stehen, muss aber nicht. *? bedeutet, eines oder mehrere dieser Zeichen könnten dort stehen, muss aber nicht. 

Zeile 19 filtert alle Subjects, die das Wort rezeptfrei, gefolgt von einem Teilstring der  “bank”, “visa”, “master”, “tablette” oder “medikament” enthält. Um das Blockieren zu erschweren, setzen Spammer gerne noch Sonderzeichen an beliebige Stellen des Wortes rezeptfrei. re:zeptfrei, re::ept:frei usw. Gerne auch mit Punkt oder Strich. All das Catcht diese Regular Expression.

 

Zeile 30 filtert Nachrichten, wie diese, die auch immer ein Dollar-Betrag im Subject haben: 

  • Your account already has +13455$
  • Your accounts with a balance of +24,781$ will be blocked!
  • Your balance has been replenished +14385$
    Withdraw your +28.257$, have only 24 hours
  • Your balance has been replenished +28.361$
  • You have 24 hours to withdraw +18238$
  • Withdraw your +27.591$, 24 hours
  • Your balance has been replenished +25,438$
  • You are now rich +23959$ on your balance!

 

Hier wird erklärt, wie man den Absender (From) filtert.

2 Antworten

  1. Hallo,
    vielen Dank für diesen Tipp, habe ich direkt im meine Config eingebaut.
    Leider trifft der Trigger (Zeile5: /sex[^yu]/i # filtert sex aber nicht sexy oder sexualkunde) nicht bei
    ‘Alfazone – Maximales Vergnügen am Sex’
    vermutlich weil der Satz mit ‘Sex’ endet.
    Ich habe leider keine Ahnung von regex, aber vielleicht kannst du den Trigger anpassen, dass der anschlägt.
    LG
    Reinhard

  2. Hat mir sehr geholfen. Habe die es in meine mailu Config eingebaut und es läuft! Endlich kann ich nervige Spam Emails auch anhand von eindeutigen Triggern im Betreff filtern.

    Mucias gracias 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Vielleicht gefällt dir auch folgendes?

.user.ini auf NGINX ausblenden

Die “.user.ini”-Datei, die Wordfence erstellt, kann vertrauliche Informationen enthalten, und der öffentliche Zugriff darauf sollte eingeschränkt werden. Wenn NGINX genutzt ist, muss man das selber

Mehr lesen »

php-fpm Optimierung

Ich nutze php-fpm und mir sind starke Performance-Probleme bei der Verwendung von WordPress aufgefallen. Die Oberfläche reagierte träge, oft gab es lange Wartezeiten. Zur php-fpm

Mehr lesen »
WordPress Cookie Plugin von Real Cookie Banner