среда, 27 января 2010 г.

Совместное использование Samba и Clamav

Продолжу тему использования модулей vfs в samba.

Модуль vscan позволяет интегрировать антивирусную проверку в samba-сервер.

Сначала установим clamav:
# emerge -av clamav

В дальнейшей настройке понадобится путь к сокету, который открывает clamd при запуске. Этот путь можно посмотреть в конфиге /etc/clamd.conf:
# grep LocalSocket /etc/clamd.conf
LocalSocket /var/run/clamav/clamd.sock

Запускаем демон clamav и добавляем его в автозагрузку:
# /etc/init.d/clamd start
# rc-update add clamd default

Далее нужно собрать samba с USE-флагом oav:
# echo "net-fs/samba oav">>/etc/portage/package.use/samba
# emerge -1av samba

Можно проверить, какие модули vscan установились:
# equery f samba|grep vscan
/usr/lib/samba/vfs/vscan-antivir.so
/usr/lib/samba/vfs/vscan-clamav.so
/usr/lib/samba/vfs/vscan-fprotd.so
/usr/lib/samba/vfs/vscan-fsav.so
/usr/lib/samba/vfs/vscan-icap.so
/usr/lib/samba/vfs/vscan-kavp.so
/usr/lib/samba/vfs/vscan-mcdaemon.so
/usr/lib/samba/vfs/vscan-mksd.so
/usr/lib/samba/vfs/vscan-oav.so
/usr/lib/samba/vfs/vscan-sophos.so
/usr/lib/samba/vfs/vscan-trend.so
....

По названиям можно догадаться, какой антивирусной программе соответствует каждый модуль. Теперь возьмем дефолтный конфиг (путь к нему, конечно же, зависит от версии samba) и внесем в него необходимые изменения:
# bzcat /usr/share/doc/samba-3.0.37/samba-vscan/vscan-clamav.conf.bz2 > /etc/samba/vscan-clamav.conf

/etc/samba/vscan-clamav.conf
[samba-vscan]
max file size = 0
verbose file logging = no
scan on open = yes
scan on close = yes
deny access on error = yes
deny access on minor error = yes
send warning message = yes
infected file action = delete
quarantine directory  = /tmp
quarantine prefix = vir-
max lru files entries = 100
lru file entry lifetime = 5
exclude file types =
exclude file regexp =
clamd socket name = /var/run/clamav/clamd.sock
libclamav max files in archive = 1000
libclamav max archived file size = 10485760
libclamav max recursion level = 5

В конфиге samba нужно отметить те общие ресурсы, которые необходимо проверять.
/etc/samba/smb.conf:
...
[files]
path = /home/samba/files
public = yes
writable = yes
browseable = yes
        vfs objects = vscan-clamav
vscan-clamav: config-file = /etc/samba/vscan-clamav.conf

Запускаем samba и тестируем (для теста можно взять eicar-файл)

Комментариев нет:

Отправить комментарий