Как запустить clamd с помощью systemd в качестве демона на Centos 7

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

# rpm -q centos-release
centos-release-7-5.1804.el7.centos.2.x86_64

# rpm -qa clam
clamav-filesystem-0.100.0-2.el7.noarch
clamav-data-0.100.0-2.el7.noarch
clamav-lib-0.100.0-2.el7.x86_64
clamav-update-0.100.0-2.el7.x86_64
clamav-server-systemd-0.100.0-2.el7.x86_64
clamav-devel-0.100.0-2.el7.x86_64
clamav-scanner-systemd-0.100.0-2.el7.x86_64
clamd-0.100.0-2.el7.x86_64
clamav-0.100.0-2.el7.x86_64

Ниже [email protected] как есть.

# cat /usr/lib/systemd/system/clamd\@.service
[Unit]
Description = демон сканера clamd (%i)
After = syslog.target nss-lookup.target network.target

[Service]
Type = forking
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf
Restart = on-failure

Я использую стандартную конфигурацию с настройками по умолчанию

# /etc/clamd.d/mail.conf
LogSyslog yes
TCPSocket 3310
TCPAddr 127.0.0.1
User clamscan

старт

После старта ошибок не было

# systemctl start clamd@mail

09:02:35 -- clamd[3644]: Ограничения: Глобальный лимит размера установлен на 104857600 байт.
09:03:39 -- clamd[3664]: Получено 0 файловых дескрипторов от systemd.
09:03:39 -- clamd[3664]: демон clamd 0.100.0 (ОС: linux-gnu, АРХ: x86_64, ЦП: x86_64)
09:03:39 -- clamd[3664]: Работает как пользователь clamscan (UID 992, GID 989)
09:03:39 -- clamd[3664]: Размер файла лога ограничен 1048576 байт.
09:03:39 -- clamd[3664]: Чтение баз данных из /var/lib/clamav
09:03:39 -- clamd[3664]: Подписи PUA не загружаются.
09:03:39 -- clamd[3664]: Байт-код: Режим безопасности установлен на "TrustSigned".
09:04:01 -- clamd[3664]: Загружено 6575820 подписей.
09:04:08 -- clamd[3664]: TCP: Привязано к [127.0.0.1]:3310
09:04:08 -- clamd[3664]: TCP: Установка длины очереди соединений на 200

статус

# systemctl status clamd@mail
● [email protected] - демон сканера clamd (rspamd)
Загружено: загружено (/usr/lib/systemd/system/[email protected]; статический; предустановка поставщика: отключено)
Активно: неактивно (мертво)

# lsof -i | grep 3310
Пусто

Похоже, что служба не была запущена как демон. Я пытался редактировать /usr/lib/systemd/system/[email protected], но не получил ожидаемого результата (она всегда перезапускается)

[Service]
Type = simple
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf --foreground=yes
Restart = on-failure

Проблема заключалась в оперативной памяти. Использовалось 512 Мб, после увеличения до 896 Мб проблема была решена.

Нет необходимости использовать --foreground=all для запуска службы. Этот параметр также может быть использован в /etc/clamd.d/mail.conf

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

Как запустить clamd как демон через systemd на CentOS 7

Запуск сервисов через systemd стал стандартом для современных дистрибутивов Linux. Этот метод оптимален для управления службами, так как предоставляет множество функций, таких как автоматический перезапуск и управление зависимостями. В этом руководстве мы рассмотрим, как запустить ClamAV Daemon (clamd) на CentOS 7 с использованием systemd.

Шаг 1: Установка необходимых пакетов

Для начала необходимо убедиться, что все необходимые пакеты ClamAV установлены. Судя по вашему запросу, вы уже имеете установленный пакет ClamAV. Однако для завершения процесса можно выполнить следующие команды:

sudo yum install epel-release
sudo yum install clamav clamav-update

Шаг 2: Настройка конфигурации clamd

Следующим шагом будет настройка конфигурационного файла для clamd. Один из основных файлов конфигурации обычно находится в /etc/clamd.d/mail.conf. В вашем случае он уже содержит основные настройки:

LogSyslog yes
TCPSocket 3310
TCPAddr 127.0.0.1
User clamscan

Параметры TCPSocket и TCPAddr указывают, что ClamAV Daemon будет слушать на локальном хосте и порту 3310, что является стандартным значением. Не забудьте удостовериться, что пользователь clamscan имеет достаточные права на доступ к файлам, которые вы собираетесь сканировать.

Шаг 3: Настройка systemd

Вы уже имеете файл сервиса clamd@.service, однако стоит обратить внимание на его параметры:

[Unit]
Description=clamd scanner (%i) daemon
After=syslog.target nss-lookup.target network.target

[Service]
Type=forking
ExecStart=/usr/sbin/clamd -c /etc/clamd.d/%i.conf
Restart=on-failure

Чтобы настроить систему для корректного завершения работы, убедитесь, что Type указывает на forking, что позволяет демону создавать дочерние процессы.

Шаг 4: Запуск службы

Чтобы запустить clamd, используйте следующую команду:

sudo systemctl start clamd@mail

Проверьте статус службы после попытки запуска:

sudo systemctl status clamd@mail

Если служба отображается как inactive (dead), это может указывать на проблемы с ресурсами. В вашем случае причиной была нехватка оперативной памяти. Вы увеличили объем памяти с 512 Мб до 896 Мб, что позволило успешно запустить службу.

Шаг 5: Перезапуск с параметрами отладки (необязательно)

Если служба по-прежнему не запускается должным образом, полезно включить отладочные параметры. Вы можете изменить конфигурацию, добавив флаг --foreground=yes в файл /etc/clamd.d/mail.conf. Это поможет вам увидеть ошибки, когда служба пытается запуститься.

Шаг 6: Логирование и мониторинг

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

sudo journalctl -u clamd@mail

Заключение

Запуск clamd через systemd на CentOS 7 представляет собой стойкий и надежный метод управления антивирусным демоном. Исправив проблемы с нехваткой памяти и правильно настроив конфигурационные файлы, вы сможете обеспечить защиту вашей системы от вредоносного ПО. Убедитесь, что ваши конфигурации всегда актуальны, а также следите за журналами на предмет возможных проблем.

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

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