PDF Печать E-mail

Антивирус CLAMAV. Проверка расшаренных каталогов.

 

 

Установка производилась на ubuntu server 10.10. Самба была установлена ранее http://linux-bash.ru/index.php?option=com_content&view=article&id=48:pdc&catid=4:seti&Itemid=4 .  Ставим:

 

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/clamav


touch /home/scripts/clamav/clamav.sh


chmod +x /home/scripts/clamav/clamav.sh


nano /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 .