Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
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)
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
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.?
Alexander Mahr
**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
- Jolinar
- Community Moderator
- Posts: 3884
- Joined: Sat 30. Jan 2016, 07:11
- Location: Weimar (Thüringen)
- Contact:
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
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...?
Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
- In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
In this color, I write as a moderator and provide moderative guidance or justify moderative interventions - In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
In this color, I write as a community member and share my personal opinions and views
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
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";
}
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
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
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)
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)
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)
Code: Select all
rspamc learn_spam /path/to/Junkfolder
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
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
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)
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
--
95% aller Programmier halten sich für genial.
Der Rest immer noch für überdurchschnittlich.
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
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
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"
Da muss KH nicht "mitspielen" das macht rspamd von alleine.
--
95% aller Programmier halten sich für genial.
Der Rest immer noch für überdurchschnittlich.
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
Die Änderungen dort vorzunehmen ist also update-sicher.
Alexander Mahr
**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
Re: Blocken E-Mails mit bestimmtem Betreff (Wörtern / Sätzen)
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
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).