Тариф успешно добавлен в корзину
В корзину
url image

Антивирус ClamAV: установка и сканирование

На территории РФ подключение к серверам ClamAV на данный момент не осуществляется. 

ClamAV

Антивирус ClamAV предназначен для проверки содержимого электронной почты на наличие вредоносного программного обеспечения и опасных файлов. Помимо этой функции, его можно использовать и для сканирования сайтов. 

Системные требования

ClamAV — кроссплатформенный антивирус: точное количество версий операционных систем, на которых его можно запустить, не могут назвать даже разработчики. Тем не менее, на официальном сайте есть список протестированных ОС, где ClamAV гарантированно работает. Часть систем в нём устарела (Debian 9 и 9), из актуальных можно выделить эти:

  • Ubuntu 18.04
  • Ubuntu 20.04
  • Ubuntu 22.04
  • Debian 10
  • Debian 11
  • CentOS 7
  • AlmaLinux 8

В списке протестированных ОС присутствуют FreeBSD 11 и 12, Windows 7 и 10. Но, так как опыт в работе с этими системами у нас небольшой, об установке и запуске на этих системах  можно прочитать в документации.

 

Также есть требования к ресурсам сервера:

  • минимальный объём оперативной памяти: 3 Гб
  • минимальная мощность процессора: 1 ядро с частотой от 2.0 ГГц
  • минимальный объём диска: не менее 5 ГБ свободного места на диске

Важно: минимальный объём необходимых ресурсов определяется при запуске приложения на чистом сервере без других активных процессов и нагрузки. На боевых серверах работают сайты, базы данных, скрипты — поэтому может потребоваться больше ресурсов. 

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

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

Установка и сканирование

Порядок действий для установки и сканирования будет зависеть от того, используете ли вы панель управления:

ClamAV на сервере с панелью ispmanager

Важно: если антивирус нужен вам для проверки и лечения сайтов, рекомендуемым решением для этого в панели ispmanager является антивирус ImunifyAV. ClamAV в панели устанавливается и работает только для проверки почты.

Для начала установки откройте панель управления ispmanager . Для доступа используются данные для подключения к вашему серверу.

Войти в панель можно по прямой ссылке (https://127.0.0.1:1500/ispmgr, где 127.0.0.1 — адрес вашего сервера) или через Инструкцию.  Перейдите в Личный кабинет — «Товары» — «Виртуальные серверы», выберите нужный сервер в списке — нажмите кнопку «Инструкция» — найдите блок ispmanager и нажмите кнопку «Перейти».

Инструкция к серверу в Личном кабинете

Установка ClamAV

Запустить установку ClamAV можно из раздела НастройкиКонфигурация ПО. Выберите в списке «Почтовый сервер (SMTP/POP3/IMAP)», сверху «Изменить»

Раздел «Возможности» в ispmanager

Отметьте в списке «ClamAV (exim)» и нажмите «Сохранить»

Установка ClamAV

Начнётся процесс установки. Когда иконка диска в колонке «Статус» исчезнет, ClamAV будет установлен на ваш сервер.

Индикатор прогресса установки

Обновление баз

Чтобы базы ClamAV своевременно обновлялись, нужно создать задачу для планировщика. Для этого перейдите в раздел Планировщик CRON и нажмите «Создать задание»:

Планировщик в ispmanager

В поле «Команда» введите:

/usr/bin/freshclam

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

Настройка задания на обновление баз ClamAV

В разделе «Расписание» выберите режим настройки и укажите время запуска обновления баз:

  • базовый — позволит указать время запуска задачи в упрощённом 24-м формате;
  • экспертный — позволит тонко настроить расписание с помощью стандартного синтаксиса cron-выражений.

Обновление рекомендуется настраивать на период минимальной активности пользователей ваших сайтов, например, на ночное время. 

При желании можно отключить отправку уведомлений об обновлении баз, отметив пункт «Не отправлять отчёт по e-mail».

Нажмите «Создать» для сохранения задания.

Сканирование почты

В ispmanager все настройки сканирования доступны через интерфейс панели.

Чтобы включить проверку почты, перейдите в раздел Почта — кнопка Почтовые домены. Выберите ваш домен в списке и нажмите «Изменить»:

Почтовый домены в ispmanager

Чтобы ClamAV начал сканировать почту на этом домене, отметьте пункт «Включить проверку на вирусы»:

Настройка сканирования почтового домена

В свойствах почтового домена появится иконка ClamAV:

Индикатор антивируса

Теперь ваша почта защищена: письма с вредоносными файлами будут автоматически отклоняться почтовым сервером. Отправитель такого письма получит ошибку:

mailbox@EXAMPLE.com
SMTP error from remote mail server after end of data:
host mail.example.com [188.255.255.255]: 550 This message contains virus (Win.Test.EICAR_HDB-1)

Проверить же факт обработки такого письма на вашем сервере можно в логах антивируса: 

tail -f /var/log/clamav/clamav.log

Результатом будет список сообщений антивируса, например:

Tue Jul 14 04:33:26 2020 -> /var/spool/exim4/scan/1jv9p0-00015H-AN/1jv9p0-00015H-AN.eml: Win.Test.EICAR_HDB-1(44d88612fea8a8f36de82e1278abb02f:68) FOUND

Эту же информацию можно увидеть в логах самого почтового сервера:

tail -f /var/log/exim4/mainlog

или

tail -f /var/log/exim/mainlog

Если письмо было отклонено антивирусом, в журнале вы увидите следующее сообщение:

2020-07-14 04:33:26 1jv9p0-00015H-AN H=f436.i.mail.ru [185.5.136.107] X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=no F=<senderbox@example.com> rejected after DATA: Rejected: this message contains virus (Win.Test.EICAR_HDB-1)

Сканирование сайтов

Если вы хотите приспособить ClamAV в качестве антивируса для вашего сайта, это не рекомендуется, но возможно. Для этого нужно выполнить два шага:

Настройки планировщикаНастройка почты для уведомленийЗадание на автоматическое сканирование сайтов через ClamAV в ispmanager 

  1. Укажите email для получения отчётов по результату сканирования. Для этого откройте раздел Планировщик  CRON и нажмите «Настройки».

    В поле «Адрес e-mail» введите вашу электронную почту и нажмите «Сохранить»:

  2. Теперь нужно создать задание для запуска самого сканирования. Вернитесь в раздел Планировщик  CRON и нажмите «Создать»:

    • в поле «Команда» введите:

      /usr/bin/clamscan -ri /var/www/

      Эта утилита запустит сканирование директории /var/www и всех её вложенных папок с выводом количества инфицированных файлов в отчёт;

    • установите время сканирования. Это ресурсоёмкий процесс, поэтому его тоже лучше назначать на время минимальной активности, причём после обновления баз;
    • включите получение отчётов. Так вы сможете оперативно узнавать о состоянии сайта.

    В результате получится вот такой набор настроек:

Для сканирования доступны и другие опции, которые позволяют сделать сканирование полезнее:

  • Этот вариант команды будет автоматически копировать инфицированные файлы в директорию /var/www/www-root/data/infected (директория приведена в качестве примера — замените путь на свой вариант). Это упростит процесс чистки — все файлы будут под рукой в одной папке, останется проверить их, удалить вредоносный код и скопировать обратно в каталог сайта с заменой:

    /usr/bin/clamscan -ri --copy=/var/www/www-root/data/clamav-infected /var/www/

    Если вместо опции copy использовать move, тогда файл будет перемещён, а не скопирован. 

  • Экстремальный вариант — использовать на свой страх и риск! Автоматически удаляет все файлы, которые антивирус сочтёт опасными.

    /usr/bin/clamscan -ri --remove /var/www/

    Чем это опасно — под раздачу могут попасть и рабочие данные, которые по каким-то признакам показались антивирусу подозрительными. 

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

Здесь же в разделе Планировщик CRON можно запустить задание на обновление баз или сканирование вручную, не дожидаясь времени, указанного в расписании. Для этого выберите задачу в списке и нажмите «Выполнить»:

Ручной запуск заданий

В результате в открывшейся вкладке будет доступен отчёт:

Стандартный отчёт ClamAV

 

ClamAV на сервере без панели управления

Для начала работы нужно подключиться к серверу по SSH.

Установка ClamAV

Способ установки зависит от вашей операционной системы:

CentOS

Добавим репозиторий EPEL в список доступных источников ПО и обновим список доступных пакетов:

yum install -y epel-release

Запустим установку:

yum install -y clamav

Готово, процесс установки завершён.

Debian и Ubuntu

Обновим список доступных для установки пакетов:

apt update

Запустим установку ClamAV

apt install clamav clamav-daemon

Обновление баз

Перед сканированием в первую очередь нужно обновить базы вирусных сигнатур. Если вы запускаете проверку вручную, введите в консоли команду: 

freshclam

Запустится процесс обновления.

Вывод информации о прогрессе обновления в терминал

Чтобы автоматизировать этот процесс, удобнее будет добавить его в планировщик cron:

  1. Откроем планировщик командой:

    crontab -e
  2. Добавим наше задание* в список. Например, настроим ежедневную проверку баз в 02:00. Для этого добавляем в открывшийся файл** следующую строчку:

    0 2 * * * root /usr/bin/freshclam >/dev/null 2>&1
            

    * подробнее о синтаксисе для работы с crontab можно узнать здесь

    ** файл открывается в консольном текстовом редакторе. Для входа в режим редактирования на клавиатуре нажмите I. Для выхода из режима редактирования нажмите Esc. Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!

  3. Сохраняем файл и проверяем, что задание записано корректно:

    crontab -l

    Вывод будет таким:

    Активные задания пользователя root в планировщике cron

Ручное сканирование

ClamAV можно использовать в нескольких режимах:

  • через демон clamd с помощью утилиты clamdscan. Особенности — можно тонко настроить работу демона через конфигурационный файл /etc/clamd.d/scan.conf на CentOS, /etc/clamav/clamd.conf в Debian и Ubuntu;
  • через тот же демон clamd с помощью  утилиты clamonacc. Особенности — она проверяет данные на лету в фоновом режиме, отправляя уведомления в случае обнаружения вредоносных файлов;
  • с помощью утилиты clamscan в формате разовой проверки. 

Мы остановимся на последнем как на самом простом.

Чтобы запустить сканирование вручную, например, для директории /var/www/html, достаточно ввести в терминале  команду:

clamscan -ri /var/www/html

Через некоторое время ожидания вы увидите отчёт проверки:

Вывод отчёта с результатами проверки в терминал

Аналогично можно просканировать письма в почтовой очереди: просто замените директорию /var/www/html на /var/spool/mail.

Автоматическое сканирование

Процесс настройки автоматического сканирования аналогичен настройке автообновления баз вирусных сигнатур. Достаточно добавить задачу на проверку в планировщик:

  1. Откроем планировщик:

    crontab -e
  2. Настроим задание на ежедневную проверку сайтов и почты, например, на 03:00, после обновления баз. Для этого добавим в конец файла следующий текст:

    0 3 * * * root /usr/bin/clamscan -ri /var/www/html
            0 4 * * * root /usr/bin/clamscan -ri /var/spool/mail

    Первая задача в 03:00 запустит сканирование в папке /var/www/html. Вторая — в 04:00 проверит почтовую очередь.

    Здесь же в начало файла добавим строчку:

    MAILTO=root

    Это позволит получать отчёты о выполнении настроенных заданий на email пользователя root. Если у вас настроен почтовый сервер, вместо root вы можете указать ваш email — тогда отчёты будут поступать на него. Если почтовый сервер не установлен, отчёты будут храниться в директории /var/mail/root.

  3. Сохраняем файл и проверяем, что задание записано корректно:

    crontab -l

    Вместе с ранее добавленной задачей на обновление баз вывод будет таким:

    Активные задания пользователя root в планировщике cron

Что делать при обнаружении заражённых файлов

Если вы увидели, что в очередном отчёте количество инфицированных файлов больше нуля, нужно принимать меры.

Анализ и лечение файлов выполняется в ручном режиме независимо от конфигурации сервера:

Shell-клиент в ispmanagerФайловый менеджер ispmanagerРедактор файлов ispmanager

  • на серверах с ispmanager в разделе АдминистрированиеShell-клиент можно пользоваться возможностями командной строки, не выходя из панели.

    Проверять и анализировать код файлов можно через встроенный файловый менеджер (раздел Менеджер файлов) и текстовый редактор:

    Или можно просто скачать файлы с сервера по FTP, проверить их удобным вам способом и потом загрузить обратно.

  • на серверах без панели управления все действия осуществляются по SSH

При наличии заражённых файлов вы можете сразу:

  • Скопировать или переместить их в отдельную заранее созданную директорию для последующего лечения:

    clamscan -ri --copy=/var/www/html/quarantine /var/www/html

    Эта команда запустит проверку всех файлов в папке /var/www/html В процессе все инфицированные файлы будут скопированы в директорию /var/www/html/quarantine. Чтобы перенести, а не скопировать файлы, вместо опции copy используйте move.

    После этого подозрительные файлы можно проверить вручную или просканировать отдельно:

    clamscan index.php

    где index.php — имя файла, который мы хотим проверить.

  • При необходимости можно запустить сканирование с автоматическим удалением всех заражённых файлов. Эта опция используется на свой страх и риск — файлы удаляются безвозвратно.

    clamscan -ri --remove /var/www/html

ClamAV может работать в связке с другим решением для поиска вирусов — Linux Malware Detect. В таком случае для анализа будут использованы сразу две базы вирусных сигнатур — что повысит качество поиска.

Антивирус Linux Malware Detect: установка и сканирование 

Читать

Этот материал был полезен?

Скидка 25% новым клиентам!
Закажи сервер сегодня и получи скидку на первый месяц аренды!