diff --git a/mailserver.env b/mailserver.env index 1d131696..6dea9adf 100644 --- a/mailserver.env +++ b/mailserver.env @@ -182,6 +182,12 @@ RSPAMD_HFILTER=1 # Default: 6 RSPAMD_HFILTER_HOSTNAME_UNKNOWN_SCORE=6 +# Can be used to enable or disable the neural module. +# +# - 0 => Disabled +# - **1** => Enabled +RSPAMD_Neural=0 + # Amavis content filter (used for ClamAV & SpamAssassin) # 0 => Disabled # 1 => Enabled diff --git a/target/scripts/startup/setup.d/security/rspamd.sh b/target/scripts/startup/setup.d/security/rspamd.sh index 86786932..25827bea 100644 --- a/target/scripts/startup/setup.d/security/rspamd.sh +++ b/target/scripts/startup/setup.d/security/rspamd.sh @@ -20,6 +20,7 @@ function _setup_rspamd() { __rspamd__setup_learning __rspamd__setup_greylisting __rspamd__setup_hfilter_group + __rspamd__setup_neural __rspamd__setup_check_authenticated _rspamd_handle_user_modules_adjustments # must run last @@ -283,6 +284,25 @@ function __rspamd__setup_hfilter_group() { fi } + +# This function handles setup of the neural module (see +# https://www.rspamd.com/doc/modules/neural.html). This module is experimental +# but can enhance anti-spam scoring possibly. +function __rspamd__setup_neural() { + local MODULE_FILE="${RSPAMD_LOCAL_D}/neural.conf" + readonly MODULE_FILE + local MODULE_FILE_2="${RSPAMD_LOCAL_D}/neural_group.conf" + readonly MODULE_FILE_2 + if _env_var_expect_zero_or_one 'RSPAMD_NEURAL' && [[ ${RSPAMD_NEURAL} -eq 1 ]]; then + __rspamd__log 'debug' 'neural module is enabled' + else + __rspamd__log 'debug' 'Disabling neural (group) module' + rm -f "${MODULE_FILE}" + rm -f "${MODULE_FILE_2}" + fi +} + + # If 'RSPAMD_CHECK_AUTHENTICATED' is enabled, then content checks for all users, i.e. # also for authenticated users, are performed. # diff --git a/target/scripts/startup/variables-stack.sh b/target/scripts/startup/variables-stack.sh index 0b351a9e..edb93171 100644 --- a/target/scripts/startup/variables-stack.sh +++ b/target/scripts/startup/variables-stack.sh @@ -65,6 +65,7 @@ function __environment_variables_general_setup() { VARS[RSPAMD_GREYLISTING]="${RSPAMD_GREYLISTING:=0}" VARS[RSPAMD_HFILTER]="${RSPAMD_HFILTER:=1}" VARS[RSPAMD_HFILTER_HOSTNAME_UNKNOWN_SCORE]="${RSPAMD_HFILTER_HOSTNAME_UNKNOWN_SCORE:=6}" + VARS[RSPAMD_NEURAL]="${RSPAMD_NEURAL:=1}" VARS[RSPAMD_LEARN]="${RSPAMD_LEARN:=0}" VARS[SA_KILL]=${SA_KILL:="10.0"} VARS[SA_SPAM_SUBJECT]=${SA_SPAM_SUBJECT:="***SPAM*** "}