Подробный гайд для Kaspersky Endpoint Security for Linux (KESL) - источник обновлений и хранения

Подробный гайд по смене источника и пути хранения обновлений Kaspersky Endpoint Security for Linux. Настройка KESL через CLI, KSC, bind-mount и SELinux.

2026.08.03                  


Подробный гайд для Kaspersky Endpoint Security for Linux (KESL) - источник обновлений и храненияПодробный гайд для Kaspersky Endpoint Security for Linux (KESL) - источник обновлений и хранения Подробный гайд для Kaspersky Endpoint Security for Linux (KESL).

Сразу разделю два разных сценария, потому что “путь к обновлениям” часто означает разное:

  1. Поменять источник обновлений — например, брать обновления не с Kaspersky Security Center / интернета, а из локальной папки.
  2. Поменять место хранения уже скачанных обновлений/баз — например, /var/opt/kaspersky/... занимает место, и нужно перенести данные на другой диск.

0. Что важно проверить перед началом

1. Работайте от root

Команды KESL требуют root:

sudo -i

или используйте sudo перед каждой командой.


2. Узнайте, управляется ли KESL политикой KSC

Если Linux-хост управляется через Kaspersky Security Center, то локальные изменения могут перезаписываться политикой. Проверить установленные задачи и настройки можно локально, но если после перезагрузки/синхронизации настройки возвращаются — менять путь нужно в политике KSC.


3. Сделайте резервную копию конфигурации

Обычно конфигурация KESL находится в /etc/opt/kaspersky/kesl/.

mkdir -p /root/kesl-backup
cp -a /etc/opt/kaspersky/kesl /root/kesl-backup/kesl-config-$(date +%F-%H%M)

Если путь не существует, проверьте фактический:

find /etc -iname '*kesl*' 2>/dev/null

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

Это случай, когда вам нужно, чтобы KESL брал обновления из папки вида:

/srv/kl-updates
/mnt/updates
/opt/kaspersky-updates

Шаг 1. Найти задачу обновления

Посмотреть список задач:

kesl-control --get-task-list

Ищите задачу со словом Update или Обновление.


Пример вывода условно:

ID  Name
1   File Threat Protection
2   Web Threat Protection
...
6   Update

Запомните ID задачи обновления. Чаще всего это 6, но лучше проверить.


Если хотите найти автоматически:

kesl-control --get-task-list | grep -Ei 'update|обновлен'

Дальше для примера буду использовать ID 6. Если у вас другой — подставьте свой.


Шаг 2. Посмотреть текущие настройки задачи обновления

kesl-control --get-task-settings 6

Если задача называется Update и версия принимает имя, можно:

kesl-control --get-task-settings Update

Но надежнее использовать ID.


Чтобы отфильтровать параметры, связанные с источником обновлений:

kesl-control --get-task-settings 6 | grep -Ei 'source|path|folder|dir|url|update|server'

В разных версиях KESL названия параметров могут немного отличаться.

Типично встречаются:

SourceType=...
LocalFolderPath=...
LocalFolder=...
SourcePath=...
UseKLServer=...

Это важно: сначала посмотрите, какие ключи есть именно у вас, затем меняйте их тем же именем.


Шаг 3. Создать папку для обновлений

Например:

mkdir -p /srv/kl-updates
chmod 755 /srv/kl-updates

Если обновления будут лежать на сетевой шаре, сначала примонтируйте ее. Например, для CIFS:

mkdir -p /srv/kl-updates

/etc/fstab:

//server/updates /srv/kl-updates cifs ro,credentials=/etc/kl-updates.cred,iocharset=utf8,file_mode=0644,dir_mode=0755,nofail,_netdev 0 0

Файл с учетными данными /etc/kl-updates.cred:

username=your_user
password=your_password

Права:

chmod 600 /etc/kl-updates.cred

Примонтировать:

systemctl daemon-reload
mount -a

Проверить:

mount | grep /srv/kl-updates
ls -la /srv/kl-updates

Каталог должен быть доступен для чтения процессу KESL. Обычно достаточно прав на чтение, но если используете SELinux/AppArmor, могут быть дополнительные ограничения.


Шаг 4. Скопировать обновления в папку

В папке должны быть не произвольные файлы, а корректная структура обновлений Kaspersky, обычно полученная из Kaspersky Security Center или другого источника обновлений. Если вы копируете обновления с KSC, копируйте структуру целиком, не выбирая отдельные файлы вручную.


Проверить содержимое:

ls -laR /srv/kl-updates | head

Шаг 5. Переключить источник обновлений на локальную папку

Типичный вариант:

kesl-control --set-task-settings 6 SourceType=LocalFolder

Затем указать путь:

kesl-control --set-task-settings 6 LocalFolderPath=/srv/kl-updates

Если в вашей версии параметр называется LocalFolder, команда будет:

kesl-control --set-task-settings 6 LocalFolder=/srv/kl-updates

Если SourcePath:

kesl-control --set-task-settings 6 SourcePath=/srv/kl-updates

Поэтому правильный универсальный подход:

kesl-control --get-task-settings 6 > /root/kesl-backup/update-task-6-before.txt
grep -Ei 'source|path|folder|dir|server' /root/kesl-backup/update-task-6-before.txt

Затем меняете найденный ключ.


Пример, если видите:

SourceType=KLServer
LocalFolderPath=

то выполняете:

kesl-control --set-task-settings 6 SourceType=LocalFolder
kesl-control --set-task-settings 6 LocalFolderPath=/srv/kl-updates

Если видите:

SourcePath=

то:

kesl-control --set-task-settings 6 SourceType=LocalFolder
kesl-control --set-task-settings 6 SourcePath=/srv/kl-updates

Шаг 6. Проверить, что настройки применились

kesl-control --get-task-settings 6 | grep -Ei 'source|path|folder|dir'

Вы должны увидеть что-то вроде:

SourceType=LocalFolder
LocalFolderPath=/srv/kl-updates

Шаг 7. Запустить обновление вручную

kesl-control --start-task 6

Если у вас другой ID задачи, замените 6.


Проверить состояние:

kesl-control --get-task-state 6

Также можно смотреть в цикле:

watch -n 2 'kesl-control --get-task-state 6'

Шаг 8. Посмотреть логи при ошибке

Логи KESL обычно находятся в /var/log/kaspersky/kesl/:

tail -n 100 /var/log/kaspersky/kesl/*.log

Также полезно:

journalctl -u kesl -n 100 --no-pager

Если служба называется иначе:

systemctl list-units --type=service --all | grep -Ei 'kesl|kaspersky'

Если KESL управляется через Kaspersky Security Center

Если хост получает политику из KSC, локальная смена пути может не сохраниться. В этом случае менять источник обновлений нужно в политике.

Через KSC Web Console

Примерный путь может отличаться в зависимости от версии KSC, но логика такая:

  1. Открыть Kaspersky Security Center Web Console.
  2. Перейти в Policies / Политики.
  3. Открыть политику для Kaspersky Endpoint Security for Linux.
4. Найти раздел обновлений:
  • Update
  • или Обновление
  • или Application settings → Update

5. Найти параметр:
  • Update source
  • Источник обновлений

6. Выбрать:
  • Administration Server, если обновления идут с KSC;
  • Folder / Local folder / Локальная папка, если нужно указать путь.

7. Указать путь, например:
/srv/kl-updates
  1. Сохранить политику.
  2. Дождаться применения политики на Linux-хосте.

Если политика заблокирована, локальные команды будут давать временный эффект или не будут применяться.


Вариант 2. Перенести хранение обновлений/баз KESL на другой диск

Если вам нужно не поменять источник, а перенести сами файлы KESL, например потому что /var/opt/kaspersky разросся, лучше использовать bind mount, а не простую символическую ссылку.


Обычно данные KESL находятся здесь:

/var/opt/kaspersky/kesl

Проверить:

du -xh --max-depth=2 /var/opt/kaspersky

или:

find /var/opt/kaspersky -maxdepth 2 -type d

Шаг 1. Остановить KESL

Сначала проверьте службу:

systemctl list-units --type=service --all | grep -Ei 'kesl|kaspersky'

Чаще всего служба называется kesl.


Остановить:

systemctl stop kesl

Если используется Network Agent KSC, его тоже можно остановить, чтобы не мешал:

systemctl stop klnagent

Если служба называется иначе, используйте фактическое имя из systemctl list-units.


Шаг 2. Создать новое место

Например, новый каталог на другом разделе:

mkdir -p /mnt/kl-data/kesl

Шаг 3. Скопировать данные с сохранением прав

Очень важно копировать с сохранением владельцев, прав, ACL и атрибутов:

rsync -aHAX --numeric-ids /var/opt/kaspersky/kesl/ /mnt/kl-data/kesl/

Проверить, что данные скопировались:

du -sh /var/opt/kaspersky/kesl /mnt/kl-data/kesl

Шаг 4. Переименовать старый каталог

mv /var/opt/kaspersky/kesl /var/opt/kaspersky/kesl.old

Шаг 5. Создать пустую точку монтирования

mkdir -p /var/opt/kaspersky/kesl

Шаг 6. Выполнить bind mount

mount --bind /mnt/kl-data/kesl /var/opt/kaspersky/kesl

Проверить:

mount | grep /var/opt/kaspersky/kesl

Шаг 7. Сделать монтирование постоянным

Добавить строку в /etc/fstab:

echo '/mnt/kl-data/kesl /var/opt/kaspersky/kesl none bind 0 0' >> /etc/fstab

Проверить fstab без перезагрузки:

umount /var/opt/kaspersky/kesl
mount -a
mount | grep /var/opt/kaspersky/kesl

Если mount -a отрабатывает без ошибок, можно запускать KESL.


Шаг 8. Запустить KESL

systemctl start kesl

Если останавливали Network Agent:

systemctl start klnagent

Проверить статус:

systemctl status kesl

Проверить состояние задач:

kesl-control --get-task-list
kesl-control --get-task-state 6

Шаг 9. Убедиться, что все работает

Запустить обновление:

kesl-control --start-task 6

Смотреть состояние:

kesl-control --get-task-state 6

Смотреть логи:

tail -n 100 /var/log/kaspersky/kesl/*.log
journalctl -u kesl -n 100 --no-pager

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

rm -rf /var/opt/kaspersky/kesl.old

Не удаляйте его сразу, пока не убедитесь, что KESL стабильно работает и обновляется.


Если используется SELinux

На RHEL/Oracle Linux/CentOS/Rocky/AlmaLinux KESL может блокироваться SELinux, если новый путь имеет неправильный контекст.

Проверить denials:

ausearch -m avc -ts recent

или:

dmesg | grep -i denied

Если есть запреты, нужно либо:

  • размещать данные в каталоге, который уже разрешен политике KESL;
  • копировать SELinux-контекст с исходного каталога;
  • создавать локальный модуль политики через audit2allow.

Быстрая проверка контекста:

ls -Z /var/opt/kaspersky/kesl.old
ls -Z /mnt/kl-data/kesl

Если контексты разные, можно временно проверить, в SELinux ли дело:

setenforce 0

Затем повторить запуск KESL. Если с setenforce 0 заработало, значит нужно правильно настроить контексты или политику, а не оставлять SELinux выключенным.


Если используется AppArmor

На Ubuntu/SUSE может мешать AppArmor.

Проверить:

dmesg | grep -i apparmor | grep -i denied
journalctl | grep -i apparmor | grep -i denied

Если есть denials, нужно корректировать профиль AppArmor для KESL или размещать данные в разрешенном пути.


Как вернуть настройки обратно

Если нужно вернуть источник обновлений с локальной папки на KSC/KLServer, обычно достаточно:

kesl-control --set-task-settings 6 SourceType=KLServer

или восстановить исходные значения из сохраненного файла:

cat /root/kesl-backup/update-task-6-before.txt

Если меняли хранение через bind mount, возврат такой:

systemctl stop kesl
umount /var/opt/kaspersky/kesl
rmdir /var/opt/kaspersky/kesl
mv /var/opt/kaspersky/kesl.old /var/opt/kaspersky/kesl
systemctl start kesl

После этого удалите строку bind mount из /etc/fstab:

nano /etc/fstab

Затем:

systemctl daemon-reload

Короткий рабочий алгоритм для смены источника обновлений

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

# 1. Смотрим задачи
kesl-control --get-task-list

# 2. Допустим, задача Update имеет ID 6
kesl-control --get-task-settings 6 > /root/update-task-6-before.txt

# 3. Ищем параметры источника
grep -Ei 'source|path|folder|dir|server' /root/update-task-6-before.txt

# 4. Создаем папку
mkdir -p /srv/kl-updates
chmod 755 /srv/kl-updates

# 5. Копируем туда обновления от KSC/другого источника
# cp -a /путь/к/правильным/обновлениям/* /srv/kl-updates/

# 6. Меняем источник
kesl-control --set-task-settings 6 SourceType=LocalFolder
kesl-control --set-task-settings 6 LocalFolderPath=/srv/kl-updates

# 7. Проверяем
kesl-control --get-task-settings 6 | grep -Ei 'source|path|folder'

# 8. Запускаем обновление
kesl-control --start-task 6

# 9. Смотрим результат
kesl-control --get-task-state 6

Важно

1. Не указывайте путь с пробелами без необходимости.

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

   kesl-control --set-task-settings 6 LocalFolderPath="/srv/kl updates"

2. Папка с обновлениями должна быть читаемой.

Для источника обновлений обычно достаточно read-only доступа.


3. Не используйте домашние каталоги пользователей.

Лучше:

   /srv/kl-updates
   /mnt/kl-updates
   /var/opt/kl-updates

4. Если путь сетевой, он должен быть примонтирован до запуска KESL.

Добавьте mount в /etc/fstab или systemd mount-unit.


5. Если хост управляется KSC, локальные настройки могут затираться.

В этом случае меняйте источник в политике.


6. Если вы меняете именно место хранения баз, лучше bind mount, а не symlink.

Symlink иногда приводит к проблемам с правами, службами и обновлениями пакета.


Если у вас не KESL, а домашний Kaspersky Anti-Virus for Linux

Если речь не про корпоративный Kaspersky Endpoint Security for Linux, а про домашний/десктопный продукт, там настройка обычно выполняется через графический интерфейс:

  1. Открыть Kaspersky.
  2. Перейти в Настройки.
  3. Найти раздел Обновление.
  4. Выбрать источник обновлений.
  5. Указать локальную папку.

Но в enterprise-сценариях почти всегда используется именно KESL и kesl-control.


Вывод команд:

kesl-control --get-task-list
kesl-control --get-task-settings 6
cat /etc/os-release

Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (5)(531)(30)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта