Перейти к содержанию

Сканирование с помощью ClamAV

ClamAV — это свободный кроссплатформенный антивирус с открытым исходным кодом, предназначенный для обнаружения троянов, вирусов, вредоносных программ и других угроз. Чаще всего используется на серверах и в почтовых шлюзах.


Установка

Ubuntu / Debian

sudo apt update && sudo apt install -y clamav clamav-daemon

⚠️ Начиная с Ubuntu 22.04 и Debian 11+, пакет clamav-daemon (включая clamd) рекомендуется устанавливать отдельно, если планируется фоновое сканирование или интеграция с другими сервисами.

CentOS / RHEL / Fedora

Для RHEL/CentOS ⅞/9 (EPEL должен быть подключён)

sudo yum install -y epel-release
sudo yum install -y clamav clamav-update
Для Fedora / RHEL 9+ (с использованием dnf)

sudo dnf install -y clamav clamav-update

💡 На системах с systemd (все современные дистрибутивы) служба clamav-freshclam управляет автоматическим обновлением баз.


Обновление сигнатур

Перед первым использованием обязательно обновите базы вирусных сигнатур.

Стандартный способ (при работающем freshclam)

sudo freshclam

Если возникает ошибка ERROR: Can't open /var/lib/clamav/main.cvd: Permission denied или ERROR: Database lock file exists, возможно, служба clamav-freshclam уже запущена и блокирует обновление. Тогда используйте:

sudo systemctl stop clamav-freshclam
sudo freshclam
sudo systemctl start clamav-freshclam

Проблемы с обновлением в России (2024–2025)

С февраля 2023 года официальные зеркала ClamAV (например, database.clamav.net) могут быть недоступны из РФ из-за геоблокировок. Возможные решения:

  1. Использование прокси
    Отредактируйте конфиг /etc/clamav/freshclam.conf, добавив:

    HTTPProxyServer адрес_прокси
    HTTPProxyPort  порт
    # HTTPProxyUsername / HTTPProxyPassword — при необходимости
    
    После правки:
    sudo chmod 600 /etc/clamav/freshclam.conf
    sudo rm -f /var/lib/clamav/freshclam.dat  # сброс состояния обновления
    sudo freshclam
    

  2. Альтернативные источники сигнатур
    Рассмотрите использование сторонних сигнатур (например, от MalwarePatrol или Sanctuary), но соблюдайте условия лицензирования.

  3. Локальное зеркало / ручное обновление
    Скачайте актуальные .cvd/.cld-файлы с зеркала за пределами РФ и скопируйте в /var/lib/clamav/.


Требования к ресурсам

  • Оперативная память: для полного сканирования рекомендуется минимум 1–1.5 ГБ свободной RAM.
  • Swap: при отсутствии swap-раздела или файла — настройте его, особенно на VPS с ограниченной памятью:
    sudo fallocate -l 2G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    

Примеры сканирования

Задача Команда
Сканировать один файл clamscan /путь/к/файлу
Рекурсивное сканирование папки (только инфицированные) clamscan -r -i /папка
Переместить заражённые файлы clamscan -r --move=/karantin /папка
Удалить инфицированные файлы автоматически clamscan -r --remove /папка ⚠️
Вывести отчёт в файл clamscan -r -i /папка > scan_report.txt
Использовать демон clamd (быстрее, меньше RAM при повторах) clamdscan -r /папка

⚠️ Параметр --remove безвозвратно удаляет файлы. Используйте только после тестов и с резервной копией.

Для ускорения повторных проверок рекомендуется использовать clamdscan (работает через демон clamd), предварительно запустив службу:

sudo systemctl start clamav-daemon
sudo clamdscan -r /папка


Полезные советы

  • Чтобы проверить, запущен ли clamd:
    sudo systemctl status clamav-daemon
    
  • Логи сканирования (по умолчанию) — в /var/log/clamav/.
  • Для регулярного сканирования настройте cron:
    # Ежедневная проверка в 3:30 ночи
    30 3 * * * /usr/bin/clamscan -r --exclude-dir="^/sys\|^/proc\|^/dev" /home --log=/var/log/clamav/daily_scan.log
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×