From e618b4d152e38f9c939e94923d895e7ad1f071b5 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 6 Mar 2017 13:51:23 +0000 Subject: [PATCH] [Conf] Add default configuration for antivirus module --- conf/modules.d/antivirus.conf | 52 +++++++++++++++++++++++++++++++++++ src/plugins/lua/antivirus.lua | 2 +- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 conf/modules.d/antivirus.conf diff --git a/conf/modules.d/antivirus.conf b/conf/modules.d/antivirus.conf new file mode 100644 index 000000000..bca025fff --- /dev/null +++ b/conf/modules.d/antivirus.conf @@ -0,0 +1,52 @@ +# Please don't modify this file as your changes might be overwritten with +# the next update. +# +# You can modify '$LOCAL_CONFDIR/rspamd.conf.local.override' to redefine +# parameters defined on the top level +# +# You can modify '$LOCAL_CONFDIR/rspamd.conf.local' to add +# parameters defined on the top level +# +# For specific modules or configuration you can also modify +# '$LOCAL_CONFDIR/local.d/file.conf' - to add your options or rewrite defaults +# '$LOCAL_CONFDIR/override.d/file.conf' - to override the defaults +# +# See https://rspamd.com/doc/tutorials/writing_rules.html for details + +antivirus { + # multiple scanners could be checked, for each we create a configuration block with an arbitrary name + clamav { + # If set force this action if any virus is found (default unset: no action is forced) + # action = "reject"; + # if `true` only messages with non-image attachments will be checked (default true) + attachments_only = true; + # If `max_size` is set, messages > n bytes in size are not scanned + #max_size = 20000000; + # symbol to add (add it to metric if you want non-zero weight) + symbol = "CLAM_VIRUS"; + # type of scanner: "clamav", "fprot", "sophos" or "savapi" + type = "clamav"; + # For "savapi" you must also specify the following variable + #product_id = 12345; + # For "savapi" you can enable logging for clean messages + #log_clean = true; + # servers to query (if port is unspecified, scanner-specific default is used) + # can be specified multiple times to pool servers + # can be set to a path to a unix socket + # Enable this in local.d/antivirus.conf + #servers = "127.0.0.1:3310"; + # if `patterns` is specified virus name will be matched against provided regexes and the related + # symbol will be yielded if a match is found. If no match is found, default symbol is yielded. + patterns { + # symbol_name = "pattern"; + JUST_EICAR = "^Eicar-Test-Signature$"; + } + # `whitelist` points to a map of IP addresses. Mail from these addresses is not scanned. + whitelist = "/etc/rspamd/antivirus.wl"; + } + + + .include(try=true,priority=5) "${DBDIR}/dynamic/antivirus.conf" + .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/antivirus.conf" + .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/antivirus.conf" +} diff --git a/src/plugins/lua/antivirus.lua b/src/plugins/lua/antivirus.lua index 417a93fb4..cc59ae86e 100644 --- a/src/plugins/lua/antivirus.lua +++ b/src/plugins/lua/antivirus.lua @@ -646,7 +646,7 @@ local opts = rspamd_config:get_all_opt('antivirus') if opts and type(opts) == 'table' then redis_params = rspamd_parse_redis_server('antivirus') for k, m in pairs(opts) do - if type(m) == 'table' and m['type'] then + if type(m) == 'table' and m['type'] and m['servers'] then local cb = add_antivirus_rule(k, m) if not cb then rspamd_logger.errx(rspamd_config, 'cannot add rule: "' .. k .. '"') -- 2.39.5