SCROLL
Среднее время на прочтение: 4 мин.

Установка ClamAV 1.1.* из исходников на Debian 11

Clam AntiVirus — пакет антивирусного ПО, работающий во многих операционных системах, включая Unix-подобные ОС, OpenVMS, Microsoft Windows и Apple macOS.

Устанавливаем необходимые пакеты зависимостей. Все действия ниже будут выполняться от root.

apt-get install gcc cmake make pkg-config valgrind git python3 python3-pip python3-pytest check libbz2-dev libcurl4-openssl-dev libjson-c-dev libmilter-dev libncurses5-dev libpcre2-dev libssl-dev libxml2-dev libsystemd-dev zlib1g-dev -y

JUQwJTlEJUQwJUIwJUQxJTg3JUQwJUI4JUQwJUJEJUQwJUIwJUQxJThGJTIwJUQxJTgxJTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI4JUMyJUEwMC4xMDUlMkIlMkMlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQkElRDAlQkUlRDAlQkMlRDAlQkYlRDAlQjglRDAlQkIlRDElOEYlRDElODYlRDAlQjglRDAlQjglMjAlRDElODclRDAlQjAlRDElODElRDElODIlRDAlQjUlRDAlQjklMjBsaWJjbGFtYXYlMjAlRDElODIlRDElODAlRDAlQjUlRDAlQjElRDElODMlRDAlQjUlRDElODIlRDElODElRDElOEYlMjAlRDAlQkQlRDAlQjAlRDAlQjElRDAlQkUlRDElODAlMjAlRDAlQjglRDAlQkQlRDElODElRDElODIlRDElODAlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlRDAlQkUlRDAlQjIlMjBSdXN0LiUyMCVEMCU5QSVEMCVCMCVEMCVCQSUyMCVEMSU4MyVEMSU4MSVEMSU4MiVEMCVCMCVEMCVCRCVEMCVCRSVEMCVCMiVEMCVCOCVEMSU4MiVEMSU4QyUyMCVEMSU4RiVEMCVCNyVEMSU4QiVEMCVCQSUyMCVEMCVCRiVEMSU4MCVEMCVCRSVEMCVCMyVEMSU4MCVEMCVCMCVEMCVCQyVEMCVCQyVEMCVCOCVEMSU4MCVEMCVCRSVEMCVCMiVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4RiUyMFJ1c3QlMjAlRDAlQkQlRDAlQjAlMjBEZWJpYW4lMjAxMQ==

Установка ClamAV

JUQwJUExJUQwJUJBJUQwJUIwJUQxJTg3JUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI4JUQxJTgxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUJEJUQwJUI4JUQwJUJBJTJDJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUIyJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUI4JTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUIyJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJTIwKCVEMCVCRCVEMCVCMCUyMCVEMCVCQyVEMCVCRSVEMCVCQyVEMCVCNSVEMCVCRCVEMSU4MiUyMCVEMCVCRCVEMCVCMCVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4RiUyMCVEMSU4MSVEMSU4MiVEMCVCMCVEMSU4MiVEMSU4QyVEMCVCOCUyMGxhdGVzdCUyMCVEMCVCMiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMSU4RiUyMDEuMS4wKS4=

cd /opt

d2dldCUyMGh0dHBzJTNBJTJGJTJGd3d3LmNsYW1hdi5uZXQlMkZkb3dubG9hZHMlMkZwcm9kdWN0aW9uJTJGY2xhbWF2LTEuMS4wLnRhci5neg==
tar -zxvf clamav-1.1.0.tar.gz
cd clamav-1.1.0
Оф. страница https://www.clamav.net/downloads не доступна из РФ, поэтому скачиваем исходник через VPN.

Создаем «build» подкаталог и переходим в него.

bWtkaXIlMjBidWlsZCUyMCUyNiUyNiUyMGNkJTIwYnVpbGQ=
Это позволит легко удалить файлы сборки, если что-то пойдет не так и потребуется перенастроить и повторить попытку.

JUQwJTlBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQwJUI4Lg==

cmake .. \
    -D CMAKE_BUILD_TYPE=RelWithDebInfo \
    -D CMAKE_INSTALL_PREFIX=/usr \
    -D CMAKE_INSTALL_LIBDIR=/usr/lib \
JTIwJTIwJTIwJTIwLUQlMjBBUFBfQ09ORklHX0RJUkVDVE9SWSUzRCUyRmV0YyUyRmNsYW1hdiUyMCU1Qw==
    -D DATABASE_DIRECTORY=/var/lib/clamav \
JTIwJTIwJTIwJTIwLUQlMjBFTkFCTEVfTUlMVEVSJTNET04lMjAlNUM=
JTIwJTIwJTIwJTIwLUQlMjBFTkFCTEVfSlNPTl9TSEFSRUQlM0RPRkY=
Разработчики рекомендуют установку со статической библиотекой json-c  (ENABLE_JSON_SHARED=OFF)

Собираем пакет, тестируем и устанавливаем

Y21ha2UlMjAtLWJ1aWxkJTIwLg==
ctest
Y21ha2UlMjAtLWJ1aWxkJTIwLiUyMC0tdGFyZ2V0JTIwaW5zdGFsbA==

Создаем сервисный аккаунт от которого будут работать службы (freshclam, clamd).

groupadd clamav
dXNlcmFkZCUyMC1nJTIwY2xhbWF2JTIwLXMlMjAlMkZiaW4lMkZmYWxzZSUyMC1jJTIwJTIyQ2xhbSUyMEFudGl2aXJ1cyUyMiUyMGNsYW1hdg==

Создаем необходимые каталоги и настраиваем права владельца.

bWtkaXIlMjAlMkZ2YXIlMkZsb2clMkZjbGFtYXYlMkYlMjAlMkZ2YXIlMkZsaWIlMkZjbGFtYXYlMjAlMkZ2YXIlMkZydW4lMkZjbGFtYXYlMkY=
chown clamav:clamav /var/log/clamav/ /var/lib/clamav /var/run/clamav/
Y2htb2QlMjA3NTUlMjAlMkZ2YXIlMkZsaWIlMkZjbGFtYXY=

Создаем сервис запуска для — freshclam

Y2F0JTIwJTNDJTNDJTIwRU9GJTIwJTNFJTIwJTJGZXRjJTJGc3lzdGVtZCUyRnN5c3RlbSUyRmNsYW1hdi1mcmVzaGNsYW0uc2VydmljZQ==
[Unit]
Description=ClamAV virus database updater
Documentation=man:freshclam(1) man:freshclam.conf(5) https://www.clamav.net/documents
# If user wants it run from cron, dont start the daemon.
ConditionPathExists=!/etc/cron.d/clamav-freshclam
Wants=network-online.target
QWZ0ZXIlM0RuZXR3b3JrLW9ubGluZS50YXJnZXQ=

JTVCU2VydmljZSU1RA==
User=clamav
R3JvdXAlM0RjbGFtYXY=
RXhlY1N0YXJ0JTNEJTJGdXNyJTJGYmluJTJGZnJlc2hjbGFtJTIwLWQlMjAtLWZvcmVncm91bmQlM0R0cnVl
U3RhbmRhcmRPdXRwdXQlM0RzeXNsb2c=

[Install]
V2FudGVkQnklM0RtdWx0aS11c2VyLnRhcmdldA==
EOF

Создаем сервис запуска для — ClamAV

cat << EOF > /etc/systemd/system/clamav-daemon.service
[Unit]
RGVzY3JpcHRpb24lM0RDbGFtJTIwQW50aVZpcnVzJTIwdXNlcnNwYWNlJTIwZGFlbW9u
Documentation=man:clamd(8) man:clamd.conf(5) https://www.clamav.net/documents/
JTIzJTIwQ2hlY2slMjBmb3IlMjBkYXRhYmFzZSUyMGV4aXN0ZW5jZQ==
ConditionPathExistsGlob=/var/lib/clamav/main.{c[vl]d,inc}
ConditionPathExistsGlob=/var/lib/clamav/daily.{c[vl]d,inc}

JTVCU2VydmljZSU1RA==
ExecStartPre = /usr/bin/mkdir -/var/run/clamav
RXhlY1N0YXJ0UHJlJUMyJUEwJTNEJUMyJUEwJTJGdXNyJTJGYmluJTJGY2hvd24lQzIlQTAtUiVDMiVBMGNsYW0uY2xhbSVDMiVBMCUyRnZhciUyRnJ1biUyRmNsYW1hdg==
ExecStart=/usr/sbin/clamd --foreground=true
# Reload the database
ExecReload=/bin/kill -USR2 $MAINPID
U3RhbmRhcmRPdXRwdXQlM0RzeXNsb2c=
TimeoutStartSec=420

JTVCSW5zdGFsbCU1RA==
V2FudGVkQnklM0RtdWx0aS11c2VyLnRhcmdldA==
EOF
cat << EOF > /etc/systemd/system/clamav-milter.service
[Unit]
RGVzY3JpcHRpb24lM0QnQ2xhbUFWJTIwTWlsdGVyJw==
After=clamav-daemon.service

[Service]
VHlwZSUzRGZvcmtpbmc=
ExecStart=/usr/sbin/clamav-milter --config-file /etc/clamav/clamav-milter.conf

JTVCSW5zdGFsbCU1RA==
V2FudGVkQnklM0RtdWx0aS11c2VyLnRhcmdldA==
EOF

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI0JUQwJUI1JUQwJUJDJUQwJUJFJUQwJUJEJTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgzJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTJDJUMyJUEwJUQwJUIyJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQxJTgxJUQxJTg2JUQwJUI1JUQwJUJEJUQwJUIwJUQxJTgwJUQwJUI4JUQwJUI4JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwLg==

c3lzdGVtY3RsJTIwZGFlbW9uLXJlbG9hZA==

c3lzdGVtY3RsJTIwZW5hYmxlJTIwY2xhbWF2LWZyZXNoY2xhbS5zZXJ2aWNl
systemctl enable clamav-daemon.service
c3lzdGVtY3RsJUMyJUEwZW5hYmxlJUMyJUEwY2xhbWF2LW1pbHRlci5zZXJ2aWNl

Конфигурация ClamAV

Конфигурация clamav (основные параметры, оригинальный файл конфигурации /etc/clamav/clamd.conf.sample).

cat << EOF > /etc/clamav/clamd.conf
LocalSocket /var/run/clamav/clamd.socket
Rml4U3RhbGVTb2NrZXQlMjB0cnVl
TG9jYWxTb2NrZXRHcm91cCUyMGNsYW1hdg==
LocalSocketMode 666
User clamav
VENQU29ja2V0JTIwMzMxMA==
ScanMail true
U2NhbkFyY2hpdmUlMjB0cnVl
QXJjaGl2ZUJsb2NrRW5jcnlwdGVkJTIwZmFsc2U=
MaxDirectoryRecursion 15
FollowDirectorySymlinks false
FollowFileSymlinks false
UmVhZFRpbWVvdXQlMjAxODA=
TWF4VGhyZWFkcyUyMDEy
TWF4Q29ubmVjdGlvblF1ZXVlTGVuZ3RoJTIwMTU=
TG9nU3lzbG9nJTIwZmFsc2U=
TG9nUm90YXRlJTIwdHJ1ZQ==
TG9nRmFjaWxpdHklMjBMT0dfTE9DQUw2
TG9nQ2xlYW4lMjBmYWxzZQ==
LogVerbose false
UHJlbHVkZUVuYWJsZSUyMG5v
PreludeAnalyzerName ClamAV
RGF0YWJhc2VEaXJlY3RvcnklMjAlMkZ2YXIlMkZsaWIlMkZjbGFtYXY=
T2ZmaWNpYWxEYXRhYmFzZU9ubHklMjBmYWxzZQ==
U2VsZkNoZWNrJTIwMzYwMA==
Foreground false
Debug false
ScanPE true
TWF4RW1iZWRkZWRQRSUyMDEwTQ==
ScanOLE2 true
U2NhblBERiUyMHRydWU=
U2NhbkhUTUwlMjB0cnVl
MaxHTMLNormalize 10M
TWF4SFRNTE5vVGFncyUyMDJN
TWF4U2NyaXB0Tm9ybWFsaXplJTIwNU0=
TWF4WmlwVHlwZVJjZyUyMDFN
ScanSWF true
ExitOnOOM false
LeaveTemporaryFiles false
QWxnb3JpdGhtaWNEZXRlY3Rpb24lMjB0cnVl
ScanELF true
IdleTimeout 30
Q3Jvc3NGaWxlc3lzdGVtcyUyMHRydWU=
UGhpc2hpbmdTaWduYXR1cmVzJTIwdHJ1ZQ==
UGhpc2hpbmdTY2FuVVJMcyUyMHRydWU=
UGhpc2hpbmdBbHdheXNCbG9ja1NTTE1pc21hdGNoJTIwZmFsc2U=
UGhpc2hpbmdBbHdheXNCbG9ja0Nsb2FrJTIwZmFsc2U=
PartitionIntersection false
RGV0ZWN0UFVBJTIwZmFsc2U=
ScanPartialMessages false
HeuristicScanPrecedence false
U3RydWN0dXJlZERhdGFEZXRlY3Rpb24lMjBmYWxzZQ==
CommandReadTimeout 30
SendBufTimeout 200
TWF4UXVldWUlMjAxMDA=
ExtendedDetectionInfo true
OLE2BlockMacros false
AllowAllMatchScan true
ForceToDisk false
RGlzYWJsZUNlcnRDaGVjayUyMGZhbHNl
DisableCache false
TWF4U2NhblRpbWUlMjAxMjAwMDA=
MaxScanSize 100M
TWF4RmlsZVNpemUlMjAyNU0=
MaxRecursion 16
MaxFiles 10000
TWF4UGFydGl0aW9ucyUyMDUw
TWF4SWNvbnNQRSUyMDEwMA==
UENSRU1hdGNoTGltaXQlMjAxMDAwMA==
UENSRVJlY01hdGNoTGltaXQlMjA1MDAw
PCREMaxFileSize 25M
U2NhblhNTERPQ1MlMjB0cnVl
ScanHWP3 true
TWF4UmVjSFdQMyUyMDE2
StreamMaxLength 25M
LogFile /var/log/clamav/clamav.log
TG9nVGltZSUyMHRydWU=
TG9nRmlsZVVubG9jayUyMGZhbHNl
LogFileMaxSize 0
Qnl0ZWNvZGUlMjB0cnVl
BytecodeSecurity TrustSigned
Qnl0ZWNvZGVUaW1lb3V0JTIwNjAwMDA=
OnAccessMaxFileSize 5M
EOF

Конфигурация freshclam (основные параметры, оригинальный файл конфигурации /etc/clamav/freshclam.conf.sample).

cat << EOF > /etc/clamav/freshclam.conf
DatabaseOwner clamav
UpdateLogFile /var/log/clamav/freshclam.log
TG9nVmVyYm9zZSUyMGZhbHNl
TG9nU3lzbG9nJTIwZmFsc2U=
LogFacility LOG_LOCAL6
LogFileMaxSize 0
TG9nUm90YXRlJTIwdHJ1ZQ==
LogTime true
Rm9yZWdyb3VuZCUyMGZhbHNl
RGVidWclMjBmYWxzZQ==
MaxAttempts 5
RGF0YWJhc2VEaXJlY3RvcnklMjAlMkZ2YXIlMkZsaWIlMkZjbGFtYXY=
RE5TRGF0YWJhc2VJbmZvJTIwY3VycmVudC5jdmQuY2xhbWF2Lm5ldA==
Q29ubmVjdFRpbWVvdXQlMjAzMA==
ReceiveTimeout 0
TestDatabases yes
ScriptedUpdates yes
Q29tcHJlc3NMb2NhbERhdGFiYXNlJTIwbm8=
Qnl0ZWNvZGUlMjB0cnVl
Tm90aWZ5Q2xhbWQlMjAlMkZldGMlMkZjbGFtYXYlMkZjbGFtZC5jb25m
Q2hlY2tzJTIwMjQ=
DatabaseMirror db.local.clamav.net
RGF0YWJhc2VNaXJyb3IlMjBkYXRhYmFzZS5jbGFtYXYubmV0
RU9G
Y2F0JTIwJTNDJTNDJTIwRU9GJTIwJTNFJTIwJTJGZXRjJTJGY2xhbWF2JTJGY2xhbWF2LW1pbHRlci5jb25m
TWlsdGVyU29ja2V0JTIwJTJGdmFyJTJGcnVuJTJGY2xhbWF2JTJGY2xhbWF2LW1pbHRlci5zb2NrZXQ=
TWlsdGVyU29ja2V0TW9kZSUyMDY2MA==
FixStaleSocket yes
User clamav
TWlsdGVyU29ja2V0R3JvdXAlMjBjbGFtYXY=
UGlkRmlsZSUyMCUyRnJ1biUyRmNsYW1hdiUyRmNsYW1hdi1taWx0ZXIucGlk
VGVtcG9yYXJ5RGlyZWN0b3J5JTIwJTJGdG1w
Q2xhbWRTb2NrZXQlMjB1bml4JTNBJTJGcnVuJTJGY2xhbWF2JTJGY2xhbWQuY3Rs
LogFile /var/log/clamav/clamav-milter.log
LogRotate yes
TG9nSW5mZWN0ZWQlMjBCYXNpYw==
RU9G

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUJFJUQwJUI1JTIwJUQwJUJFJUQwJUIxJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUIwJUQwJUJEJUQxJTgyJUQwJUI4JUQxJTgwJUQwJUI4JUQxJTgwJUQxJTgzJUQxJTgxJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQwJUIxJUQwJUIwJUQwJUI3JTIwJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUIyJTIwJUQxJTgwJUQxJTgzJUQxJTg3JUQwJUJEJUQxJTgzJUQxJThFLg==

freshclam --debug
Так как с территории РФ доступа к серверам ClamAV не доступа, то базы нужно качать через VPN и в ручном режиме их размещать в каталоге — /var/lib/clamav

Запускаем службы

systemctl start clamav-freshclam.service
c3lzdGVtY3RsJUMyJUEwc3RhcnQlQzIlQTBjbGFtYXYtZGFlbW9uLnNlcnZpY2U=
systemctl start clamav-milter.service

Удаление ClamAV

CMake формирует install_manifest.txt файл при установке и с его помощью удалим все установленные файлы.

Переходим в каталог из которого выполняли компиляцию ClamAV ( в моем случае это — /opt/clamav-1.1.0/build) и выполняем команды.

bWtkaXIlMjBkZWxldGVkLWJ5LXVuaW5zdGFsbA==
c3VkbyUyMHhhcmdzJTIwLUklN0IlN0QlMjBtdiUyMC10JTIwZGVsZXRlZC1ieS11bmluc3RhbGwlMjAlMjIlN0IlN0QlMjIlMjAlM0MlMjBpbnN0YWxsX21hbmlmZXN0LnR4dA==
cm0lMjAtcmYlMjBkZWxldGVkLWJ5LXVuaW5zdGFsbA==

JUQwJTlGJUQwJUJFJUQwJUI0JUQxJTg3JUQwJUI4JUQxJTg5JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTg1JUQwJUIyJUQwJUJFJUQxJTgxJUQxJTgyJUQxJThCJTJDJTIwJUQxJTgzJUQwJUI0JUQwJUIwJUQwJUJCJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQxJThCJTIwJUQwJUI4JTIwJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQxJTg4JUQwJUI4JUQwJUI1JUQxJTgxJUQxJThGJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI5Lg==

systemctl stop clamav-freshclam.service
c3lzdGVtY3RsJTIwc3RvcCUyMGNsYW1hdi1kYWVtb24uc2VydmljZQ==
systemctl stop clamav-milter.service

systemctl disable clamav-freshclam.service
c3lzdGVtY3RsJTIwZGlzYWJsZSUyMGNsYW1hdi1kYWVtb24uc2VydmljZQ==
systemctl disable clamav-milter.service

systemctl daemon-reload

rm /etc/systemd/system/clamav-*
cm0lMjAtcmYlMjAlMkZldGMlMkZjbGFtYXY=
 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.