Не удается обновить базу данных в ClamAV с помощью freshclam на CentOS7.

Вопрос или проблема

Я запускаю CentOS на платформе Azure, с установленным ClamAV, используя следующие команды:

  yum install -y epel-release
  yum install -y clamav

После установки я запускаю следующую команду для обновления различных баз данных: freshclam

Получаю следующий вывод (последняя часть вывода):

Time: 0.1s, ETA: 0.0s [=============================>] 657.84KiB/657.84KiB
Downloading database patch # 25864...
Time: 0.2s, ETA: 0.0s [=============================>] 992.77KiB/992.77KiB
Downloading database patch # 25865...
Time: 0.1s, ETA: 0.0s [=============================>] 903.99KiB/903.99KiB
Testing database: '/var/lib/clamav/tmp.628c5/clamav-a8e48a60b669aa6a0211c18d734f61be.tmp-daily.cld'     ...
ERROR: Database load killed by signal 9
ERROR: Database test FAILED.
ERROR: Unexpected error when attempting to update database: daily
WARNING: fc_update_databases: fc_update_database failed: Test failed (8)
ERROR: Database update process failed: Test failed (8)
ERROR: Update failed.

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

У меня аналогичная ОС в моем окружении, я добился работы, выполнив команды ниже:

    yum install -y -q  epel-release
    yum install -y -q clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

    setsebool -P antivirus_can_scan_system 1

    sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
    sed -i -e "s/^Example/#Example/" /etc/freshclam.conf

    sed -i 's/^#LocalSocket \/run\/clamd.scan\/clamd.soc/LocalSocket \/run\/clamd.scan\/clamd.soc/' /etc/clamd.d/scan.conf

    freshclam

    systemctl enable clamav-freshclam.service
    systemctl start clamav-freshclam.service
    systemctl enable clamd@scan
    systemctl start clamd@scan

Примечание: Если freshclam все еще не обновляет базу данных, возможно, у вашего хоста недостаточно оперативной памяти (попробуйте с минимумом 1,5 ГБ оперативной памяти)

Из QNAP:

…”ERROR: Database load killed by signal 9″ или “ERROR: Failed to load new database”, это вызвано характеристиками памяти на NAS, которая недостаточна для извлечения увеличивающегося размера антивирусного определения в наши дни.

Я не уверен, как NAS относится к различным дистрибутивам Linux и установкам, но эта проблема возникает из-за недостаточного объема доступной оперативной памяти.

Эта тема на GitHub также описывает ту же основную проблему:

Предложение: добавьте заметку в примечания к выпуску, что-то вроде:

“Для пользователей, желающих использовать антивирус clamav и обновлять данные определений вирусов с помощью команды freshclam, и большинство из вас так и поступит, для корректной работы без ошибок/сбоев обновлений антивируса, вам потребуется минимум оперативной памяти системы от 512 МБ (Ubuntu 16.04) до 2 ГБ (CentOS 8), в зависимости от дистрибутива Linux и других включенных вами служб. Урок: ClamAV использует много оперативной памяти.”

Я использовал systemctl stop для большинства служб, установленных после настройки сервера, таких как Apache, MySQL, Postfix и др.

Вы можете получить список служб с помощью:

systemctl list-units --type=service --state=active

Затем, например, для nginx, httpd, named, mariadb, postfix, dovecot что-то вроде:

systemctl stop nginx httpd named mariadb postfix dovecot

freshclam; wait

systemctl stop nginx httpd named mariadb postfix dovecot

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

.

Ответ или решение

Ваша проблема с обновлением базы данных ClamAV на CentOS 7 с использованием freshclam может быть вызвана проблемами, связанными с нехваткой оперативной памяти, некорректной настройкой SELinux или настройками конфигурации ClamAV. Давайте разберём проблему пошагово и предложим возможные решения, основанные на том, что уже было упомянуто и на дополнительных рекомендациях.

Теория

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

Пример

Из вашего описания понятно, что сообщение об ошибке ("ERROR: Database load killed by signal 9" и "ERROR: Database test FAILED") связано с тем, что процесс обновления freshclam был завершён принудительно, что часто происходит при недостатке оперативной памяти. Это может быть связано с тем, что на виртуальной машине недостаточно RAM для выполнения всех необходимых задач.

Применение

1. Проверка и увеличение объема оперативной памяти

Как вы и другие источники указывают, желательно иметь хотя бы 1,5 ГБ оперативной памяти для обновления баз данных ClamAV. Если это возможно, увеличьте объем доступной памяти для вашей виртуальной машины. Проверьте текущую доступную память с помощью команды:

free -h

Если увеличение объема памяти невозможно, попробуйте временно отключить ненужные сервисы, чтобы освободить оперативную память:

systemctl stop <имя_сервиса>

Пример для отключения:

systemctl stop nginx httpd named mariadb postfix dovecot

Затем снова запустите freshclam:

freshclam

После обновления можете снова запустить службы:

systemctl start nginx httpd named mariadb postfix dovecot

2. Конфигурация SELinux

SELinux может блокировать выполнение определённых задач, связанных с ClamAV. Убедитесь, что SELinux настроен корректно. Вы можете изменять настройки с помощью команды:

setsebool -P antivirus_can_scan_system 1

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

3. Настройка конфигурационных файлов

Обновите конфигурационные файлы, убрав комментарий из строк, относящихся к актуальным настройкам. В файле /etc/clamd.d/scan.conf и /etc/freshclam.conf уберите ‘Example’ в начале строк:

sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
sed -i -e "s/^Example/#Example/" /etc/freshclam.conf

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

sed -i 's/^#LocalSocket \/run\/clamd.scan\/clamd.sock/LocalSocket \/run\/clamd.scan\/clamd.sock/' /etc/clamd.d/scan.conf

4. Автоматизация обновлений

Чтобы автоматизировать процесс обновления, убедитесь, что служба clamav-freshclam включена и работает:

systemctl enable clamav-freshclam.service
systemctl start clamav-freshclam.service

Также убедитесь, что демон ClamAV работает:

systemctl enable clamd@scan
systemctl start clamd@scan

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...