Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


суббота, 19 июля 2014 г.

Антивирусная защита файловых серверов Samba с помощью ClamFS


Существуют всякие коммерческие решения для файловых серверов под линуксом, но лично мне как-то впадлу покупать лицензию у Касперского или Данилова, учитывая всякие активации, верификации и прочую проприетарщину.

Воспользуемся, как описано здесь, кошерным ClamAV и егонной ClamFS. Я внес некоторые изменения в то, что предложил "ИТ Специалист", но в целом более чем благодарен ему за подробное и доходчивое объяснение что к чему.

1. устанавливаем нужное:

sudo apt-get install clamav clamfs


2. самбовские шары живут у меня в var, пусть и clamfs живет там же (самба еще не настроена, поэтому создаю каталог и для нее)

sudo mkdir -p /var/clamfs/data
sudo mkdir /var/samba
sudo chmod -R 777 /var/clamfs
 
Попутно создаем каталог для карантина
 
sudo mkdir /var/clamfs/quarantine

Он будет использован отдельной шарой специально для администратора, поэтому создаем его не в общем каталоге для самбы, а отдельно.

3. создаем файл конфигурации ClamFS

Распаковываем /usr/share/doc/clamfs/clamfs-sample.xml.gz в /etc/clamav/clamfs.xml любым удобным способом, я, например, предпочитаю mc.

В полученном файле правим строчку

<filesystem mountpoint="/var/samba" nonempty="yes" public="yes" root="/var/clamfs/data" />

mountpoint - куда будет монтироваться контролируемая файловая система
root - где она находится по факту.
nonempty - довольно опасный параметр, он позволит смонтировать защищенную ФС в указанный каталог даже если он не пустой, поэтому лучше не держать в настоящей /var/samba ничего - при несмонтированной ClamFS этот каталог должен быть пуст.

То есть, каталоги /var/clamfs/data и /var/samba будут содержать одно и то же, но файлы, помещаемые (локально или по сети) в /var/samba будут на лету проверяться демоном ClamD.

Настраиваем протоколирование:

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

4. Во избежание неприятностей с AppArmor, делаем рекомендованное:

Теперь о ложке дегтя. Как выяснилось, в Ubuntu 10.04 ClamFS при включенном Apparmor полностью блокирует все файлы на чтение. Выходов из этой ситуации несколько, так как файловый сервер обычно является сугубо внутрисетевым ресурсом, то мы пойдем по наиболее простому пути и просто удалим профиль clamd для Apparmor:

sudo rm /etc/apparmor.d/usr.sbin.clamd

5. Устанавливаем и настраиваем самбу по своему вкусу, создавая каталоги для защищаемых шар внутри /var/samba, который, как мы помним, на самом деле - защищаемое /var/clamfs/data. Дополнительно создаем шару для карантина, указав к ней путь /var/clamfs/quarantine - эта шара не будет защищена и должна быть доступна только администраторам. Остальные пользователи не должны даже подозревать об ее существовании. Реализация - на ваше усмотрение. Например, как в оригинальной статье создать отдельного пользователя "администратор антивирусной безопасности"

6. Теперь самое вкусное. Зараженный файл, заблокированный ClamFS, будет недоступен пользователям, однако продолжит валяться в общедоступном защищенном каталоге. А это плохо. Настроим регулярное сканирование.

/etc/clamav/clamscan:

#!/bin/sh
/usr/bin/clamscan -r /var/clamfs/data --move=/var/clamfs/quarantine

Добавим его периодический запуск в кронтаб:

/etc/crontab:

0 19    * * *   root    /etc/clamav/clamscan

Теперь в 7 вечера вся наша порнография будет сканироваться и найденные бяки будут переноситься в каталог карантина.

7. Если мы работаем через прокси, то будет не лишним добавить настройки в /etc/clamav/freshclam.conf:

#(например: myproxy.mydomain.ru) 
HTTPProxyServer FQDN_вашего_прокси

#(если пользователь доменный, используем одинарный бэкслеш!) 
HTTPProxyUsername [домен\]пользователь

HTTPProxyPassword пароль_этого_пользователя


Порт прокси по умолчанию 8080, если у вас отличается, добавьте строчку

HTTPProxyPort номер_вашего_порта


Обратите внимание: freshclam - параноик и не захочет работать, если в конфиге указан пароль для подключения к прокси. Для полного счастья ему надо, чтобы разрешения на файл конфигурации в таком случае были не выше чем 700. chmod в помощь!
Если же авторизация на прокси не предусмотрена или делается не через имя/пароль, то достаточно просто указать имя узла прокси-сервера и, в случае нестандарта, номер порта.

Дополнительные несущественные (на мой взгляд) моменты можно посмотреть в исходной статье.

Комментариев нет:

Отправить комментарий

Пожалуйста, воздержитесь от грубостей и персональных нападок.
Я не против матерщины, но она должна быть уместной и использоваться для выражения эмоций, а не в качестве основного средства выражения мыслей.