Запуск Продукты Bitnami Документацияimaxe CLI Блог Контакты
imaxe clamav антивирус v1.0.0

Антивирус, всегда актуальный

Сканируйте файлы и каталоги на предмет вредоносного ПО с помощью движка ClamAV, изолируйте заражённое в карантин и поддерживайте сигнатуры в актуальном состоянии с помощью freshclam. Одна команда сканирует, другая обновляет — никаких сюрпризов.

$ imaxe clamav scan /srv/uploads --recursive --quarantine
Версия
v1.0.0
Подкоманды
5
Конфиг
/etc/imaxe/clamav.yml
Требуется root
да
Сигнатуры
freshclam

Что делает этот модуль #

Антивирус сравнивает файлы на вашем сервере с каталогом сигнатур известного вредоносного ПО. Если что-то совпадает, он помечает это как заражённое, чтобы оно не могло распространяться дальше — например, вредоносное вложение, загруженное в публичную папку, или заражённый файл, пришедший по FTP.

Модуль clamav делает движок ClamAV доступным через набор понятных команд: проверить его состояние, просканировать любой нужный путь (файл или целое дерево), решить, что делать с заражённым — просто сообщить о нём, удалить его или переместить в безопасный карантин, откуда его можно восстановить позже — и поддерживать базу сигнатур в актуальном состоянии с помощью freshclam. Карантин изолирует файл, не удаляя его, поэтому вы никогда ничего не потеряете по ошибке.

Перед началом

Сканирование обнаруживает угрозы с той базой сигнатур, которая есть у вас на данный момент. Если вы не обновлялись несколько дней, сначала выполните imaxe clamav update, чтобы не пропустить недавние угрозы. Сканирование больших деревьев может занять время и нагрузить процессор: сузьте путь до того, что вы действительно хотите проверить.

Краткое руководствопошаговые задачи

Типовые задачи #

Выберите, что вы хотите сделать. В каждом рецепте команда уже готова — просто замените путь на свой и нажмите Копировать.

1

Проверить, готов ли ClamAV

Проверяет движок, режим и насколько устарели ваши сигнатуры.

Подключитесь к серверу по SSH и запросите общее состояние:

терминал
$ sudo imaxe clamav status

Интересует только база сигнатур — версия, дата и файлы? Используйте db:

терминал
$ sudo imaxe clamav db
Вы увидите движок, режим (демон или по требованию), состояние freshclam и то, насколько устарели сигнатуры. Если они устарели, перейдите к Обновить сигнатуры.
2

Просканировать папку

Проверяет путь и сохраняет отчёт, ничего не трогая.

Просканируйте каталог и всё его содержимое с помощью --recursive. По умолчанию он только сообщает: ничего не удаляет и не перемещает.

терминал
$ sudo imaxe clamav scan /home --recursive

Всего один файл? Передайте прямой путь к нему, без --recursive:

терминал
$ sudo imaxe clamav scan /srv/uploads/factura.pdf
По завершении вы увидите, сколько файлов было проверено и какие из них, если такие есть, совпадают с сигнатурой. Если обнаружится что-то заражённое, переходите к следующему рецепту.
3

Просканировать и изолировать заражённое

Автоматически перемещает всё, что дало положительный результат, в карантин.

Просканируйте путь и с помощью --quarantine переместите каждый заражённый файл в карантин вместо того, чтобы оставлять его на месте:

терминал
$ sudo imaxe clamav scan /srv/uploads --recursive --quarantine

Если вы предпочитаете удалить заражённое сразу вместо изоляции, используйте --remove (это необратимо, используйте с умом):

терминал
$ sudo imaxe clamav scan /srv/uploads --recursive --remove
Заражённые файлы покидают свою папку и хранятся изолированно. Никто не может их запустить, а вы позже решаете, восстановить их или удалить.
4

Просмотреть и восстановить карантин

Смотрите, что изолировано, и при необходимости восстанавливайте ложное срабатывание.

Выведите содержимое карантина — каждая запись сопровождается своим идентификатором, источником, сигнатурой и датой:

терминал
$ sudo imaxe clamav quarantine list

Это было ложное срабатывание? Восстановите файл в его исходный путь, используя идентификатор, показанный в списке:

терминал
$ sudo imaxe clamav quarantine restore a1b2c3d4

Как только вы убедитесь, что всё изолированное — мусор, окончательно очистите карантин:

терминал
$ sudo imaxe clamav quarantine purge --yes
Вы полностью контролируете карантин: просматривайте, восстанавливайте то, что оказалось безвредным, и удаляйте остальное без следа.
5

Обновить сигнатуры

Загрузите свежие определения, чтобы обнаруживать новые угрозы.

Запустите freshclam, чтобы получить самую свежую базу сигнатур:

терминал
$ sudo imaxe clamav update

Затем убедитесь, что база актуальна, по её версии и дате:

терминал
$ sudo imaxe clamav db
С этого момента ваши сканирования распознают самые свежие угрозы. Обновляйтесь чаще — новое вредоносное ПО появляется каждый день.
Осторожно с --remove

Удаление стирает файл без возможности восстановления, а ни один антивирус не свободен от ложных срабатываний. В случае сомнений всегда используйте --quarantine: он изолирует так же надёжно и позволяет восстановить файл, если вы ошиблись.

Справочник CLIкоманды, флаги и файлы

Синопсис #

использование
imaxe clamav <subcomando> [<ruta>] [--recursive] [--quarantine|--remove] [--json]

Подкоманды, которые сканируют, перемещают или удаляют файлы, требуют привилегий root (используйте sudo), потому что они читают пути других пользователей и пишут в системный карантин. Добавьте --json к любой команде для машиночитаемого вывода, пригодного для скриптинга.

Подкоманды #

ПодкомандаЧто делаетЗначимые флаги
statusСостояние ClamAV: движок, режим (демон/по требованию), freshclam и база сигнатур.--json
scanСканирует путь; может сообщить, удалить или поместить в карантин заражённое.--recursive, --remove, --quarantine, --json
updateОбновляет базу сигнатур через freshclam.--json
dbИнформация о базе сигнатур: версия, дата и файлы.--json
quarantineУправляет карантином заражённых файлов (группа подкоманд).list · restore · purge

Группа quarantine объединяет три подкоманды:

ПодкомандаЧто делаетЗначимые флаги
quarantine listВыводит файлы в карантине (источник, сигнатура, дата).--json
quarantine restoreВосстанавливает файл из карантина в его исходный путь или заданное назначение.<id> [<destino>]
quarantine purgeБезвозвратно удаляет всё из карантина.--yes

Аргументы и флаги #

Флаг / аргументТипПо умолчаниюОписание
<ruta> обяз.pathВ scan — файл или каталог для сканирования.
<id> обяз.stringВ quarantine restore — идентификатор элемента в карантине (показан в quarantine list).
<destino>pathисходный путьВ quarantine restore — путь, в который восстанавливается файл. По умолчанию — его исходное расположение.
--recursiveboolfalseВ scan — рекурсивное сканирование каталогов.
--quarantineboolfalseВ scan — перемещает заражённые файлы в карантин.
--removeboolfalseВ scan — удаляет заражённые файлы. Необратимо; взаимоисключающе с --quarantine.
--yesboolfalseВ quarantine purge — подтверждает удаление без запроса.
--jsonboolfalseВыдаёт результат в виде JSON в stdout. Доступно в каждой подкоманде.

Файлы и пути #

ПутьСодержимое
/etc/imaxe/clamav.ymlКонфигурация модуля: каталог карантина и пути, исключённые из сканирования.
/var/lib/imaxe/clamav/quarantineХранилище карантина: здесь изолируются заражённые файлы, которые можно восстановить.
/var/lib/clamav/База сигнатур, поддерживаемая freshclam (определения вредоносного ПО).
/var/log/imaxe/clamav.logСтруктурированный журнал каждого сканирования, помещения в карантин и обновления.

Пример clamav.yml:

/etc/imaxe/clamav.yml
quarantine_dir: /var/lib/imaxe/clamav/quarantine
scan:
  exclude:
    - /proc
    - /sys

scan.exclude — это список путей, которые сканирование пропускает; по умолчанию он пуст.

Коды возврата и логи #

Каждый запуск возвращает код, который можно проверить командой echo $? — удобно для связок в скриптах:

0OKОперация успешна; угроз нет.
1ERRОбщая неклассифицированная ошибка. Проверьте лог.
2USAGEНедопустимые или отсутствующие аргументы.
3INFECTEDСканирование обнаружило заражённые файлы.
4UPDATEНе удалось обновить сигнатуры (freshclam).

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

терминал
$ sudo tail -f /var/log/imaxe/clamav.log

Устранение неполадок #

СимптомВероятная причинаРешение
Выходит INFECTED (код 3)Сканирование обнаружило одну или несколько угроз.Просмотрите отчёт; запустите scan снова с --quarantine, чтобы изолировать их.
Выходит UPDATE (код 4)freshclam не смог загрузить сигнатуры (нет сети или зеркало недоступно).Проверьте доступ сервера в интернет и повторите clamav update.
Сканирование выполняется слишком долгоПуть охватывает слишком много файлов или системных путей.Сузьте путь и исключите ненужное с помощью scan.exclude в clamav.yml.
Я потерял легитимный файлЛожное срабатывание, файл перемещён в карантин через --quarantine.Найдите его с помощью quarantine list и восстановите через quarantine restore <id>.
Состояние показывает устаревшие сигнатурыfreshclam давно не запускался.Выполните clamav update и проверьте через clamav db.

Застряли с модулем ClamAV?

Напишите нам, приложив вывод «imaxe <module> status --json», и мы быстро ответим.

Связаться с поддержкой