Мне нужен общий совет по настройке ClamAV (v1.02+) в среде Docker.
У меня есть несколько контейнеров, работающих в Linux (в настоящее время Ubuntu 18.04 LTS), которые экспортируют свои постоянные каталоги в /var/lib/хранилище данных/tenant_files
подкаталоги. Некоторые приложения, работающие внутри контейнеров, позволяют загружать документы, которые я хочу сканировать ClamAV.
На данный момент я придумал следующий конфиг:
Локальный сокет /var/run/clamav/clamd.ctl
FixStaleSocket true
Кламав LocalSocketGroup
Локальный сокетмоде 666
# TemporaryDirectory не установлен по умолчанию /tmp здесь, чтобы сделать переопределение
# возможно значение по умолчанию с переменными окружения TMPDIR/TMP/TEMP
Пользователь clamav
ScanMail верно
ScanArchive правда
ArchiveBlockEncrypted ложь
MaxDirectoryRecursion 15
FollowDirectorySymlinks false
FollowFileSymlinks false
ReadTimeout 180
МаксТредс 12
MaxConnectionQueueLength 15
LogSyslog ложь
LogRotate true
LogFacility LOG_LOCAL6
Логклин ложно
LogVerbose false
PreludeEnable нет
PreludeAnalyzerName ClamAV
Каталог баз данных /var/lib/clamav
Официальная база данныхТолько ложь
СелфЧек 3600
Передний план ложный
Отладка ложная
ScanPE верно
MaxEmbeddedPE 10M
ScanOLE2 верно
ScanPDF правда
ScanHTML правда
MaxHTMLNormalize 10M
MaxHTMLNoTags 2M
MaxScriptNormalize 5M
MaxZipTypeRcg 1M
ScanSWF правда
ExitOnOOM ложь
LeaveTemporaryFiles false
Алгоритмическое обнаружение верно
ScanELF правда
IdleTimeout 30
Кроссфайловые системы true
Фишинговые подписи истинны
PhishingScanURLs верно
PhishingAlwaysBlockSSLMismatch false
PhishingAlwaysBlockCloak false
PartitionIntersection false
ОбнаружитьPUA ложно
Сканпартиалмессажес ложь
HeuristicScanPrecedence false
Обнаружение структурированных данных false
CommandReadTimeout 30
SendBufTimeout 200
Максимальная очередь 100
Экстендеддетектионинфо истина
OLE2BlockMacros ложь
Алловаллматчскан true
ForceToDisk ложь
Дисаблецертчек ложно
DisableCache ложь
Максимальное время сканирования 120000
MaxScanSize 100M
Максимальный размер файла 25M
Максрекурсия 16
Максимальное количество файлов 10000
Максимальное количество разделов 50
MaxIconsPE 100
PCREMatchLimit 10000
PCRERecMatchLimit 5000
PCREMaxFileSize 25M
ScanXMLDOCS верно
ScanHWP3 верно
МаксРекХВП3 16
StreamMaxLength 25M
Файл журнала /var/log/clamav/clamav.log
Логтайм правда
Логфилеанлокк ложно
LogFileMaxSize 0
Байт-код верный
BytecodeSecurity TrustSigned
БайткодТимеаут 60000
OnAccessMaxFileSize 5M
ExcludePath ^/proc
ExcludePath ^/sys
ExcludePath ^/dev
ExcludePath ^/snap
ExcludePath ^/var/lib/lxcfs/cgroup
ExcludePath ^/var/lib/datastore/quarantine
OnAccessIncludePath /var/lib/datastore/tenant_files
Кламав OnAccessExcludeUname
Предотвращение доступа да
OnAccessExcludeRootUID ложь
VirusEvent /etc/clamav/virus-event.bash
который представляет собой сборник некоторых статей, найденных в Интернете, и документации с сайта ClamAV. у меня тоже есть кламонак
сервис настроен так:
# /etc/systemd/system/clamonacc.service
[Ед. изм]
Description=ClamAV при доступе к сканеру
Требуется=clamav-daemon.service
After=clamav-daemon.service syslog.target network.target
[Оказание услуг]
Тип=простой
Пользователь=корень
ExecStartPre=/bin/bash -c "пока [! -S /var/run/clamav/clamd.ctl]; сделать сон 1; готово"
ExecStart=/usr/sbin/clamonacc -F --config-file=/etc/clamav/clamd.conf --log=/var/log/clamav/clamonacc.log
[Установить]
WantedBy=многопользовательская.цель
Теперь, если я запущу ClamAV от имени пользователя root, он будет работать, но я заметил некоторые непредсказуемые зацикливания при сканировании файлов, принадлежащих пользователю root (точно так же, как описано здесь). Работает как моллюск
user работает, но только для обычного пользователя без полномочий root, а некоторые контейнеры все еще запускают свои процессы внутри как пользователь root внутри, и это означает, что файлы принадлежат пользователю root на экспортированной конечной точке.
Я думал об использовании списков ACL, но, поскольку файлов может быть довольно много (миллионы), это может быть немного излишним. Что вы думаете? Должен ли я принудительно владеть файлами в GID моллюск
или что-то другое?
Не говоря уже о том, что мне пришлось перевести ClamAV в режим жалоб, потому что обычно он не блокирует зараженный файл, и я не хотел бы открывать такой файл как пользователь root.