Поднимаем 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
