Хочу сразу предупредить всех, кто будет им пользоваться - я не несу никакой ответственности за все, что вы делаете. То, что получилось у меня, может не получиться у вас и наоборот. Для правильной работы потребуется версия full и не менее 50 Мб свободного места, лучше больше.
WARNING! Имеется информация, даже две, о неприятном поведении ClamAV.Если вы все же решились на установку антивируса, то необходимо знать следующее: ClamAV не имеет антивирусного монитора в его общепринятом смысле. У него есть отдельный сканер и демон, висящий в процессах и проверяющий файлы по запросу. Причем, запрос может быть от разных источников, здесь в качестве источников будут рассматриваться демон Samba [smbd] и файловая система.
Первое - при перенесении зараженного файла в карантинную папку его имя меняется на случайное, восстановить имя трудно и возможно только по логам.
Второе - если с вашего рабочего Windows-компьютера вирус заражает файлы на общем ресурсе Samba, ClamAV это отслеживает и ничего-не-делает/переносит-в-карантин/удаляет (зависит от настроек) файлы. Будьте бдительны, не потеряйте таким образом свою информацию!
Я использовал и тот, и другой режим, но по отдельности, НЕ ВМЕСТЕ!
1. DAZUKO. "A Stackable Filesystem to Allow Online File Access Control" используется не только для ClamAV, но и для NOD32, Avast, AVG и еще полутора десятков приложений. При компиляции из исходных кодов получится файл модуля dazuko.ko, готовую версию которого для FreeBSD-i386_7.2 можно взять здесь.
2. Находим/скачиваем/компилируем и устанавливаем ClamAV. Настоятельно рекомендуется компилировать антивирус из исходников или портов, потому что по умолчанию архиважный параметр --enable-clamuko выключен. После установки возможно понадобится перезагрузка, по крайней мере, у меня система упорно не резолвила DNS-адреса.
3. Копируем модуль dazuko в нужную папку
freenas:# cp /tmp/dazuko.ko /boot/kernel4. Временно, для проверки, вручную подгружаем его с помощью
freenas:# kldload /boot/kernel/dazuko.ko5. Правим файлы конфигурации /usr/local/etc/clamd.conf и /usr/local/etc/freshclam.conf. В них, в общем-то, все подробно расписано, но позволю себе повториться, что в обоих файлах комментируем или удаляем строку Example. В первом обязательно:
- включаем TCP-адрес (127.0.0.1) и порт;
- включаем модуль clamuko и настраиваем его;
- имя пользователя - root (для меня так проще);
- задаем директорию мониторинга (только не /, это важно).
6. Обновляем антивирусные базы (~24 Мб) командой
freenas:# /usr/local/bin/freshclamЕсли freshclam будет ругаться (обычно на какие-то директории) - нужно просто удовлетворить его (создать какие-то директории, поменять права доступа и т.п.).
7. Запускаем демона ClamAV
freenas:# /usr/local/sbin/clamdПри каких-то претензиях - аналогично п. 7 удовлетворяем все его требования.
8. Вот, в общем-то, и все. В зависимости от настроек антивирус будет отслеживать зараженные файлы и блокировать к ним доступ. К сожалению, метод ON_CLOSE не работает, поэтому записать заразу извне удастся (например через SFTP), а открыть или запустить - нет.
9. Если все работает как надо, настраиваем автозапуск:
- a. В WebGUI -> 'System' -> 'Advanced' -> 'Command Scripts' задаем команду /sbin/kldload /boot/kernel/dazuko.ko и тип запуска 'PreInit'. Это загрузит модуль dazuko.ko при старте;
- b. В WebGUI -> 'System' -> 'Advanced' -> 'rc.conf' задаем параметр variable='clamav_clamd_enable' и value='YES'. Это позволит запускать демона при старте;
- c. В WebGUI -> 'System' -> 'Advanced' -> 'сron' добавляем задание /usr/local/bin/freshclam -quiet от имени 'root' для обновления баз по расписанию.
Мониторинг общих ресурсов Samba.
2. С сайта OpenAntivirus скачиваем исходники samba-vscan (on-access virus scanning with Samba) последней версии, а также исходники Samba именно той версии, которая у вас используется. Далее разворачиваем, копируем, собираем и компилируем модуль vscan-clamav.so. Именно он и осуществляет "перехват" гоняемых по Samba файлов и "дергает" демона clamd для их проверки. Не забудьте также файл настройки vscan-clamav.conf.
3. Копируем во FreeNAS /usr/local/lib/samba/vfs/vscan-clamav.so и /usr/local/etc/vscan-clamav.conf.
4. Правим файл настроек /usr/local/etc/vscan-clamav.conf.
5. Для общего ресурса, который хотим проверять: WebGUI -> 'Services' -> 'CIFS/SMB|Shares' -> 'НУЖНЫЙ_РЕСУРС' -> 'Auxiliary parameters' пишем следующие строки:
vfs object = vscan-clamavи перезапускаем Samba. Что произойдет? А ничего! Потому что vscan-clamav требует для своей работы библиотеку /usr/lib/libmagic.so.3. Только после этого и еще одного перезапуска Samba все заработает как надо.
vscan-clamav: config-file = /usr/local/etc/vscan-clamav.conf
6. Выполняем подпункты b) и с) пункта 9 предыдущего раздела.
Вот вроде бы и все.
PS. Для тех, кому лень что-то компилировать (а также для себя), я приготовил пакет clamav-0.95.2-fn0.7.tgz со всеми нужными файлами, протестированый на FreeNAS_i386_0.7RC2-build-4910_full, версия Samba 3.0.37. Устанавливать как обычный пакет, через WebGUI или pkg_add <имя_файла>.
Для удобства редактирования можете воспользоваться обрезанной версией Midnight Commander. Но учтите, что некоторые функции в ней недоступны (просмотр man-руководств с форматированием или прямая работа с архивами, например), это просто файловый менеджер с просмотрщиком и редактором. Также протестирован на FreeNAS_i386_0.7RC2-build-4910_full.
PS2. Если возникают вопросы - не ленитесь, спросите Google. Информации по настройке море, и она доступна любому. Если же совесть уснула крепко и надолго, вот ссылки один, два, три, четыре и пять.
Отдельно спасибо сайту Lissyara.
У меня возник вопрос по 2 пункту про samba-vscan. Подскажите пожалуйста как это сделать
ОтветитьУдалитьХм... Вроде уж старался расписать по шагам, так чтоб было максимально понятно.
ОтветитьУдалитьКакой конкретно вопрос вас интересует, что не получается? Если не получается собрать samba-vscan, то там есть особенность, описанная в инструкции - нужно исходные тексты Samba положить в определенную папку. При компиляции модуля они потребуются (куда конкретно - уже не помню, читайте readme).
Вопрос один как компилировать приложение?
ОтветитьУдалитьНепосредственно на FreeNAS - никак. Эта система, как вы понимаете, "заточена" под определенную цель - быть простны и удобным в настройке сетевым хранилищем. Поэтому все средства разработки, типа компиляторов, оттуда вычищены.
ОтветитьУдалитьДля компиляции лично я использовал виртуальную машину с установленной туда полной FreeBSD 7.0. При необходимости туда же можно доустановить все, что необходимо.
Сама компиляция - как обычно, "configure&&make".
Ну все яино спасибо)
ОтветитьУдалить