From 1eb51aa6feb069c3ff969b95d1e452abae916f78 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Thu, 18 Jul 2019 11:00:53 +0200 Subject: [PATCH] - fixed white/blacklisting for rspamd --- install/lib/update.lib.php | 2 +- server/conf/rspamd_users.inc.conf.master | 16 ++++++++-------- server/conf/rspamd_wblist.inc.conf.master | 14 +++++++++++--- server/plugins-available/rspamd_plugin.inc.php | 3 ++- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index 3406b760b0..fd1a34b2ca 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -103,7 +103,7 @@ function checkDbHealth() { $notok = array(); echo "Checking ISPConfig database .. "; - exec("mysqlcheck -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." -r ".escapeshellarg($conf["mysql"]["database"]), $result); + exec("mysqlcheck -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." --auto-repair ".escapeshellarg($conf["mysql"]["database"]), $result); for( $i=0; $i<sizeof($result);$i++) { if ( substr($result[$i], -2) != "OK" ) { $notok[] = $result[$i]; diff --git a/server/conf/rspamd_users.inc.conf.master b/server/conf/rspamd_users.inc.conf.master index 18934c2760..43890e8135 100644 --- a/server/conf/rspamd_users.inc.conf.master +++ b/server/conf/rspamd_users.inc.conf.master @@ -5,34 +5,34 @@ spamfilter_users-<tmpl_var name='record_id'> { want_spam = yes; </tmpl_if> <tmpl_if name='spam_lover_virus_lover' op='==' value='spam_lover_AND_NOTvirus_lover'> - apply "default" { + apply { CLAM_VIRUS = 1999.0; JUST_EICAR = 1999.0; actions { - reject = 999.0; + reject = null; } } </tmpl_if> <tmpl_if name='spam_lover_virus_lover' op='==' value='NOTspam_lover_AND_virus_lover'> - apply "default" { + apply { CLAM_VIRUS = -999.0; JUST_EICAR = -999.0; actions { <tmpl_if name='rspamd_greylisting' op='==' value='y'>greylist = <tmpl_var name='rspamd_spam_greylisting_level'>;</tmpl_if> - - <tmpl_var name='rspamd_spam_tag_method'> = <tmpl_var name='rspamd_spam_tag_level'>; + <tmpl_if name='rspamd_spam_tag_method' op='==' value='rewrite_subject'>"rewrite subject" = <tmpl_var name='rspamd_spam_tag_level'>;</tmpl_if> + <tmpl_if name='rspamd_spam_tag_method' op='==' value='add_header'>"add header" = <tmpl_var name='rspamd_spam_tag_level'>;</tmpl_if> reject = <tmpl_var name='rspamd_spam_kill_level'>; } } </tmpl_if> <tmpl_if name='spam_lover_virus_lover' op='==' value='NOTspam_lover_AND_NOTvirus_lover'> - apply "default" { + apply { CLAM_VIRUS = <tmpl_var name='rspamd_virus_kill_level'>; JUST_EICAR = <tmpl_var name='rspamd_virus_kill_level'>; actions { <tmpl_if name='rspamd_greylisting' op='==' value='y'>greylist = <tmpl_var name='rspamd_spam_greylisting_level'>;</tmpl_if> - - <tmpl_var name='rspamd_spam_tag_method'> = <tmpl_var name='rspamd_spam_tag_level'>; + <tmpl_if name='rspamd_spam_tag_method' op='==' value='rewrite_subject'>"rewrite subject" = <tmpl_var name='rspamd_spam_tag_level'>;</tmpl_if> + <tmpl_if name='rspamd_spam_tag_method' op='==' value='add_header'>"add header" = <tmpl_var name='rspamd_spam_tag_level'>;</tmpl_if> reject = <tmpl_var name='rspamd_spam_kill_level'>; } } diff --git a/server/conf/rspamd_wblist.inc.conf.master b/server/conf/rspamd_wblist.inc.conf.master index fc06127eae..aaa7d06f67 100644 --- a/server/conf/rspamd_wblist.inc.conf.master +++ b/server/conf/rspamd_wblist.inc.conf.master @@ -4,14 +4,22 @@ spamfilter_wblist-<tmpl_var name='record_id'> { rcpt = "<tmpl_var name='recipient'>"; <tmpl_if name='wblist' op='==' value='W'> want_spam = yes; + apply { + actions { + reject = null; + "add header" = null; + greylist = null; + "rewrite subject" = null; + } + } </tmpl_else> - apply "default" { + apply { R_DUMMY = 999.0; actions { reject = 0.2; - add_header = 0.1; + "add header" = 0.1; greylist = 0.1; - rewrite_subject = 0.1; + "rewrite subject" = 0.1; } } </tmpl_if> diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php index 65f4522ba7..b6eddc401f 100644 --- a/server/plugins-available/rspamd_plugin.inc.php +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -189,7 +189,8 @@ class rspamd_plugin { $tpl = new tpl(); $tpl->newTemplate('rspamd_wblist.inc.conf.master'); $tpl->setVar('record_id', intval($data['new']['wblist_id'])); - $tpl->setVar('priority', intval($data['new']['priority'])); + // we need to add 10 to priority to avoid mailbox/domain spamfilter settings overriding white/blacklists + $tpl->setVar('priority', intval($data['new']['priority']) + 10); $tpl->setVar('from', $app->functions->idn_encode($data['new']['email'])); $tpl->setVar('recipient', $app->functions->idn_encode($recipient['email'])); //$tpl->setVar('action', ($data['new']['wb'] == 'W'? 'want_spam = yes;' : 'action = "reject";')); -- GitLab