Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Samba Clamav
А теперь более развернуто, как все это будет работать. Все пользовательские операции на запись и чтение файлов сервера, будут проходит через ClamFS т.к. сам ClamAV не умеет проверять файлы на лету. Работа ClamFS напоминает прослойку между пользователем и файловой системой файлового сервера т.е все файлы проходящие через нее, проходят обязательную проверку и если с ними все нормально, то они записывается в раздел /home, но если с ними не все в порядке, то они также будут сохранены на на сервере, но доступ к ним получить, будет нельзя.

Переходим к практической части:

Установка ClamAV и ClamFS

sudo su
aptitude install clamav clamfs fuse-utils




теперь нам необходимо создать директорию /clamfs

mkdir /clamfs



А в директории /home создать директорию /clamav

mkdir /home/clamav




предоставим для директории clamfs полные права для всех:

chmod -R 777 /clamfs




Теперь, нам понадобится пример конфигурационного файла ClamFS который находится в архиве, распакуем его:

gunzip /usr/share/doc/clamfs/clamfs-sample.xml.gz



Скопируем его в директорию с ClamAV заодно переименовав в clam.xml

cp /usr/share/doc/clamfs/clamfs-sample.xml /etc/clamav/clam.xml



Редактируем его, нас интересует пункт filesystem root, но то что в нем написано нас не устраивает, то что есть в файле мы закоментируем и добавим свою стоку:

nano /etc/clamav/clam.xml




<filesystem root="/home/clamav" mountpoint="/clamfs" public="yes" nonempty="yes" />



Где:
filesystem root="/home/clamav" -как видно из названия, корень файловой системы, физическое расположение папки по пути /home/clamav 
mountpoint="/clamfs" — точка монтирования, физическое расположение папки по пути /clamfs
Также в этом файле нам необходимо изменить настройки логирования работы работы ClamFS, по умолчанию, все записи попадают в syslog, это не правильно и для этих целей необходимо создавать свой журнал, для этого нам необходимо закоментировать строку 
<log method="syslog" />

Она должна выглядеть:

<!-- <log method="syslog" /> -->



и раскоментировать следующую за ней строку:

<log method="file" filename="/var/log/clamfs.log" verbose="no" />



Сохраняем изменения, выходим.
запускаем ClamAV

/etc/init.d/clamav-daemon start



Примонтируем содержимое директории /home/clamav в /clamfs

clamfs /etc/clamav/clam.xml




Главный фокус в том что директория останется примонированной только до перезагрузки, после рестарта системы, монтирование необходимо восстановить, делать это в ручную-совершенно не правильно, по этому, этот скучный процесс мы автоматизируем, для этого отредактируем файл rc.local:

nano /etc/rc.local



Добавим в него, перед строкой exit 0, следующее:

clamfs /etc/clamav/clam.xml



Сохраняем изменения и выходим. 
Далее нам необходимо установить Samba сервер:

Установка Samba сервера

Установим необходимые пакеты:

aptitude install samba samba-common libcups2



Редактируем файл smb.conf

nano /etc/samba/smb.conf



Находим и снимаем комментарий со строки:

security = user



Добавим в конфигурационный файл строку, с ее помощью немного повышается скорость работы по протоколу SMB:

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192



Сохраняем изменения выходим из smb.conf

Создадим общие папки для наших пользователей и предоставим для них соответствующие права:

mkdir -p /clamfs/public
chown -R root:users /clamfs/public
chmod -R ug+rwx,o+rx-w /clamfs/public



Снова беремся за редактирование smb.conf

nano /etc/samba/smb.conf



Добавим туда следующие строчки:

[Public]
  comment = All Users
  path = /clamfs/public
  valid users = @users
  force group = users
  create mask = 0660
  directory mask = 0771
  writable = yes




Далее находим секцию [homes]
И закомментируем все что в ней есть, обозначенное (; ) их заменяем на # 
И вместо, всего что там есть, вставляем следующее. 

[homes]
   comment = Home Directories
   browseable = no
   valid users = %S
   writable = yes
   create mask = 0700
   directory mask = 0700



Сохраняем все изменения и выходим.

Перезагружаем файловый сервер:

/etc/init.d/samba restart



В директории /home мы создали директорию /clamav/ в нее мы и будем добавлять домашние каталоги всех новых пользователей, а также сетевые папки, сделано это для того чтобы упорядочить проверяемые файлы.
Теперь нам необходимо добавить в систему нового пользователя с именем test:

useradd test -b /home/clamav/ -m -G users



Где:test-имя пользователя
/home/clamav-место где будет находиться домашняя директория пользователя.
ключ -m — указывает на то, что будет создана одноименная домашняя директория.
-G users — добавим пользователя в группу users.
Добавим этого пользователя в базу Samba, для того, чтобы он мог подключаться в сетевым папкам:

smbpasswd -a test



Что у нас получилось:
1) Сетевая, общая, папка-физически находится у нас по пути /home/clamav/public
2) Все запросы идут черед директорию /clamfs благодаря чему все файлы проверяются на наличие вредоносного ПО.
3) Домашние директории пользователей также проходят антивирусную проверку, но по расписанию и располагаются в /home/clamav/$USER_NAME


Теперь нам необходимо его протестировать, то что мы тут наворотили. Файл для тестирования работоспособности антивирусов можно скачать ОТСЮДА. Выключаем антивирус на локальном ПК т.к. загружаемый архив будет быстро заблокирован.

Загружаем архив на наш, свеженький, файловый сервер в папку Public и после этого попытаемся скопировать его обратно себе на ПК, ClamFS пресекает наши попытки это и есть демонстрация работоспособности антивирусной системы. Но можно предположить, что вирус попал на сервер раньше, чем его сигнатура была добавлена в антивирусную базу, для решения этой проблемы нам необходимо выполнять регулярную проверку всех файлов на файловом сервере. Как часто ее проводить-личное дело каждого и зависит от параноидальности того, кто все это настраивает. Самым приемлемым вариантом, по моему личному мнению, после завершения рабочего дня, тогда и нагрузка на сервере поменьше и скорость доступа к файлам не имеет значения, ведь все ушли домой. И вот тут тоже возможны варианты, можно запускать проверку и чтобы все файлы в которых обнаружено подозрительное ПО немедленно удалялись, а можно сделать так, что все подозрительные файлы складывались в карантин, системный администратор потом будет разбираться с каждым индивидуально. 
Рассмотрим оба варианта:

1. Принудительное удаление всех подозрительных файлов.
Работа по принципу: «Стреляй всех подряд, а господь разберется!» имеет право на жизнь, но лишь до поры до времени. Если в сетевой папке лежат файлы, потеря которых не критична, то можно смело его использовать и забыть о присмотре за данной сетевой шарой, а заняться более интересными вещами.
Создадим малюсенький скрипт, который можно запускать через крон:

nano /home/clamav/virusdelete.sh



И добавим в него следующее:

#!/bin/sh
/usr/bin/clamscan -r /home/clamav --remove=yes




2. Перенос подозрительных файлов в Карантин.
Этот вариант, можно использовать в том случае, если важно не потерять ценные данные, ведь всегда есть возможность что антивирус, по ошибке, может удалить что-то ценное, да и clamav не умеет лечить зараженные файлы-только удалять. Все подозрительные фалы будем складывать в личную папку админа, для того чтобы он разобраться с этими файлами отдельно, например проверив их другим, «коммерческим» антивирусом.
Создадим скрипт: 

sudo nano /home/virusmove.sh



Следующего содержания:

#!/bin/sh
/usr/bin/clamscan -r /home/clamav --move=/home/srvadmin/quarantine



Домашнюю директорию пользователя srvadmin мы не помещаем в директорию /home/clamav т.к. все её содержимое проверяется автоматически по расписанию, а по этой причине нет необходимости проверять карантинную директорию, мы ведь и так знаем, что в ней находятся подозрительные файлы. На этом, я пожалуй и закончу.

Добавить комментарий


Защитный код
Обновить