Browse Source

[Project] Rbl: Migrate to `checks`

tags/2.7
Vsevolod Stakhov 3 years ago
parent
commit
9e9a41aedd
2 changed files with 22 additions and 39 deletions
  1. 18
    37
      conf/modules.d/rbl.conf
  2. 4
    2
      lualib/plugins/rbl.lua

+ 18
- 37
conf/modules.d/rbl.conf View File

symbol = "SPAMHAUS"; # Augmented by prefixes symbol = "SPAMHAUS"; # Augmented by prefixes
rbl = "zen.spamhaus.org"; rbl = "zen.spamhaus.org";
# Check types # Check types
received = true;
from = true;
checks = ['received', 'from'];


symbols_prefixes = { symbols_prefixes = {
received = 'RECEIVED', received = 'RECEIVED',
symbol = "MAILSPIKE"; symbol = "MAILSPIKE";
rbl = "rep.mailspike.net"; rbl = "rep.mailspike.net";
is_whitelist = true; is_whitelist = true;
from = true; # Check source IP address
checks = ['from'];
whitelist_exception = "MAILSPIKE"; whitelist_exception = "MAILSPIKE";
whitelist_exception = "RWL_MAILSPIKE_GOOD"; whitelist_exception = "RWL_MAILSPIKE_GOOD";
whitelist_exception = "RWL_MAILSPIKE_NEUTRAL"; whitelist_exception = "RWL_MAILSPIKE_NEUTRAL";


senderscore { senderscore {
symbol = "RBL_SENDERSCORE"; symbol = "RBL_SENDERSCORE";
from = true; # Check source IP address
checks = ['from'];
rbl = "bl.score.senderscore.com"; rbl = "bl.score.senderscore.com";
} }


symbol = "RBL_SEM"; symbol = "RBL_SEM";
rbl = "bl.spameatingmonkey.net"; rbl = "bl.spameatingmonkey.net";
ipv6 = false; ipv6 = false;
from = true; # Check source IP address
checks = ['from'];
} }


semIPv6 { semIPv6 {
rbl = "bl.ipv6.spameatingmonkey.net"; rbl = "bl.ipv6.spameatingmonkey.net";
ipv4 = false; ipv4 = false;
ipv6 = true; ipv6 = true;
from = true; # Check source IP address
checks = ['from'];
} }


dnswl { dnswl {
symbol = "RCVD_IN_DNSWL"; symbol = "RCVD_IN_DNSWL";
rbl = "list.dnswl.org"; rbl = "list.dnswl.org";
ipv6 = true; ipv6 = true;
from = true; # Check source IP address
received = true; # Check source IP address
checks = ['from', 'received'];
is_whitelist = true; is_whitelist = true;
whitelist_exception = "RCVD_IN_DNSWL"; whitelist_exception = "RCVD_IN_DNSWL";
whitelist_exception = "RCVD_IN_DNSWL_NONE"; whitelist_exception = "RCVD_IN_DNSWL_NONE";
symbol = "RBL_VIRUSFREE_UNKNOWN"; symbol = "RBL_VIRUSFREE_UNKNOWN";
rbl = "bip.virusfree.cz"; rbl = "bip.virusfree.cz";
ipv6 = true; ipv6 = true;
from = true; # Check source IP address
checks = ['from'];
returncodes { returncodes {
RBL_VIRUSFREE_BOTNET = "127.0.0.2"; RBL_VIRUSFREE_BOTNET = "127.0.0.2";
} }
symbol = "RBL_NIXSPAM"; symbol = "RBL_NIXSPAM";
rbl = "ix.dnsbl.manitu.net"; rbl = "ix.dnsbl.manitu.net";
ipv6 = true; ipv6 = true;
from = true; # Check source IP address
checks = ['from'];
} }


blocklistde { blocklistde {
symbol = "BLOCKLISTDE"; symbol = "BLOCKLISTDE";
rbl = "bl.blocklist.de"; rbl = "bl.blocklist.de";
ipv6 = true; ipv6 = true;
received = true;
from = true;
checks = ['from', 'received'];
} }


# Dkim whitelist # Dkim whitelist
dnswl_dwl { dnswl_dwl {
symbol = "DWL_DNSWL"; symbol = "DWL_DNSWL";
rbl = "dwl.dnswl.org"; rbl = "dwl.dnswl.org";
dkim = true;
dkim_domainonly = false;
dkim_match_from = true;
checks = ['dkim'];
ignore_whitelist = true; ignore_whitelist = true;
unknown = false; unknown = false;


hash_format = "base32"; hash_format = "base32";
hash_len = 32; hash_len = 32;
rbl = "email.rspamd.com"; rbl = "email.rspamd.com";
emails = true; # Emails in body
replyto = true; # Email from reply-to header
checks = ['emails', 'replyto'];
hash = "blake2"; hash = "blake2";
returncodes = { returncodes = {
RSPAMD_EMAILBL = "127.0.0.2"; RSPAMD_EMAILBL = "127.0.0.2";
ignore_whitelist = true; ignore_whitelist = true;
ignore_defaults = true; ignore_defaults = true;
rbl = "ebl.msbl.org"; rbl = "ebl.msbl.org";
emails = true; # Emails in body
replyto = true; # Email from reply-to header
checks = ['emails', 'replyto'];
emails_domainonly = false; emails_domainonly = false;
hash = "sha1"; hash = "sha1";
returncodes = { returncodes = {
"SURBL_MULTI" { "SURBL_MULTI" {
ignore_defaults = true; ignore_defaults = true;
rbl = "multi.surbl.org"; rbl = "multi.surbl.org";
dkim = true;
emails = true;
urls = true;
checks = ['emails', 'dkim', 'urls'];
emails_domainonly = true; emails_domainonly = true;


returnbits = { returnbits = {
"URIBL_MULTI" { "URIBL_MULTI" {
ignore_defaults = true; ignore_defaults = true;
rbl = "multi.uribl.com"; rbl = "multi.uribl.com";
dkim = true;
emails = true;
urls = true;
checks = ['emails', 'dkim', 'urls'];
emails_domainonly = true; emails_domainonly = true;


returnbits { returnbits {
"RSPAMD_URIBL" { "RSPAMD_URIBL" {
ignore_defaults = true; ignore_defaults = true;
rbl = "uribl.rspamd.com"; rbl = "uribl.rspamd.com";
dkim = true;
emails = true;
urls = true;
checks = ['emails', 'dkim', 'urls'];
emails_domainonly = true; emails_domainonly = true;
hash = 'blake2'; hash = 'blake2';
hash_len = 32; hash_len = 32;
ignore_defaults = true; ignore_defaults = true;
rbl = "dbl.spamhaus.org"; rbl = "dbl.spamhaus.org";
no_ip = true; no_ip = true;
dkim = true;
emails = true;
checks = ['emails', 'dkim', 'urls'];
emails_domainonly = true; emails_domainonly = true;
urls = true;


returncodes = { returncodes = {
# spam domain # spam domain
ignore_defaults = true; ignore_defaults = true;
rbl = "uribl.spameatingmonkey.net"; rbl = "uribl.spameatingmonkey.net";
no_ip = true; no_ip = true;
dkim = true;
emails = true;
checks = ['emails', 'dkim', 'urls'];
emails_domainonly = true; emails_domainonly = true;
urls = true;
returnbits { returnbits {
SEM_URIBL = 2; SEM_URIBL = 2;
} }
ignore_defaults = true; ignore_defaults = true;
rbl = "fresh15.spameatingmonkey.net"; rbl = "fresh15.spameatingmonkey.net";
no_ip = true; no_ip = true;
dkim = true;
emails = true;
checks = ['emails', 'dkim', 'urls'];
emails_domainonly = true; emails_domainonly = true;
urls = true;
returnbits { returnbits {
SEM_URIBL_FRESH15 = 2; SEM_URIBL_FRESH15 = 2;
} }

+ 4
- 2
lualib/plugins/rbl.lua View File

rspamd_logger.errx(rspamd_config, 'rbl rule %s has check %s which requires an argument', rspamd_logger.errx(rspamd_config, 'rbl rule %s has check %s which requires an argument',
rule.symbol, check) rule.symbol, check)
return nil return nil
else
rule[check] = check_type
end end
end end

rule[check] = check_type

if not check_type.connfilter then if not check_type.connfilter then
all_connfilter = false all_connfilter = false
end end

if not check_type then if not check_type then
rspamd_logger.errx(rspamd_config, 'rbl rule %s has invalid check type: %s', rspamd_logger.errx(rspamd_config, 'rbl rule %s has invalid check type: %s',
rule.symbol, check) rule.symbol, check)

Loading…
Cancel
Save