diff options
-rw-r--r-- | conf/metrics.conf | 6 | ||||
-rw-r--r-- | conf/modules.conf | 18 | ||||
-rw-r--r-- | src/plugins/lua/rbl.lua | 4 |
3 files changed, 24 insertions, 4 deletions
diff --git a/conf/metrics.conf b/conf/metrics.conf index 088d6aaca..520f05a74 100644 --- a/conf/metrics.conf +++ b/conf/metrics.conf @@ -322,6 +322,12 @@ metric { description = "One received header with 'bad' patterns inside"; name = "ONCE_RECEIVED_STRICT"; } + + symbol { name = "RCVD_IN_DNSWL"; weight = 0.0; description = "Sender listed at http://www.dnswl.org"; } + symbol { name = "RCVD_IN_DNSWL_LOW"; weight = -0.1; description = "Sender listed at http://www.dnswl.org, low trust"; } + symbol { name = "RCVD_IN_DNSWL_MED"; weight = -1.0; description = "Sender listed at http://www.dnswl.org, medium trust"; } + symbol { name = "RCVD_IN_DNSWL_HI"; weight = -5.0; description = "Sender listed at http://www.dnswl.org, high trust"; } + symbol { name = "RBL_SPAMHAUS"; weight = 0.0; description = "From address is listed in zen"; } symbol { name = "RBL_SPAMHAUS_SBL"; weight = 2.0; description = "From address is listed in zen sbl"; } symbol { name = "RBL_SPAMHAUS_CSS"; weight = 2.0; description = "From address is listed in zen css"; } diff --git a/conf/modules.conf b/conf/modules.conf index 4ad8fc88c..0640def55 100644 --- a/conf/modules.conf +++ b/conf/modules.conf @@ -83,8 +83,7 @@ surbl { } } rbl { - - rbls { + rbls { spamhaus { symbol = "RBL_SPAMHAUS"; @@ -145,6 +144,21 @@ rbl { RBL_SEM = "127.0.0.2"; } } + + dnswl { + symbol = "RCVD_IN_DNSWL"; + rbl = "list.dnswl.org"; + ipv4 = true; + ipv6 = false; + received = false; + unknown = true; + returncodes { + RCVD_IN_DNSWL_LOW = "127.0.*.1"; + RCVD_IN_DNSWL_MED = "127.0.*.2"; + RCVD_IN_DNSWL_HI = "127.0.*.3"; + } + } + } } diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua index bf043e19e..da52c0fba 100644 --- a/src/plugins/lua/rbl.lua +++ b/src/plugins/lua/rbl.lua @@ -25,14 +25,14 @@ local function rbl_cb (task) local foundrc = false for s,i in pairs(thisrbl['returncodes']) do if type(i) == 'string' then - if i == ipstr then + if (string.find(ipstr, i)) then foundrc = true task:insert_result(s, 1) break end elseif type(i) == 'table' then for _,v in pairs(i) do - if v == ipstr then + if (string.find(ipstr, v)) then foundrc = true task:insert_result(s, 1) break |