Антивирус CLAMAV
Установка производилась на ubuntu server 10.10. Самба была установлена ранее
Первичный контроллер домена (PDC): Samba + OpenLDAP + Quota . Ставим:
sudo su apt-get install clamav clamav-daemon clamfs # пакет clamav содержит утилиту командной строки, clamav-daemon - демон для работы в фоне, ClamFS – основанная на FUSE файловая система, в которой при доступе к данным, выполняется антивирусная проверка средствами ClamAV.
Обновляем базу:
freshclam # freshclam - инструмент для обновления информации о вирусах через Интернет.
ClamAV ничего проверять в режиме реального времени не умеет, поэтому и будем использовать виртуальную файловую систему clamfs. Алгоритм такой:
- Создать папку для clamfs
- Смонтировать в нее все расшаренные каталоги
- Изменить в конфиге самбы пути к необходимым для расшаривания папкам, так как они у нас будут смонтированы в папку clamfs.
mkdir /clamfs Я буду монтировать дирректорию /home , поэтому создаю одноименную папку:
mkdir /clamfs/home Установим права на папку /clamfs и вложенные подпапки:
sudo chmod -R 777 /clamfs (В ней ничего хранить не будем, там будут только смонтированные папки, на которые доступ уже ограничен, поэтому ставим на нее полный доступ)
Заготовка конфигурационного файла находится в /usr/share/doc/clamfs/clamfs-sample.xml.gz, перейдем в данный каталог, распакуем файл и скопируем его в /etc/clamav под именем clamfs.xml:
cd /usr/share/doc/clamfs/
sudo gunzip clamfs-sample.xml.gz
sudo cp /usr/share/doc/clamfs/clamfs-sample.xml /etc/clamav/clamfs.xml Откроем clamfs.xml:
nano /etc/clamav/clamfs.xml найдем опцию File system settings, раскомментим и изменим ее следующим образом:
<filesystem root="/home" mountpoint="/clamfs/home" public="yes" nonempty="yes" /> Если есть аналогичная запись в конфиге, но имеющая путь к папке tmp, ее нужно закомментить (комментарии в .xml файле выглядят так: <!-- коммент --> ).
Теперь изменим параметр отвечающий за запись логов, по умолчанию ClamFS пишет логи в syslog, что неудобно, лучше если все события будут записываться в отдельный лог. Найдем и закомментируем строку (должно выглядеть следующим образом):
<!-- <log method="syslog" /> --> И раскомментируем строку ниже:
<log method="file" filename="/var/log/clamav/clamfs.log" verbose="no" /> запускаем clamd и clamfs:
/etc/init.d/clamav-daemon start
clamfs /etc/clamav/clamfs.xml Проверяем, каталог /home должен смонтироваться в /clamfs/home .
Добавим в автозапуск:
nano /etc/rc.local Перед Edit0 добавляем:
clamfs /etc/clamav/clamfs.xml Теперь изменим пути в самбе:
nano /etc/samba/smb.conf Для примера, у меня в самбе был прописан путь к папке /home/share , я изменил его на /clamfs/home/share . И аналогично с другими расшаренными папками.
Перезапускаем Samba:
/etc/init.d/smbd restart Скачиваем с сайта http://www.eicar.org/anti_virus_test_file.htm тестовые файлы (не забыв выключить антивирус), помещаем их в общую папку на сервере и пробуем получить к ним доступ. ClamAV сразу пресекает наши попытки открыть или скопировать куда либо. Но сам зараженный файл остается на сервере. Чтобы это исправить создаем каталог, который будет карантином:
mkdir /home/quarantine Даем полные права на доступ к ней (доступ будет ограничиваться самбой):
chmod 777 /home/quarantine Теперь создадим в /etc/samba/smb.conf следующую секцию:
[quarantine]
path = clamfs/home/quarantine
read only = No
valid user = @o_it
guest ok = no Т.е папка quarantine доступна только пользователям, входящим в группу o_it, которая была создана при настройке самбы в роли контроллера домена. Либо просто укажите нужную группу, либо поставьте вместо группы имя пользователя, без собаки.
Опять перезапускаем самбу:
sudo /etc/init.d/smbd restart Теперь создадим скрипт, который будет проверять в установленное время расшаренные каталоги на вирусы и перемещать вирусы в карантин.
Я создаю его в папке, где лежат все мои скрипты, измените путь на свой.
mkdir /home/scripts/clamavtouch /home/scripts/clamav/clamav.shchmod +x /home/scripts/clamav/clamav.shnano /home/scripts/clamav/clamav.sh Пишем туда проверку всех расшаренных папок за исключением карантина:
#!/bin/bash
/usr/bin/clamscan -r /home/share --move=/home/quarantine
/usr/bin/clamscan -r /home/o_it --move=/home/quarantine
/usr/bin/clamscan -r /home/o_prodag --move=/home/quarantine
/usr/bin/clamscan -r /home/o_logist --move=/home/quarantine
/usr/bin/clamscan -r /home/o_buh --move=/home/quarantine
/usr/bin/clamscan -r /home/o_administraciya --move=/home/quarantine
/usr/bin/clamscan -r /home/dst --move=/home/quarantine Сохраняем и добавляем в cron - менеджер запуска по рассписанию:
crontab -u root -e И вносим в конец строчку:
0 1 * * * /home/scripts/clamav/clamav.sh Скрипт будет запускаться каждый день в час ночи, будет производиться проверка указанных в скрипте папок и найденные зараженные файлы будут копироваться в папку /home/quarantine .
Dec. 8, 2010