From: umask aka Илья <umask at yandex dot ru>
Newsgroups: email
Date: Mon, 25 Sep 2005 18:21:07 +0000 (UTC)
Subject: Использование ClamAV для проверки ресурсов Samba 3.0.x через VFS в Linux
Использование ClamAV для проверки ресурсов Samba 3.0.x через VFS в Linux
(на примере Slackware Linux 10.1).
Предыстория.
Я люблю заниматься исследованием различных антивирусов, узнавать их
особенности, недостатки и достоинства.
Ранее в институте использовался DrWeb, он проверял загружаемые на сервер
через Sabma файлы, но однажды надоело искать ключи для бета-тестеров (да
и бетатестирование на данный момент уже подходило к концу) или пробные
ключи.
Решил поставить ClamAV, посмотреть как он работает.
Что имеем.
Имеем рабочий Slackware Linux 10.1 с работающей Samba 3.0.x.
Немного времени, интерес и желание настроить антивирусную проверку
загружаемых через Samba файлов.
Зачем это нужно.
Если у Вас нет денег на нормальный коммерческий антивирус, то
приходиться использовать хоть что-то для защиты, и ClamAV - на мой
взгляд лучший антивирус распространяемый по лицензии GNU/GPL. Т.е.
бесплатно.
Установка и настройка.
Для начала нам потребуется ClamAV (http://www.clamav.net), на момент
написания статьи последней была версия 0.87.
Идём на сайт ClamAV и скачиваем последнюю версию.
Устанавливаем её, как указано на http://www.clamav.net/doc/<номер вашей
версии>/html в разделе "Installation".
Кратко расскажу о процессе установки.
Разархивировав только что скачанный дистрибутив, не спешите набирать
./configure, для начала, создайте группу и пользователя clamav.
что бы увидеть все возможные опции, кстати, можно и проверку на наличие
юзера и группы clamav тут же отключить, но этого делать не
рекомендуеться!) затем наберите:
$ make
И, после успешной сборки:
# make install
Теперь нужно сконфигурировать clamd и freshclam, поскольку разработчики
принудительно заставляют пользователя это сделать: конфигурационные
файлы изначально нерабочие.
По умолчанию конфигурационные файлы расположены в /usr/local/etc, если
вы не указывали путь к ним в параметрах к configure.
Редактируем freshclam.conf:
- самое главное, что необходимо сделать - закомментировать строку
содержащую одно слово - "Example".
- укажите DatabaseDirectory как вам удобнее, например,
/var/lib/clamav, как указано у меня. Запомните этот путь: в файле
clamd.conf так же нужно будет его указать.
- укажите UpdateLogFile, например /var/log/freshclam.log. Перейдите
в каталог /var/log, создайте файл freshclam.log и измените владельца
на clamav.clamav (chown clamav.clamav freshclam.log).
- укажите в DatabaseOwner пользователя clamav.
- другие настройки можно не изменять, самое важное в этом
конфигурационном файле мы уже сделали.
Редактируем clamd.conf:
- самое главное, что необходимо сделать - закомментировать строку
содержащую одно слово - "Example".
- укажите LogFile /var/log/clamd.log. Перейдите в каталог /var/log,
создайте файл clamd.log и измените владельца на clamav.clamav (chown
clamav.clamav clamd.log).
- укажите TemporaryDirectory, например так, /tmp.
- укажите DatabaseDirectory так /var/lib/clamav.
- укажите LocalSocket /tmp/clamd (главное, что бы пользователь
clamav имел врава доступа к этому сокету на запись и чтение!).
- укажите User clamav.
- другие настройки можно не трогать. Но лучше почитайте комментарии
и измените под себя, например, какие объекты не следует проверять.
Обратите внимание на LogFileMaxSize.
Теперь запустим freshclam:
# freshclam
Вы должны увидеть сообщения об обновлении вирусных баз (Downloading*.cvd) -
Database Updated...
Если базы не обновились, то прочитайте внимательно, что вам выдал
freshclam, а так же загляните в лог-файл - /var/log/freshclam.log.
Если ничего не помогает, обратитесь за помощью к документации ClamAV.
Запускаем clamd:
# clamd
Проверяем:
# tail /var/log/clamd.log
если нет сообщений об ошибке, то значит демон запустился. Так же
проверьте его наличие в списке процессов (ps ax).
В логах демона должно быть сообщение вида "Unix socket file /tmp/clamd"
- это значит, что средство для взаимодействия с Sabma в норме.
Теперь нам необходимо скачать и скомпилировать OpenAntiVirus samba-vscan.
Идём на страницу http://www.openantivirus.org/projects.php#samba-vscan
и скачиваем samba-vscan.
На момент написания статьи последняя версия samba-vscan была 0.3.6b.
Так же нам понадобятся исходные коды для Samba. Чтобы не мучаться,
просто скачайте исходные коды установленной версии Samba с сайта
разработчиков Вашего дистрибутива, или найдите их на дисках
дистрибутива.
В Slackware 10.1 (подозреваю, что и в 10.2) исходные коды Samba можно
найти на 4-м CD.
В моём случае это были исходные коды samba-3.0.10.tar.bz2 -
3.0.10-версии Samba.
Проверим версию установленной в системе версии Samba так:
# smbd --version
Версия исходных кодов обязательно должна совпадать с установленной версией!
Распакуем исходники samba-3.0.10.tar.bz2 и samba-vscan-0.3.6b.tar.bz2,
например в /usr/src.
Переходим в /usr/src/samba-3.0.10/source (или в
/path-to-source-dir/samba-version/source), набираем
$ ./configure
$ make proto
------------------------------------
Замечание 1.
Для полной уверенности, можно посмотреть параметры configure для Samba в
вашем дистрибутиве:
# smbd --build-options
или
# smbd -b
Paths можно задать через соответствующие параметры для configure.
Скорее всего у вас не будет необходимости это делать.
------------------------------------
Теперь скопируем каталог с исходниками samba-vscan в
/usr/src/samba-3.0.10/examples/VFS (или в
/path-to-source-dir/samba-version/examples/VFS).
Таким образом, в каталоге /usr/src/samba-3.0.10/examples/VFS будет
подкаталог samba-vscan-0.3.6b.
Переходим в каталог
/usr/src/samba-3.0.10/examples/VFS/samba-vscan-0.3.6b и набираем
$ ./configure
$ make
Наш модуль Samba VFS для ClamAV готов.
Теперь необходимо скопировать
/usr/src/samba-3.0.10/examples/VFS/samba-vscan-0.3.6b/vscan-clamav.so в
каталог, где расположены модули VFS для вашей версии Samba.
В /etc/samba/smb.conf нужно изменить некоторые опции для каталога,
который хотим проверять, например так:
[pub]
comment = Protected by ClamAV
path = /export/pub
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
writeable = yes
browseable = yes
read-only = no
public = yes
guest ok = yes
В /etc/samba/vscan-clamav.conf можно оставить почти всё как есть, но я
рекомендовал бы изменить следующие параметры:
max file size = <по вкусу>
deny access on error = no
deny access on minor error = no
infected file action = delete
(действие quarantine к сожалению, мне не удалось добиться)
Обязательно необходимо изменить параметр:
clamd socket name = /tmp/clamd
(!!!)
Теперь необходимо перезапустить Samba:
# /etc/rc.d/rc.samba restart
или
# killall -HUP smbd
Проверка работоспособности.
Проверим работоспособность нашей антивирусной системы.
Скачиваем с http://www.eicar.com/anti_virus_test_file.htm файл eicar.com
и пробуем записать его в каталог //server-name/pub.
Если вы производите это действие из Windows, то вы получите сообщение
через систему Windows Messenger о том, что файл eicar.com инфицирован.
Скорость записичтения виз защищённой директории Samba снизилась в 5-10
раз, но это терпимо, поскольку с pub'ом не ведётся активная работа.
Другой же стороной столь низкой скорости является мощность файлового
сервера - а это AMD K6-450 Mhz, 192 MB RAM, 2 x HDD Maxtor. Самое
большое ограничение - мощность процессора и оперативная память.
Так же существенным недостатком ClamAV являеться нежелание разработчиков
добавлять алгоритмы поддержки RAR3 и 7Z по лицензионным соображениям.
Кстати, поддержку RAR2 можно включить в clamd.conf.
К существенным недостатком так же относиться неразвитость ClamAV в
проверке упакованных бинарников, по сравнению с коммерческими
антивирусами он просто ничто.
А для хоть какой-то защиты вполне сносно работает.
P.S. Старался написать как можно подробнее и проще, для тех, кто не
сильно знаком с темой.
Спасибо за внимание.
by umask a/k/a Илья(с), MATI-RSTU, app-math dept.
mail to: umask at yandex dot ru.
Sun Sep 25 18:06:32 MSD 2005.
360 Прочтений • [Использование ClamAV для проверки ресурсов Samba 3.0.x через VFS в Linux (samba virus clamav linux fs slackware)] [08.05.2012] [Комментариев: 0]