Мы не будем говорить, насколько важно обеспечить защиту файловому серверу организации. Это очевидно. Несмотря на то, что Ubuntu вирусы не страшны, оставленный без защиты сервер очень быстро может стать очагом распространения вредоносных программ в локальной сети предприятия. В качестве решения начального уровня можно использовать бесплатный антивирус ClamAV.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
За основу решения мы взяли наш Samba-сервер, который был обновлен до Ubuntu 10.04. Нам необходимо настроить проверку "на лету" всех файлов в общих папках к которым обращаются пользователи. Собственно ClamAV ничего проверять в режиме реального времени не умеет, поэтому нужно воспользоваться сторонними модулями.
Наиболее современным способом является использование виртуальной файловой системы ClamFS, смонтировав в нее любой каталог, мы обеспечим ему антивирусную проверку при обращении к файлам.
Установим необходимые пакеты:
sudo apt-get install clamav clamfs
Создадим каталоги для монтирования виртуальной файловой системы. Будем придерживаться существующей системы каталогов, если пользовательские данные хранятся у нас в /data, то в виртуальной ФС будем использовать /clamfs/data:
sudo mkdir /clamfs
sudo mkdir /clamfs/data
Установим права на папку /clamfs и вложенные подпапки:
sudo chmod -R 777 /clamfs
Теперь займемся настройкой 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, найдем опцию File system settings и зададим ее следующим образом:
<filesystem root="/data" mountpoint="/clamfs/data" public="yes" nonempty="yes" />
Подробно разбирать формат строки мы не будем, все и так должно быть понятно. Теперь изменим параметр отвечающий за запись логов, по умолчанию ClamFS пишет логи в syslog, что неудобно, лучше если все события будут записываться в отдельный лог. Найдем и закомментируем строку (должно выглядеть следующим образом):
<!-- <log method="syslog" /> -->
Обращаем ваше внимание, что в xml комментарии заключаются в символы <!-- ... -->. И раскомментируем строку ниже:
<log method="file" filename="/var/log/clamav/clamfs.log" verbose="no" />
Сохраняем настройки. Последовательно запускаем clamd и clamfs:
sudo /etc/init.d/clamav-daemon start
sudo clamfs /etc/clamav/clamfs.xml
Проверяем, каталог /data должен смонтироваться в /clamfs/data.
Теперь о ложке дегтя. Как выяснилось, в Ubuntu 10.04 ClamFS при включенном Apparmor полностью блокирует все файлы на чтение. Выходов из этой ситуации несколько, так как файловый сервер обычно является сугубо внутрисетевым ресурсом, то мы пойдем по наиболее простому пути и просто удалим профиль clamd для Apparmor:
sudo rm /etc/apparmor.d/usr.sbin.clamd
Осталось обеспечить автоматический запуск и монтирование ClamFS при загрузке системы. Распространённые в интернете рекомендации по монтированию ClamFS через fstab не приводят к желаемому результату, т.к. fstab обрабатывается гораздо раньше, чем загружаются модули ядра отвечающие за функционирование ClamFS. Поэтому поместим команду запуска ClamFS в скрипт автозапуска /etc/rc.local. Добавим в него следующую строку:
clamfs /etc/clamav/clamfs.xml
Перезагружаемся:
sudo reboot
Убедившись, что все работает, перейдем к настройке Samba. Изменим пути к общим папкам так, чтобы они вели на ClamFS, например для папки ADM вместо:
path = /data/ADM
будет:
path = /clamfs/data/ADM
Изменив таким образом пути для всех общих ресурсов, которым требуется антивирусная защита, перезапускаем Samba:
sudo /etc/init.d/smbd restart
Скачиваем с сайта EICAR тестовые файлы (не забыв выключить антивирус), помещаем их в общую папку на сервере и пробуем получить к ним доступ. ClamAV сразу пресекает наши попытки как открыть (запустить):
так и скопировать зараженный файл:
Вредоносные программы блокируются, это хорошо, а вот то, что они остаются в общих папках не очень хорошо. Что делать? На помощь нам придет сканер clamscan, он может проверять нашу папку по расписанию и перемещать вредоносные объекты в папку карантина. Почему именно на карантин? Во первых ClamAV иногда ошибается, во вторых он не умеет лечить отдельные типы вирусов (только удалять), поэтому лучшим вариантом будет именно помещение подозрительных объектов на карантин с последующей проверкой коммерческим антивирусом.
Создадим карантинную папку и установим права на нее:
sudo mkdir /data/quarantine
sudo chmod 777 /data/quarantine
Данную папку следует опубликовать как общий ресурс, однако доступ к ней должен иметь только администратор отвечающий за антивирусную защиту. Заведем на сервере отдельного пользователя (допустим avadmin) и установим ему SMB пароль, пароль на доступ в систему ему устанавливать необязательно.
sudo useradd avadmin
sudo smbpasswd -a avadmin
Теперь создадим в /etc/samba/smb.confследующую секцию:
[Quarantine]
path = /data/quarantine
read only = No
valid user = avadmin
Перезапускаем Samba, папка Quarantine появилась в списке общих ресурсов, однако для доступа к ней нужно пройти авторизацию:
Создадим скрипт для антивирусной проверки:
sudo touch /etc/clamav/clamscan
Добавим в него следующие строки:
#!/bin/sh
/usr/bin/clamscan -r /data/ADM --move=/data/quarantine
Если нужно проверять несколько общих ресурсов добавляем несколько строк, ключ -r указывает на рекурсивную проверку (вместе с подпапками). Сохраним изменения и сделаем наш скрипт исполняемым:
sudo chmod +x /etc/clamav/clamscan
Теперь настроим расписание. Допустим мы хотим запускать проверку каждый день в 17:45, для этого добавим в файл /etc/crontabследующую строку:
45 17 * * * root /etc/clamav/clamscan
Выбирая время проверки следует учитывать загрузку сервера. Если нужно проверять разные ресурсы с разной периодичностью (например базы 1С реже, офисные документы чаще) то нужно создать несколько скриптов и несколько расписаний.
В указанное нами время скрипт выполнится и зараженные файлы будут перемещены в карантин. На этом настройку антивирусной защиты можно считать законченной.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии