From a4b5b82953e34aa92af12d568682da3faca0dec6 Mon Sep 17 00:00:00 2001 From: Oli Schacher Date: Sun, 14 Jan 2018 11:04:33 +0100 Subject: [PATCH 1/4] update CHANGELOG for 0.7.0 --- fuglu/doc/CHANGELOG | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/fuglu/doc/CHANGELOG b/fuglu/doc/CHANGELOG index 69df0621..10bdd781 100644 --- a/fuglu/doc/CHANGELOG +++ b/fuglu/doc/CHANGELOG @@ -1,7 +1,8 @@ --- Fuglu 0.6.7, unreleased +-- Fuglu 0.7.0, 2018-01-14 * Attachment Plugin: * support more archive types ( tar.gz, tgz, tar.bz2, .7z) * extract archives based on detected magic mime type if possible (instead of file ending) + * the plugin now supports scan-time configuration options * New Plugin: SpearPhish detection * Improve body text extraction by also extracting multipart/mixed and the message's epilogue * various refactorings / remove lots of code smell @@ -9,6 +10,14 @@ * new tool 'fuglu_client' allows scanning messages from the commandline by either injecting them into a running fuglu with the Netcat plugin or by starting its own temporary fuglu instance. This is helpful for debugging or running fuglu in fetchmail like environments + * multi processing mode: instead of running multithreaded the scanning tasks can now run in their own process + * prequeue mode can now be configured to only deliver to one recipient per message - useful in spamtrap setups + * Add IPv6 support in various plugins connecting to other daemons (clamav, spamasassin, drweb, fprot, icap, sssp) + * domainauth plugin: remove hard dependency of pkg_resources + +Developers: + * suspect.to_addr is no longer a writeable member, it has been converted to a property which always returns the first recipient of a message + -- Fuglu 0.6.6, 2016-05-17 * Minimum python version 2.6 From 97ac60298084b20432729a04140a06d621eb654c Mon Sep 17 00:00:00 2001 From: Oli Schacher Date: Sun, 14 Jan 2018 11:15:08 +0100 Subject: [PATCH 2/4] update default config for 0.7.0 --- fuglu/conf/fuglu.conf.dist | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/fuglu/conf/fuglu.conf.dist b/fuglu/conf/fuglu.conf.dist index fd637985..623f2aec 100644 --- a/fuglu/conf/fuglu.conf.dist +++ b/fuglu/conf/fuglu.conf.dist @@ -135,6 +135,20 @@ dbconnectstring= #if the statement returns more than one row/value only the first value in the first row is used sql=SELECT value FROM fugluconfig WHERE `section`=:section AND `option`=:option AND `scope` IN ('$GLOBAL',CONCAT('%',:to_domain),:to_address) ORDER BY `scope` DESC +[performance] + +#minimum scanner threads +minthreads=2 + +#maximum scanner threads +maxthreads=40 + +#Method for parallelism, either 'thread' or 'process' +backend=thread + +#Initial number of processes when backend='process'. If 0 (the default), automatically selects twice the number of available virtual cores. Despite its 'initial'-name, this number currently is not adapted automatically. +initialprocs=0 + [spam] #what to do with messages that plugins think are spam but not so sure ("low spam") @@ -163,19 +177,14 @@ boundarydistance=0 #Only required if plugins need to have information about the last untrusted host and the message doesn't pass a fixed amount of hops to reach this system in your network trustedhostsregex= -[performance] - -#minimum scanner threads -minthreads=2 - -#maximum scanner threads -maxthreads=40 - [esmtpconnector] #confirmation template sent back to the connecting client for accepted messages queuetemplate=${injectanswer} +#only deliver the message to the first recipient, ignore the others. This is useful in spamtrap setups where we don't want to create duplicate deliveries. +ignore_multiple_recipients=0 + [virus] ##what to do with messages if a plugin detects a virus @@ -248,6 +257,9 @@ checkarchivecontent=0 #only extract and examine files up to this amount of (uncompressed) bytes archivecontentmaxsize=5000000 +#comma separated list of archive extensions. do only process archives of given types. +enabledarchivetypes= + [ClamavPlugin] #hostname where clamd runs @@ -314,7 +326,7 @@ forwardoriginal=0 #eg. start with _YESNO_ or _YESNOCAPS_ and contain score=_SCORE_ spamheader=X-Spam-Status -#enable SA user configuration +#enable user_prefs in SA. This hands the recipient address over the spamd connection which allows SA to search for configuration overrides peruserconfig=1 #spamscore threshold to mark a message as high spam From 1c67c1fc88ec49ed4d127d8ef6bcb1a48cea9d9d Mon Sep 17 00:00:00 2001 From: Oli Schacher Date: Sun, 14 Jan 2018 11:18:24 +0100 Subject: [PATCH 3/4] update version to 0.7.0 --- fuglu/src/fuglu/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fuglu/src/fuglu/__init__.py b/fuglu/src/fuglu/__init__.py index 0373c103..e2505b56 100644 --- a/fuglu/src/fuglu/__init__.py +++ b/fuglu/src/fuglu/__init__.py @@ -16,4 +16,4 @@ __all__ = ['bounce', 'core', 'daemon', 'funkyconsole', 'protocolbase', 'scansession', 'shared', 'stats', 'threadpool'] -FUGLU_VERSION = "0.6.6" +FUGLU_VERSION = "0.7.0" From 5e6faf9cb093799bb5d0f00257a64b234c975227 Mon Sep 17 00:00:00 2001 From: Oli Schacher Date: Sun, 14 Jan 2018 11:29:44 +0100 Subject: [PATCH 4/4] add performance settings in endtoend test --- fuglu/tests/integration/testdata/endtoendtest.conf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fuglu/tests/integration/testdata/endtoendtest.conf b/fuglu/tests/integration/testdata/endtoendtest.conf index 75a45e65..323af33a 100644 --- a/fuglu/tests/integration/testdata/endtoendtest.conf +++ b/fuglu/tests/integration/testdata/endtoendtest.conf @@ -21,6 +21,11 @@ mrtgdir= logtemplate=Suspect ${id} from=${from_address} to=${to_address} size=${size} spam=${spam} virus=${virus} modified=${modified} decision=${decision} spamstatusheader=1 +[performance] +backend=thread +minthreads=10 +maxthreads=20 + [smtpconnector] requeuetemplate=FUGLU REQUEUE(${id}): ${injectanswer} @@ -55,4 +60,4 @@ pipelining=0 [FiletypePlugin] template_blockedfile=/etc/fuglu/templates/blockedfile.tmpl rulesdir=/etc/fuglu/rules -blockaction=DELETE \ No newline at end of file +blockaction=DELETE