Подробный гайд для Kaspersky Endpoint Security for Linux (KESL) - источник обновлений и хранения
Подробный гайд для Kaspersky Endpoint Security for Linux (KESL).
Сразу разделю два разных сценария, потому что “путь к обновлениям” часто означает разное:
- Поменять источник обновлений — например, брать обновления не с Kaspersky Security Center / интернета, а из локальной папки.
- Поменять место хранения уже скачанных обновлений/баз — например,
/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, но логика такая:
- Открыть Kaspersky Security Center Web Console.
- Перейти в Policies / Политики.
- Открыть политику для Kaspersky Endpoint Security for Linux.
4. Найти раздел обновлений:
- Update
- или Обновление
- или Application settings → Update
5. Найти параметр:
- Update source
- Источник обновлений
6. Выбрать:
- Administration Server, если обновления идут с KSC;
- Folder / Local folder / Локальная папка, если нужно указать путь.
7. Указать путь, например:
/srv/kl-updates
- Сохранить политику.
- Дождаться применения политики на 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, а про домашний/десктопный продукт, там настройка обычно выполняется через графический интерфейс:
- Открыть Kaspersky.
- Перейти в Настройки.
- Найти раздел Обновление.
- Выбрать источник обновлений.
- Указать локальную папку.
Но в enterprise-сценариях почти всегда используется именно KESL и kesl-control.
Вывод команд:
kesl-control --get-task-list
kesl-control --get-task-settings 6
cat /etc/os-release
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.