Поднимаем ClamAV и ClamFS на Ubuntu Server

Задача такая: есть сервер на Ubuntu Server 8.04, на нем работает Samba. Нужно настроить антивирусную проверку «на лету» ресурсов Samba.

Устанавливаем нужные пакеты:

sudo apt-get install clamav clamav-daemon

При их конфигурации необходимые демоны будут запущены, но все-равно проверим:

sudo /etc/init.d/clamav-daemon status
* clamd is running.

sudo /etc/init.d/clamav-freshclam status
* freshclam is running.

Если демоны не запущены – стартуем:

sudo /etc/init.d/clamav-daemon start
sudo /etc/init.d/clamav-freshclam start

clamav-freshclam (freshclam) отвечает за обновления, настройки хранятся в файле:

/etc/clamav/freshclam.conf

Логи храняться в:

/var/log/clamav/freshclam.log

clamav-daemon (clamd) нужен для проверки по-требованию, настройки хранятся в файле:

/etc/clamav/clamd.conf

Включаем возможность сканировать на наличие Potentially Unwanted Applications (Возможно Нежелательных Приложений). «База данных PUA содержит обнаружение для приложений, которые не вредоносны сами по себе, но могут быть использованы во вредоносном или нежелаемом контексте. Как пример: инструмент, чтобы доставать пароли из системы, может быть полезен, пока лицу, которое использует его, разрешено делать так. Однако тот же инструмент может быть использован, чтобы похищать пароли из системы.
«
, – http://www.clamav.net.

DetectPUA true

Перезапустим ClamAV:

sudo /etc/init.d/clamav-daemon restart

Наличие запущенных clamd и freshclam не означает что они что-либо проверяют «на лету» просто потому что Вы их запустили. clamd ждет входящих соединений через Unix и/или TCP сокеты и сканирует файлы и директории по-требованию, freshclam же обновляет вирусные базы и уведомляет об этом clamd.

Теперь настроим проверку ресурсов Samba «на лету». Так как модуля samba-vscan в репозитариях Ubuntu нет (правда, этот модуль позволяет проверять ресурсы Samba с использованием не только ClamAV), воспользуемся ClamFS.

sudo apt-get install clamfs

ClamFS – это файловая система основанная на FUSE, которая обеспечивает проверку с помощью clamd при обращении к файлам.

Копируем пример файла настроек ClamFS:

sudo mkdir /etc/clamfs
sudo cp /usr/share/doc/clamfs/clamfs-sample.xml /etc/clamfs/samba.xml

Редактируем /etc/clamfs/samba.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Only three options are mandatory:
      <clamd socket="" />
      <filesystem root="" />
      <filesystem mountpoint="" />

      All other can be removed, but this will disable related subsystem.
      For example removing <cache ... /> will disable caching completly. -->

<clamfs>
      <!-- Clamd socket -->
      <clamd socket="/var/run/clamav/clamd.ctl" />

      <!-- File system settings
           root       - real directory to attach as our root
           mountpoint - where to attach our root
           public     - limit access to process owner only or make
                        file system publicly available for all users
           nonempty   - allow mount to directory which contains
                        files or sub-directories -->
      <filesystem root="/srv/smb" mountpoint="/mnt/smb-clamfs" public="yes" nonempty="yes" />

      <!-- Maximal file size (in bytes).
           This option can speed up access to large files, as they will be
           never scanned. On the other hand attacker can append long portion
           of junk at the end of file to make it big enough to be omitted. -->
      <file maximal-size="2097152" /> <!-- 2MiB -->

      <!-- Whitelisted files are never scanned.
           This can speed up access to some files, but be careful with this,
           some data files like JPEG, RIFF or WMF can be prepared to cause
           problems (like buffers overflows) in applications and thus execute
           malicious code even not being executable itself. Finally even text
           files can have "modeline" causing problems in some buggy editors. -->
      <whitelist>
           <exclude extension="txt" /> <!-- text files -->
           <exclude extension="dbx" /> <!-- form ClamWin -->
           <exclude extension="tbb" /> <!-- form ClamWin -->
           <exclude extension="pst" /> <!-- form ClamWin -->
           <exclude extension="dat" /> <!-- form ClamWin -->
           <exclude extension="log" /> <!-- form ClamWin -->
           <exclude extension="nsf" /> <!-- form ClamWin -->
           <exclude extension="ntf" /> <!-- form ClamWin -->
      </whitelist>

      <!-- Blacklisted files are scanned regardless of their sizes -->
      <blacklist>
           <include extension="exe" /> <!-- executable file -->
           <include extension="com" /> <!-- executable file -->
           <include extension="dll" /> <!-- library -->
           <include extension="sys" /> <!-- system file / driver -->
           <include extension="vbs" /> <!-- Visual Basic Script -->
           <include extension="bat" /> <!-- DOS Batch file -->
           <include extension="cmd" /> <!-- Windows Command file -->
      </blacklist>

      <!-- How many entries to keep in cache and for how long (in ms) -->
      <cache entries="16384" expire="10800000" /> <!-- 3h -->

      <!-- Logging method (stdout, syslog or file) -->
      <!-- <log method="stdout" verbose="no" /> -->
      <!-- <log method="syslog" /> -->
      <log method="file" filename="/var/log/clamav/clamfs.log" verbose="no" />

      <!-- Send mail when virus is found -->
      <!-- <mail server="localhost" to="root@localhost" from="clamfs@localhost"
           subject="ClamFS: Virus detected" /> -->
      <!-- subject="ClamFS: Virus detected on @@HOSTNAME@@" /> -->

      <!-- Debug settings -->
      <!-- <debug threads="no" fork="no" /> -->
</clamfs>

Создаем точку монтирования:

sudo mkdir /mnt/smb-clamfs

Запускаем ClamFS:

sudo clamfs /etc/clamfs/samba.xml

17:07:26 (clamfs.cxx:870) ClamFS v0.9.1
17:07:26 (clamfs.cxx:871) Copyright (c) 2007 Krzysztof Burghardt <krzy...@krzy>
17:07:26 (clamfs.cxx:872) http://clamfs.sourceforge.net/
17:07:26 (clamfs.cxx:952) chdir to our 'root' (/srv/smb)
17:07:26 (clamav.cxx:57) attempt to open control connection to clamd via /var/run/clamav/clamd.ctl
17:07:26 (clamav.cxx:62) connected to clamd
17:07:26 (clamav.cxx:80) got valid reply for PING command, clamd works
17:07:26 (clamav.cxx:87) closing clamd connection
17:07:26 (clamfs.cxx:990) ScanCache initialized, 16384 entries will be kept for 10800000 ms max.
17:07:26 (rlog.cxx:103) log goes to file /var/log/clamav/clamfs.log
17:07:26 (rlog.cxx:68) will close initial stdio log

После запуска директория /srv/smb в которой хранятся ресурсы Samba будет смонтирована в /mnt/smb-clamfs.

Устанавливаем тестовые файлы для ClamAV:

sudo apt-get install clamav-testfiles

Теперь, в директории /usr/share/clamav-testfiles/ мы можем найти тестовые файлы:
clam.cab clam.exe clam.exe.bz2 clam-v2.rar clam-v3.rar clam.zip

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

sudo cp /usr/share/clamav-testfiles/* /mnt/smb-clamfs/

Копирование пройдет успешно, но, например, распаковать или просмотреть файлы уже не сможем:

sudo bzip2 -d /mnt/smb-clamfs/clam.exe.bz2
bzip2: Can't open input file /mnt/smb-clamfs/clam.exe.bz2: Operation not permitted.

В /var/log/clamav/clamfs.log появится примерно следующее сообщение:

16:53:09 (clamav.cxx:135) (bzip2:17282) (root:0) /srv/smb/clam.exe.bz2: ClamAV-Test-File FOUND

Теперь отмонтируем нашу файловую систему ClamFS и пропишем ее в /etc/fstab, чтобы она монтировалась при запуске системы:

sudo umount /mnt/smb-clamfs

Добавим в /etc/fstab строчку:

clamfs#/etc/clamfs/samba.xml /mnt/smb-clamfs fuse defaults 0 0

Пробуем примонтировать:

sudo mount /mnt/smb-clamfs/

14:47:42 (clamfs.cxx:870) ClamFS v0.9.1
14:47:42 (clamfs.cxx:871) Copyright (c) 2007 Krzysztof Burghardt <krzy...@krzy>
14:47:42 (clamfs.cxx:872) http://clamfs.sourceforge.net/
14:47:42 (clamfs.cxx:952) chdir to our 'root' (/srv/smb)
14:47:42 (clamfs.cxx:990) ScanCache initialized, 16384 entries will be kept for 10800000 ms max.
14:47:42 (rlog.cxx:103) log goes to file /var/log/clamav/clamfs.log

Все отлично. Подправим настройки Samba в /etc/samba/smb.conf, исправив пути на /mnt/smb-clamfs:

[upload]
comment = Public Upload Folder
path = /mnt/smb-clamfs/upload
public = yes
readonly = no
writable = yes
only guest = yes

Теперь инфицированные файлы попадающие в общую папку будут блокироваться.

Распечатать Распечатать

Другие записи:

Осторожно БОЯН! Сброс root пароля MySQL :)
Поднимаем TorrentFlux на Ubuntu Server
MySQL: сделаем это по-быстрому
Поднимаем учет трафика на Squid и TraffPRO – Часть 1
Запуск Java и Apache Felix в chroot jail окружении в Debian Lenny
Баг: Cannot open master side of pty: No such file or directory
Восстановление файлов с помощью PhotoRec в Linux
Укрепляем Apache и PHP
Установка OpenDS Directory Server в Ubuntu Server 8.04
Пишем CD в консоли Ubuntu Server

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

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">