Использование антивируса 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...

Другие вопросы по тегам