Page 1 of 2
Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 08:24
by Toorms
Hallo Community,
zusammenhängend mit meiner Anfrage
hier, wäre es super, wenn ich neben E-Mail Address White-/Blacklisting auch Subject Blacklisting im Frontend von Keyhelp (z.B. hier /index.php?page=admin_configuration&configure=email_server) setzen könnte.
Hier wäre es super, wenn es eine Art "automatischer" RegEx umwandler gibt (Checkbox "Regex anwenden/Wort trennen mit Zeichen XY"). Bestes Beispiel ist hier die Spamwelle "Rezeptfrei, re-zeptfrei, rezep-tfrei ...". Ebenso gibt es einfach einige Wörter / Sätze in Betreffzeilen, welche sehr oft Spam sind.
Selbst wenn man mal einen False/Positive dabei hat, kann man mit der bestehenden E-Mail-Addr-Whitelist arbeiten, welche höher gewichtet werden wollte als die Subject-Blocklist.
Die Implementierung dieses Features würde meine obige Anfrage
viewtopic.php?p=49236#p49236 auch hinfällig machen.
Besten Dank.
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 11:14
by joka
Auch mir würde das sehr viel weiterhelfen. Vor allem bei der Apotheken-Spam-Welle. Und da fallen mir noch viele weitere Schlagworte ein wie Casino oder Bitcoin. Zurzeit schütze ich mich zusätzlich über die Spam-Funktionen der E-Mail-Clients.
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 11:44
by Toorms
Habe mir nun Behilfsweise ein Bash Script geschrieben, was das erledigt. Wenn nun aber ein KH Update kommt, muss ich es manuell wieder hinzufügen. Wäre also ein wirklich nettes Feature

Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 12:47
by Alexander
Hallo,
Toorms wrote: ↑Tue 11. Jun 2024, 11:44
Habe mir nun Behilfsweise ein Bash Script geschrieben, was das erledigt. Wenn nun aber ein KH Update kommt, muss ich es manuell wieder hinzufügen. Wäre also ein wirklich nettes Feature
Ich kann gerade noch nicht so recht nachvollziehen, wie KeyHelp dein Script überschreiben sollte. Magst einmal sagen, wo du das Script abgelegt hast, bzw. in welche Konfiguration du darauf verweist etc.?
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 12:52
by Jolinar
Alexander wrote: ↑Tue 11. Jun 2024, 12:47
Ich kann gerade noch nicht so recht nachvollziehen, wie KeyHelp dein Script überschreiben sollte. Magst einmal sagen, wo du das Script abgelegt hast, bzw. in welche Konfiguration du darauf verweist etc.?
Ergänzend noch die Frage, ob du dein Bash Script vielleicht hier öffentlich stellen magst, damit andere Leute aus der Community davon auch partizipieren können...?
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 12:58
by Toorms
Alexander wrote: ↑Tue 11. Jun 2024, 12:47
Ich kann gerade noch nicht so recht nachvollziehen, wie KeyHelp dein Script überschreiben sollte.
Eventuell einfach nur doof beschrieben / umschrieben. Folgend einmal eine Erklärung, was ich gemacht habe und auch funktioniert - bis eben ein Keyhelp Update kommt, da ab dann die Datei
/etc/rspamd/local.d/multimap.conf welche folgende Änderung von mir beinhaltet.
Code: Select all
SUBJECT_BLACKLISTED {
type = "header";
header = "Subject";
map = "${LOCAL_CONFDIR}/maps.d/blacklist_subject.map";
regexp = true;
action = "reject";
description = "Blacklist map for SUBJECT_BLACKLISTED";
}
Die dazugehörige Map liegt hier
/etc/rspamd/maps.d/blacklist_subject.map und wird von meinem Script, welches hier liegt
/opt/scripts/subjectblacklister/subblacklister.sh und mittels des folgenden Inhalts die Map befüllen kann.
Code: Select all
#!/bin/bash
regex=$(echo $1 | sed 's/ /\\s*/g')
echo "/.*${regex}.*/i" >> /etc/rspamd/maps.d/blacklist_subject.map
systemctl restart rspamd.service
exit 0
So wird das Script ausgeführt
.\subblacklister.sh "das ist ein verdächtiger String im Betreff". In dem E-Mail Betreff kann sodann folgender sein "Hallo Anleger, das ist ein verdächtiger String im Betreff! Handle noch heute" - und die E-Mail wird geblockt.
Anschließend sieht meine Map dann so aus
Code: Select all
...
/.*Gestalten\s*Sie\s*Ihre\s*eigenen.*/i
/.*Ihnen\s*recht\s*herzlich.*/i
/.*Bequem\s*sitzen.*/i
/.*personalisierten\s*Kugelschreibern.*/i
/.*schon\s*durch\s*4\s*wochen.*/i
Das ganze funktioniert auch super, nur wäre es doch auch nicht schlecht, wenn man das ganze aus von der KeyHelp Oberfläche setzen könnte (und ggf. mit etwas mehr Kontrolle / Prüfungen zwischendrin).
Ebenso wäre auch super, wenn es in KeyHelp nicht nur möglich ist zusammenhängende Wörter aus einem Satz zu sperren sondern auch einzelne Wörter.
Was also überschrieben wird ist die multimap.conf und nicht "mein eigenes" Script.
Mir ist bekannt, dass ich dadurch ggf. E-Mail wegschieße ... das muss aber jeder (Admin) für sich selbst entscheiden können. Das einzige was nicht funktioniert und eigentlich wünschenswerter wäre, wäre die Action "discard", sodass der Spammer nichts mitbekommt. Bei der Action Reject gehts halt zurück. Sobald ich die Action auf discard stelle, werden die Nachrichten nicht mehr gefangen sondern einfach durchgestellt.
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 13:10
by Ralph
Toorms wrote: ↑Tue 11. Jun 2024, 11:44
Habe mir nun Behilfsweise ein Bash Script geschrieben, was das erledigt. Wenn nun aber ein KH Update kommt, muss ich es manuell wieder hinzufügen. Wäre also ein wirklich nettes Feature
ergänzend zur /etc/postfix/header_checks kannst auch einfach eine /etc/postfix/body_checks einbinden ... oder halt über rspamd erweitern (multi map wird aber überschrieben bei updates)
Code: Select all
/Rezeptfrei .*/ REJECT
/.* Rezeptfrei/ REJECT
/re-zeptfrei .*/ REJECT
/.* re-zeptfrei/ REJECT
/www\.kryptobz\.com/ REJECT
/kryptobz\.com/ REJECT
/tinyurl5\.ru/ REJECT
/tinyurl\.com/ REJECT
/bitly\.com/ REJECT
/bit\.ly/ REJECT
/6url\.ru/ REJECT
/clck\.ru/ REJECT
/cutt\.us/ REJECT
/bit\.do/ REJECT
/u\.to/ REJECT
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 13:15
by Toorms
Ralph wrote: ↑Tue 11. Jun 2024, 13:10
ergänzend zur /etc/postfix/header_checks kannst auch einfach eine /etc/postfix/body_checks einbinden ... oder halt über rspamd erweitern (multi map wird aber überschrieben bei updates)
Auch sowas kann ich mir super in einer rspamd Erweiterung von KeyHelp vorstellen um dem ganzen Spam auch ein wenig schneller einhalt gebieten zu können - neben dem normalen Learning von rspamd natürlich.
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 17:15
by Toorms
Kurze off-topic Frage: Kann ich meine Mails aus dem Junk Ordner komplett löschen, nachdem ich
Code: Select all
rspamc learn_spam /path/to/Junkfolder
ausgeführt habe oder müssen die Mails im Junk-Ordner bleiben?
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 18:40
by Toorms
Da bei jedem abspeichern einer Konfiguration im E-Mail Server über das Frontend auch die rspamd Konfigurationsdateien neu geschrieben werden von KeyHelp, sind auch die Änderungen in der Multimap weg.
Das kann hiermit umgangen werden
Code: Select all
#!/bin/bash -e
if ! grep -q "SUBJECT_BLACKLISTED" /etc/rspamd/local.d/multimap.conf; then
echo -e "" >> /etc/rspamd/local.d/multimap.conf
cat <<EOF >> "/etc/rspamd/local.d/multimap.conf"
SUBJECT_BLACKLISTED {
type = "header";
header = "Subject";
map = "/etc/rspamd/maps.d/blacklist_subject.map";
regexp = true;
action = "reject";
description = "Blacklist map for SUBJECT_BLACKLISTED";
}
EOF
systemctl restart rspamd
fi
exit 0
Das Script dann einfach in den Cronjob packen + ausführbar machen (bei mir ist es minütlich) und schon ist ein "workaround" geschaffen. Die Values in dem Script müssen natürlich mit dem eures sowie euer multimap übereinstimmen.
Code: Select all
*/1 * * * * root /opt/scripts/subjectblacklister/multimapcheck.sh >> /dev/null 2>&1
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 19:03
by 24unix
Ich kenne mich mit rspamd nicht aus, aber wenn ich das lese:
Code: Select all
# You can modify 'local.d/settings.conf' to add and merge
# parameters defined inside this section
#
# You can modify 'override.d/settings.conf' to strictly override all
# parameters defined inside this section
würde das doch genau das sein, was Du brauchst, oder?
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 19:14
by Toorms
24unix wrote: ↑Tue 11. Jun 2024, 19:03
würde das doch genau das sein, was Du brauchst, oder?
Diese Dateien gibt es leider nicht und ich weiß nicht, in wie weit KeyHelp bei dem ganzen "mitspielen" möchte. Daher habe ich es als FR hier mal reingestellt. Aber danke dir für den Hinweis

Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Tue 11. Jun 2024, 19:19
by 24unix
Nein, die gibt es nicht, aber wenn Du sie anlegst werden sie ausgewertet.
Also einmal:
Code: Select all
cat <<EOF >> "/etc/rspamd/overide.d/settings.conf"
SUBJECT_BLACKLISTED {
type = "header";
header = "Subject";
map = "/etc/rspamd/maps.d/blacklist_subject.map";
regexp = true;
action = "reject";
description = "Blacklist map for SUBJECT_BLACKLISTED";
}
EOF
Und es sollte updatesicher sein.
Code: Select all
❯ grep -irn 'settings.conf' *
common.conf:29:.include "$CONFDIR/settings.conf"
settings.conf:5:# You can modify 'local.d/settings.conf' to add and merge
settings.conf:8:# You can modify 'override.d/settings.conf' to strictly override all
settings.conf:23: # Some examples below (define in local.d/settings.conf without `settings {}`!)
settings.conf:64: .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/settings.conf"
settings.conf:65: .include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/settings.conf"
Am Ende der settings.conf wird die settings.conf aus dem override.d folder geparsed und überschreibt die Werte, die vorher evtl. gesetzt waren.
Da muss KH nicht "mitspielen" das macht rspamd von alleine.
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Wed 12. Jun 2024, 09:48
by Alexander
Und ergänzend dazu: Es ist nicht geplant, dass KeyHelp Konfigurationen jemals in override.d landen.
Die Änderungen dort vorzunehmen ist also update-sicher.
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Posted: Wed 12. Jun 2024, 14:29
by Toorms
Kleines Update zu meinem Script, mit dem ich Dinge zur Subject Blacklist hinzufüge
Code: Select all
script.sh -s "satzteile mit leerzeichen"
script.sh -w "eineinzelneswort"
Code: Select all
#!/bin/bash
strMapFile=/etc/rspamd/maps.d/blacklist_subject.map
function sentence() {
regsen=$(echo $1 | sed 's/ /\\s*/g')
echo "/.*${regsen}.*/i" >> $strMapFile
}
function word() {
regword=$(echo $1)
if ! grep -q $1 $strMapFile; then
echo "/.*${regword}.*/i" >> $strMapFile
fi
}
case "$1" in
"-w")
word "$2"
;;
"-s")
sentence "$2"
;;
*)
echo "choose -w word | -s sentence"
exit 0
;;
esac
systemctl restart rspamd.service
exit 0
Ich habe es auch mit der settings.conf Datei im Overwrite getestet, da wurde meine Blacklist tatsächlich komplett ignoriert. Daher bin ich auf mein altes Konstrukt gerade umgestiegen.
Aufgrund des doch recht regen Mail-Verkehrs habe ich leider nicht so unbedingt die "
Freiheit" die Sachen für ein paar Minuten länger zu testen (außer ich ziehe eine Testumgebung auf).
