Использование антивируса clamav с clamfs для сканирования файловой системы
Моя система - CentOS5-5.
Я хочу отслеживать подкаталоги в указанном корне с помощью clamfs и удалять любой подозрительный файл, как только он обнаружен.
До сих пор я установил clamav, а затем clamfs. Моя проблема в том, что clamfs не реагирует, когда я помещаю файл с сигнатурой вируса в мой корневой каталог, я подозреваю, что нет никакой связи между clamfs и clamd.
Ниже я приведу некоторые подробности о том, как я настроил clamav и clamfs:
/etc/clamd.conf:
LogFile /var/log/clamav/clamd.log
...
LogVerbose yes
...
LocalSocket /var/run/clamav/clamd.sock
...
User clamav
...
AllowSupplementaryGroups yes
...
Я запускаю clamd с помощью следующей команды и с правами root (благодаря вышеуказанному файлу процесс clamd затем принадлежит пользователю clamav):
service clamd start
В /etc/clamfs/clamfs.xml я установил:
- тот же сокет, что и в файле clamd.conf
- корень каталогов для сканирования в корневом параметре
- каталог, который будет копией корневого в параметре mountpoint
- файл журнала для clamfs
сокет clamd ="/var/run/clamav/clamd.sock
...
файловая система root="MyPathToScan" точка монтирования = "CopyOfMyPathToScan" public = "yes" nonempty = "yes"
...
log method = "file" filename = "PathToLogFile" verbose = "yes"
Корень, который я хочу сканировать с помощью clamfs и всех его подкаталогов и файлов, принадлежит user01 (который принадлежит группе user01). Поэтому я также установил пользователя clamav в группе "user01".
Я запускаю clamfs следующим образом:
clamfs /etc/clamfs/clamfs.xml
Я добавляю, что моя вирусная база обновлена.
Проблемы, которые я отмечаю, следующие:
- В файле журнала clamfs ничего не появляется, когда я помещаю файл с сигнатурой вируса в мой корневой каталог, но когда я запускаю "clamscan", он обнаруживается.
- Если я запускаю "clamdscan" в этом корневом каталоге, я получаю следующую ошибку (я добавляю, что SELinux "Отключен", так что это не проблема):
Ошибка lstat(): в доступе отказано. ОШИБКА
- Если я запускаю clamd с пользователем root вместо clamav, у меня не отображается указанное выше "Отказано в доступе", но clamfs по-прежнему не работает.
Спасибо за вашу помощь!
Сильвен
1 ответ
Я заметил, что проблема может исходить от apparmor. Я пытался настроить clamfs для моего домашнего каталога, и он продолжал жаловаться. Затем я создал файл конфигурации apparmor, чтобы он работал:)
$ cat /etc/apparmor.d/usr.bin.clamfs
Для простоты я скопировал доспехи клэма и изменил их в доспехи - догадки:
#include <tunables/global>
/usr/bin/clamfs {
#include <abstractions/base>
#include <abstractions/nameservice>
# LP: #433764:
capability dac_override,
@{PROC}/filesystems r,
owner @{PROC}/[0-9]*/status r,
/etc/clamfs/* r,
/etc/fuse.conf r,
/usr/bin/clamfs mr,
/tmp/ rw,
/tmp/** krw,
/var/run/clamav/clamd.ctl rw,
# Allow home dir to be scanned
/media/disk/* rw,
/media/disk/** rw,
# Site-specific additions and overrides. See local/README for details.
#include <local/usr.bin.clamfs>
}
Я также скопировал /etc/init.d/skeleton в /etc/init.d/clamfs-home и отредактировал по своему вкусу, сделал его исполняемым и назвал update-rc.d clamfs-home по умолчанию. Затем выполняется с помощью /etc/init.d/clamfs-home start и yay! Посмотрим, вернется ли он после перезагрузки. Что мне интересно, так это как запускать clamfs с пользователем без полномочий root...