Антивирус ClamAV предназначен для проверки содержимого электронной почты на наличие вредоносного программного обеспечения и опасных файлов. Помимо этой функции, его можно использовать и для сканирования сайтов.
Системные требования
ClamAV — кроссплатформенный антивирус: точное количество версий операционных систем, на которых его можно запустить, не могут назвать даже разработчики. Тем не менее, на официальном сайте есть список протестированных ОС, где ClamAV гарантированно работает. Часть систем в нём устарела (Debian 9 и 9), из актуальных можно выделить эти:
|
|
В списке протестированных ОС присутствуют 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)»
, сверху «Изменить»
:
Отметьте в списке «ClamAV (exim)»
и нажмите «Сохранить»
.
Начнётся процесс установки. Когда иконка диска в колонке «Статус»
исчезнет, ClamAV будет установлен на ваш сервер.
Обновление баз
Чтобы базы ClamAV своевременно обновлялись, нужно создать задачу для планировщика. Для этого перейдите в раздел Планировщик CRON
и нажмите «Создать задание»
:
В поле «Команда»
введите:
/usr/bin/freshclam
Она будет запускать утилиту обновления вирусных сигнатур ClamAV.
В разделе «Расписание»
выберите режим настройки и укажите время запуска обновления баз:
- базовый — позволит указать время запуска задачи в упрощённом 24-м формате;
- экспертный — позволит тонко настроить расписание с помощью стандартного синтаксиса cron-выражений.
Обновление рекомендуется настраивать на период минимальной активности пользователей ваших сайтов, например, на ночное время.
При желании можно отключить отправку уведомлений об обновлении баз, отметив пункт «Не отправлять отчёт по e-mail»
.
Нажмите «Создать»
для сохранения задания.
Сканирование почты
В ISPmanager все настройки сканирования доступны через интерфейс панели.
Чтобы включить проверку почты, перейдите в раздел Почта
— кнопка Почтовые домены
. Выберите ваш домен в списке и нажмите «Изменить»
:
Чтобы ClamAV начал сканировать почту на этом домене, отметьте пункт «Включить проверку на вирусы»
:
В свойствах почтового домена появится иконка ClamAV:
Теперь ваша почта защищена: письма с вредоносными файлами будут автоматически отклоняться почтовым сервером. Отправитель такого письма получит ошибку:
[email protected] 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=<[email protected]> rejected after DATA: Rejected: this message contains virus (Win.Test.EICAR_HDB-1)
Сканирование сайтов
Если вы хотите приспособить ClamAV в качестве антивируса для вашего сайта, это не рекомендуется, но возможно. Для этого нужно выполнить два шага:
Настройки планировщикаНастройка почты для уведомленийЗадание на автоматическое сканирование сайтов через ClamAV в ISPmanager
Укажите email для получения отчётов по результату сканирования. Для этого откройте раздел
Планировщик CRON
и нажмите«Настройки»
.В поле
«Адрес e-mail»
введите вашу электронную почту и нажмите«Сохранить»
:Теперь нужно создать задание для запуска самого сканирования. Вернитесь в раздел
Планировщик 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 на сервере без панели управления
Для начала работы нужно подключиться к серверу по 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
:
Откроем планировщик командой:
crontab -e
Добавим наше задание* в список. Например, настроим ежедневную проверку баз в 02:00. Для этого добавляем в открывшийся файл** следующую строчку:
0 2 * * * root /usr/bin/freshclam >/dev/null 2>&1
* подробнее о синтаксисе для работы с crontab можно узнать здесь
** файл открывается в консольном текстовом редакторе. Для входа в режим редактирования на клавиатуре нажмите I. Для выхода из режима редактирования нажмите Esc. Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!
Сохраняем файл и проверяем, что задание записано корректно:
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
.
Автоматическое сканирование
Процесс настройки автоматического сканирования аналогичен настройке автообновления баз вирусных сигнатур. Достаточно добавить задачу на проверку в планировщик:
Откроем планировщик:
crontab -e
Настроим задание на ежедневную проверку сайтов и почты, например, на 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
.Сохраняем файл и проверяем, что задание записано корректно:
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. В таком случае для анализа будут использованы сразу две базы вирусных сигнатур — что повысит качество поиска.