Создан: 25.11.2008
Иванов Аркадий
Clamav - бесплатная антивирусная система.
Установка
- Установку делаем из исходников, поскольку есть большая вероятность того, что CLAMAV из дистрибутива не будет работать со свежими обновлениями.
- Исходники живут на http://clamav.sourceforge.net . Их надо скачать.
- Предварительно сносим из системы всё, что относится к CLAMAV.
- Раскрываем скачанный файл: "tar xzf ...."
- Устанавливаем в систему дополнительные пакеты:
zlib-devel bzip2-devel libcheck-devel libgmp-devel sendmail-devel - Создаём группу и юзера clamav (юзер без shell-а)
# groupadd clamav
# useradd -g clamav -s /bin/false clamav - ./configure
- make && make install
- ldconfig
- Всё.
Обновление антивирусных баз.
За обновление отвечает задача freshclam.
Настройки лежат в /usr/local/etc/freshclam.conf
- Закомментируем слово Example в начале файла.
- DatabaseDirectory /var/lib/clamav
- UpdateLogFile /var/log/freshclam.log
Теперь создадим файл /var/log/freshclam.log :
touch /var/log/freshclam.log
chmod 600 /var/log/freshclam.log
chown clamav /var/log/freshclam.log
Обновление баз проще запускать по cron-у. Добавим запись в /etc/crontab, чтобы обновляться 2 раза в день:
35 3,15 * * * root /usr/local/bin/freshclam --quiet
Простое сканирование.
clamscan -l clamscan.log -r mydirectory
Сканирует файлы в каталоге "mydirectory" и в подкаталогах (ключ -r).
Результаты поместит в файл clamscan.log (ключ -l).
Данный раздел не относится к защите "на лету" почты или файлового сервера. Это просто один из способов использования CLAMAV вручную.
Запуск демона.
clamd - это демон, который делает сканирование по запросу программы клиента. Общение с ним идёт через сетевые запросы.
До его запуска следует отредактировать /usrl/local/etc/clamd.conf. Как минимум следует закомментировать слово "Example".
Затем просто запускаем:
# su - clamav -s /bin/bash -c "/usr/local/sbin/clamd"
Проверить работоспособность clamd можно клиентской программой:
$ clamdscan mydirectory
Проверка почты на вирусы в Postfix
Вытаскиваем с сайта дополнительный модуль к clamav - clamsmtp, который и работает с Postfix, как антивирусный фильтр.
Схема работы:
письмо -> Postfix -> clamsmtpd -> clamd -> clamsmtp(вирус/не вирус) -> Postfix
Я проверял работу clamsmtp версии 1.10.
- Раскрываем (tar xzf ...)
- Конфигурируем (./configure)
- make && make install
- Копируем файл doc/clamsmtpd.conf в /usr/local/etc/
- Редактируем этот файл. Необходимые строчки написаны ниже:
OutAddress: 127.0.0.1:10026
Listen: 0.0.0.0:10025
ClamAddress: /tmp/clamd.socket
TempDirectory: /tmp
User: clamav - Запускаем демона: "su - clamav -s /bin/bash -c /usr/local/sbin/clamsmtpd"
Рихтуем настройки Postfix:
В файле main.cf:
# Антивир. фильтр тела письма
content_filter = scan:127.0.0.1:10025
receive_override_options = no_address_mappings
Указали, что Postfix должен направлять содержимое письма программе-фильтру на локальный хост на порт 10025. Контент-фильтром у нас служит clamsmtpd, который как раз и слушает этот порт. Вторая строка указывает, что подстановок почтовых адресов делать не надо.
Теперь настройки в master.cf:
# Фильтр контента
scan unix - - n - 32 smtp -o smtp_send_xforward_command=yes
# Вставка почты обратно в postfix из фильтра (этот порт Postfix слушает)
127.0.0.1:10026 inet n - n - 32 smtpd -o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
В случае проблем полезно запустить вручную "clamsmtpd -d 4" и посмотреть протокол.
Проверка "на лету" на вирусы в Samba
Скачиваем по ссылке с сайта Clamav отдельную разработку для Samba - samba-vscan. Я работал с версией 0.3.6c-beta5.
Нужны исходники версии Samba в той системе, где работаешь.
- Для начала rpm --rebuild samba-3.0.30.xxxx.src.rpm и устанавливаем все пакеты, которые нужны для сборки Самбы.
- rpm -i samba-3.0.30.xxxx.rpm
- Взял оттуда samba-3.0.30.tgz
- Раскрыл в /usr/src/samba-3.0.30
-Переходим в каталог /usr/src/samba-3.0.10/source
- # ./autogen.sh
- # ./configure
- # make proto
- раскрываем архив samba-vscan-0.3.6c-beta5 в каталог /usr/src/samba-3.0.30/examples/VFS
- переходим в /usr/src/samba-3.0.30/examples/VFS/samba-vscan-0.3.6c-beta5
- # ./configure
- # make
- копируем получившийся файл vscan-clamav.so в /usr/lib/samba/vfs
- копируем из каталога clamav файл vscan-clamav.conf в каталог /etc/samba
- В /etc/smb.conf для интересующего нас ресурса прописываем проверку "на лету", например, для ресурса "common":
[common]
path = /home/common
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
guest ok = yes
read only = no
В файле vscan-clamav.conf рихтуем настройки под нашу систему. Важный параметр - сокет демона clamav:
clamd socket name = /tmp/clamd.socket
Политика к обнаруженным вирусам - в отстойник:
infected file action = quarantine
quarantine directory = /home/viruses
Сделайте полный доступ к /home/viruses, поскольку файлы туда пишутся от всех юзеров, работающих с ресурсом.
Работает несколько странно - позволяет записать вирусьё, но считать не даёт, зато скорость не падает.