Новости
Руководства и FAQ
База знаний
Ссылки
Как здесь писать
Автор: Алексей Санников. Впервые опубликовано в "заМетках "гадкого кота".
Решил от нечего делать набросать небольшое руководство по установке антивируса ClamAV на FreeNAS.
Хочу сразу предупредить всех, кто будет им пользоваться - я не несу никакой ответственности за все, что вы делаете. То, что получилось у меня, может не получиться у вас и наоборот. Для правильной работы потребуется версия full и не менее 50 Мб свободного места, лучше больше.
Первое - при перенесении зараженного файла в карантинную папку его имя меняется на случайное, восстановить имя трудно и возможно только по логам.
Второе - если с вашего рабочего Windows-компьютера вирус заражает файлы на общем ресурсе Samba, ClamAV это отслеживает и ничего-не-делает/переносит-в-карантин/удаляет (зависит от настроек) файлы. Будьте бдительны, не потеряйте таким образом свою информацию!
Если вы все же решились на установку антивируса, то необходимо знать следующее: ClamAV не имеет антивирусного монитора в его общепринятом смысле. У него есть отдельный сканер и демон, висящий в процессах и проверяющий файлы по запросу. Причем, запрос может быть от разных источников, здесь в качестве источников будут рассматриваться демон Samba [smbd] и файловая система. Я использовал и тот, и другой режим, но по отдельности, НЕ ВМЕСТЕ!
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/kernel
4. Временно, для проверки, вручную подгружаем его с помощью
freenas:# kldload /boot/kernel/dazuko.ko
5. Правим файлы конфигурации /usr/local/etc/clamd.conf и /usr/local/etc/freshclam.conf. В них, в общем-то, все подробно расписано, но позволю себе повториться, что в обоих файлах комментируем или удаляем строку Example. В первом обязательно:
Заодно проверьте, чтобы все одинаковые пути в этих файлах совпадали.
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' для обновления баз по расписанию.
1. Выполняем пункты 2, 5, 6, 7 предыдущего раздела. ClamAV НЕ обязательно должен быть скомпилирован с опцией –enable-clamuko.
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
vscan-clamav: config-file = /usr/local/etc/vscan-clamav.conf
и перезапускаем Samba. Что произойдет? А ничего! Потому что vscan-clamav требует для своей работы библиотеку /usr/lib/libmagic.so.3. Только после этого и еще одного перезапуска Samba все заработает как надо.
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.