initial commit of file from CVS for smeserver-clamav on Mon 10 Jul 08:35:52 BST 2023

master 2.7.0
Brian Read 10 months ago
parent bfd6d39c86
commit 8a58bd853d

4
.gitignore vendored

@ -0,0 +1,4 @@
*.rpm
*.log
*spec-20*
*.tar.xz

@ -0,0 +1,21 @@
# Makefile for source rpm: smeserver-clamav
# $Id: Makefile,v 1.1 2016/02/05 23:45:20 stephdl Exp $
NAME := smeserver-clamav
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

@ -1,3 +1,20 @@
# smeserver-clamav
# <img src="https://www.koozali.org/images/koozali/Logo/Png/Koozali_logo_2016.png" width="25%" vertical="auto" style="vertical-align:bottom"> smeserver-clamav
SMEServer Koozali developed git repo for smeserver-clamav smeserver
SMEServer Koozali developed git repo for smeserver-clamav smeserver
## Wiki
<br />https://wiki.koozali.org/Clamav:ConfigurationOptions
<br />https://wiki.koozali.org/Clamav_unofficial_sigs
<br />https://wiki.koozali.org/Clamav:freshclam_update
<br />https://wiki.koozali.org/Esmith::FormMagick::Panel::clamav
## Bugzilla
Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-clamav&product=SME%20Server%2010.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)
## Description
<br />*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
*Once it has been checked, then this comment will be deleted*
<br />
ClamAV is open source software that provides a powerful antivirus engine for detecting and removing malicious threats such as viruses, trojans, worms, and other malicious software. It can be used as both a standalone antivirus solution as well as an integrated antivirus solution with other security products. It features a regularly updated virus signature database, heuristics scanning, rootkit detection, and advanced rule-based detection. Additionally, it offers a high level of customization, allowing users to tailor the antivirus engine to their specific needs. ClamAV also provides a simple-to-use web-based management console, allowing users to manage ClamAV security features and settings with ease.

@ -0,0 +1 @@
sme10

@ -0,0 +1,65 @@
#!/usr/bin/perl -w
use esmith::Build::CreateLinks qw(:all);
my $panel = "manager";
panel_link("clamav", $panel);
# For templates in all main events
foreach (qw(
/etc/freshclam.conf
/etc/clamd.d/scan.conf
/etc/logrotate.d/clamd
/etc/logrotate.d/clamav-update
/etc/logrotate.d/freshclam
/usr/lib/tmpfiles.d/clamd.conf
/usr/lib/systemd/system/clamd.service.d/50koozali.conf
))
{
templates2events("$_",qw(
post-install
post-upgrade
bootstrap-console-save
console-save
email-update
clamav-update
smeserver-clamav-update
));
}
# For templates only in certain individual events
# Not required now
templates2events("/etc/cron.daily/freshclam", "bootstrap-console-save");
templates2events("/etc/cron.d/clamav-update", "bootstrap-console-save" );
my $event = "clamav-update";
templates2events("/etc/crontab", $event);
templates2events("/etc/systemd/system-preset/49-koozali.preset", $event );
templates2events("/etc/cron.daily/freshclam", $event );
templates2events("/etc/cron.d/clamav-update", $event );
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/clamd");
# clamav-update events
my $event = "smeserver-clamav-update";
templates2events("/etc/crontab", $event);
templates2events("/etc/systemd/system-preset/49-koozali.preset", $event );
templates2events("/etc/cron.daily/freshclam", $event );
templates2events("/etc/cron.d/clamav-update", $event );
safe_touch("root/etc/e-smith/templates/etc/cron.d/clamav-update");
event_link("systemd-default", $event, "88"); # updates all the service files etc
event_link("systemd-reload", $event, "89"); # systemctl daemon-reload
event_link("clamav-update", $event, "99");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/clamd");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/freshclam");
# email-update events - required?
$event = "email-update";
safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/clamd");
exit 0;

@ -0,0 +1,20 @@
{
my $smtpd = $DB->get('clamav') or return;
if (my $maxFileSize = $DB->get_prop_and_delete('clamav', 'ArchiveMaxFileSize')) {
$smtpd->merge_props('MaxFileSize', $maxFileSize);
}
if (my $maxRecursion = $DB->get_prop_and_delete('clamav', 'ArchiveMaxRecursion')) {
$smtpd->merge_props('MaxRecursion', $maxRecursion);
}
if (my $maxFiles = $DB->get_prop_and_delete('clamav', 'ArchiveMaxFiles')) {
$smtpd->merge_props('MaxFiles', $maxFiles);
}
if (my $AlertEncrypted = $DB->get_prop_and_delete('clamav', 'ArchiveBlockEncrypted')) {
$smtpd->merge_props('AlertEncrypted', $AlertEncrypted);
}
}

@ -0,0 +1,7 @@
{
my $clamav = $DB->get('clamav') or return;
return unless ($clamav->prop('DatabaseMirror') eq 'db.us.clamav.net');
$clamav->set_prop('DatabaseMirror','db.local.clamav.net');
}

@ -0,0 +1,7 @@
{
my $clamav = $DB->get('clamav');
return unless $clamav;
my $LogTime = 'yes';
$DB->set_prop('clamav', 'LogTime', $LogTime);
}

@ -0,0 +1,7 @@
{
my $clamd = $DB->get('clamd');
return unless $clamd;
my $size = 1610612736;
$DB->set_prop('clamd', 'MemLimit', $size) if $DB->get_prop('clamd','MemLimit') < $size;
}

@ -0,0 +1,7 @@
{
my $clamd = $DB->get('clamd');
return unless $clamd;
my $size = 600;
$DB->set_prop('clamd', 'SelfCheck', $size);
}

@ -0,0 +1,7 @@
{
my $clamav = $DB->get('clamav');
return unless $clamav;
if ($clamav{'DetectBrokenExecutables'}) {
$DB->get_prop_and_delete( 'clamav', 'DetectBrokenExecutables' );
}
}

@ -0,0 +1,2 @@
#!/usr/bin/bash
#keeping that to help migration from older clamd

@ -0,0 +1,44 @@
<!-- vim: ft=xml ts=8 sw=4 noet:
-->
<lexicon lang="en-us">
<entry>
<base>FORM_TITLE</base>
<trans>Antivirus settings</trans>
</entry>
<entry>
<base>LABEL_FILESYSTEM_SCAN_PERIOD</base>
<trans>Scan filesystem</trans>
</entry>
<entry>
<base>DESC_FILESYSTEM_SCAN_PERIOD</base>
<trans><![CDATA[
<h2>General Settings</h2>
If this option is enabled then the filesystem will be
scanned for viruses. A report of any found viruses will be
emailed to the administrator.]]></trans>
</entry>
<entry>
<base>LABEL_QUARANTINE</base>
<trans>Quarantine infected files</trans>
</entry>
<entry>
<base>LABEL_CLAM_VERSIONS</base>
<trans>ClamAV and db versions</trans>
</entry>
<entry>
<base>WEEKLY</base>
<trans>Weekly</trans>
</entry>
<entry>
<base>NEVER</base>
<trans>Never</trans>
</entry>
<entry>
<base>DAILY</base>
<trans>Daily</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>The new clamav antivirus settings have been saved.</trans>
</entry>
</lexicon>

@ -0,0 +1 @@
AlertBrokenExecutables {$clamav{AlertBrokenExecutables} || 'no' }

@ -0,0 +1 @@
AlertEncrypted { $clamav{AlertEncrypted} || 'no' }

@ -0,0 +1 @@
AlertExceedsMax { $clamav{AlertExceedsMax} || 'no' }

@ -0,0 +1 @@
AlertOLE2Macros { $clamav{AlertOLE2Macros} || 'no' }

@ -0,0 +1 @@
AlertPartitionIntersection { $clamav{AlertPartitionIntersection} || 'no' }

@ -0,0 +1 @@
AlertPhishingCloak {$clamav{AlertPhishingCloak} || 'no' }

@ -0,0 +1 @@
AlertPhishingSSLMismatch {$clamav{AlertPhishingSSLMismatch} || 'no' }

@ -0,0 +1,4 @@
# Enable for 0.103.x
# This takes a LOT more ram as it has have the DBs loaded twice
# Maybe we should check the memory limit before we allow enabling?
ConcurrentDatabaseReload { $clamav{ConcurrentDatabaseReload} || 'no' }

@ -0,0 +1 @@
Debug { $clamav{Debug} || 'no' }

@ -0,0 +1 @@
HeuristicAlerts {$clamav{HeuristicAlerts} || 'yes' }

@ -0,0 +1 @@
HeuristicScanPrecedence { $clamav{HeuristicScanPrecedence} || 'no' }

@ -0,0 +1,4 @@
{
# Waiting for a new job will timeout after this time (seconds).
"IdleTimeout $clamav{IdleTimeout}";
}

@ -0,0 +1 @@
LeaveTemporaryFiles { $clamav{LeaveTemporaryFiles} || 'no' }

@ -0,0 +1 @@
LogClean { $clamav{LogClean} || 'yes' }

@ -0,0 +1 @@
LogTime { $clamav{LogTime} || 'yes' }

@ -0,0 +1 @@
LogVerbose { $clamav{LogVerbose} || 'yes' }

@ -0,0 +1,4 @@
{
# Maximum length the queue of pending connections may grow to.
"MaxConnectionQueueLength $clamav{MaxConnectionQueueLength}";
}

@ -0,0 +1,4 @@
{
# Maximal depth directories are scanned at.
"MaxDirectoryRecursion $clamav{MaxDirectoryRecursion}";
}

@ -0,0 +1,5 @@
{
# Files in archives larger than this limit won't be scanned.
# Value of 0 disables the limit.
"MaxFileSize $clamav{MaxFileSize}";
}

@ -0,0 +1,5 @@
{
# Number of files to be scanned within an archive.
# Value of 0 disables the limit.
"MaxFiles $clamav{MaxFiles}";
}

@ -0,0 +1,7 @@
{
# Nested archives are scanned recursively, e.g. if a Zip archive contains a RAR
# file, all files within it will also be scanned. This options specifies how
# deep the process should be continued.
# Value of 0 disables the limit.
"MaxRecursion $clamav{MaxRecursion}";
}

@ -0,0 +1,4 @@
{
# Maximal number of threads running at the same time.
"MaxThreads $clamav{MaxThreads}";
}

@ -0,0 +1,5 @@
{
# Waiting for data from a client socket will timeout after this time (seconds).
# Value of 0 disables the timeout.
"ReadTimeout $clamav{ReadTimeout}";
}

@ -0,0 +1 @@
ScanArchive { $clamav{ScanArchive} || 'yes' }

@ -0,0 +1 @@
ScanHTML { $clamav{ScanHTML} || 'yes' }

@ -0,0 +1 @@
ScanMail { $clamav{ScanMail} || 'yes' }

@ -0,0 +1 @@
ScanOLE2 { $clamav{ScanOLE2} || 'yes' }

@ -0,0 +1 @@
ScanPE { $clamav{ScanPE} || 'yes' }

@ -0,0 +1,2 @@
# Perform internal sanity check (database integrity and freshness).
SelfCheck { $clamav{SelfCheck} || '600' }

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save