Гайд: настройка локального сервера обновлений Kaspersky Endpoint Security 12.4 для Linux
В KES for Linux 12.4 изменилась схема параметров задачи обновления._instructions из старых статей (в т.ч. из базы знаний «Как настроить локальную папку в качестве источника обновлений», где используется SourceType=Custom + CustomSources.item_0000.URL) в 12.4 не работают — именно на этом спотыкаются люди на форуме с KESL 12.4.0‑1225.
| Версия | Как задаётся источник |
|---|---|
| 12.0 – 12.3 | параметр верхнего уровня SourceType + секции [CustomSources.item_#] (URL, Enabled) + UseKLServersWhenUnavailable |
| 12.4 | только секции [Sources.item_#], внутри каждой: Enabled, SourceType, URL. Параметра UseKLServersWhenUnavailable больше нет |
Значения SourceType в 12.4:
KLServers (серверы ЛК, по умолчанию), SCServer (Сервер администрирования KSC в вашей сети), Custom (свой источник — адрес задаётся в URL). Предустановленная задача — Update, ID:6.
Рабочая команда «в одну строку» (HTTP‑зеркало в локалке):
sudo kesl-control --set-settings 6 \
Sources.item_0000.Enabled=Yes \
Sources.item_0000.SourceType=Custom \
Sources.item_0000.URL=http://192.168.10.20/Updates/
sudo kesl-control --start-task 6 -W --progress
1. Выбор схемы: что считать «сервером обновлений в локальной сети»
Поддерживаются: серверы ЛК, хранилище Сервера администрирования KSC, локальная/сетевая папка (SMB/NFS), смонтированная пользователем, FTP/HTTP/HTTPS‑сервер.
| Сценарий | Что ставить в SourceType |
Когда применять |
|---|---|---|
| A. KSC как источник | SCServer |
есть KSC + Агент администрирования на хосте (централизованная схема) |
| B. Своё HTTP/HTTPS/FTP‑зеркало | Custom + URL=http://host/Updates/ |
много Linux‑хостов, нужен один внутренний «сервер баз» |
| C. Общая папка SMB/NFS или локальный каталог | Custom + URL=/mnt/kesl-bases/ |
изолированный сегмент, файлопомойка, флешка |
Если приложение работает в режиме Лёгкого агента (KSVLA), базы приходят из каталога на SVM — эта настройка не применяется.
2. Подготовка (общая для всех вариантов)
sudo kesl-control --app-info # версия, применена ли политика KSC, состояние баз
sudo kesl-control --get-task-list # убедиться, что задача Update имеет ID 6
sudo kesl-control --get-settings 6 # ТЕКУЩАЯ схема параметров вашего билда
Вывод --get-settings 6 в 12.4 по умолчанию выглядит так:
ConnectionTimeout=10
ApplicationUpdateMode=DownloadOnly
[Sources.item_0000]
Enabled=Yes
SourceType=KLServers
URL=
Если хост под политикой KSC — локальные правки kesl-control будут перетёрты политикой/групповой задачей. Настраивайте источник централизованно (раздел 6) либо снимайте «замок» с параметра в политике.
3. Вариант A. Сервер администрирования KSC как источник
На хосте:
sudo kesl-control --set-settings 6 \
Sources.item_0000.Enabled=Yes \
Sources.item_0000.SourceType=SCServer \
Sources.item_0000.URL=
На стороне KSC:
- Задача «Загрузка обновлений в хранилище Сервера администрирования» — качает пакет в репозиторий (расписание: каждые N часов).
- Групповая задача «Обновление» для KESL: источник — Kaspersky Security Center.
- В расписании групповой задачи выберите «При загрузке обновлений в хранилище» — клиенты обновятся сразу после появления свежего пакета.
Плюс схемы: минимум внешнего трафика и централизованный мониторинг.
4. Вариант B. Своё зеркало баз в LAN (HTTP/HTTPS/FTP)
4.1. Наполняем зеркало — Kaspersky Update Utility 4
На машине‑«ретрансляторе» (с интернетом или с доступом к KSC):
mkdir -p /opt/kaspersky/kuu && cd /opt/kaspersky/kuu
tar -xvf /tmp/kuu4.*_x86_64_ru.tar.gz
chown -R root:root ./
В updater.ini:
[ComponentSettings]
KasperskyEndpointSecurityForLinux_12_4_0=true
MoveToCurrentFolder=false
MoveToCustomFolder=true
UpdatesFolder=/var/opt/kaspersky/kuu
DownloadLocalizations=ru; en
Запуск и автоматизация (консольная версия, GUI не нужен):
./uu-console.sh -s -u -t -r # первый запуск: принять EULA/PP/KSN
# cron: каждые 4 часа
*/4 * * * * /opt/kaspersky/kuu/uu-console.sh --accepteula --acceptprivacypolicy --acceptksn -u
Результат — каталог Updates (например /var/opt/kaspersky/kuu/Updates). Именно его целиком и нужно отдавать клиентам: указывать подпапку с отдельными файлами нельзя.
Если KUU качает не с серверов ЛК, а из хранилища KSC Linux 15.3+, используйте файл retranslation_request.xml и включите в задаче загрузки флажок «Загружать обновления, используя старую схему».
Публикуем каталог (nginx):
server {
listen 80;
server_name kesl-mirror.corp.local;
root /srv/kesl-mirror;
location /Updates/ {
autoindex on;
allow 192.168.0.0/16;
deny all;
}
}
rsync -a --delete-after --delay-updates /var/opt/kaspersky/kuu/Updates/ /srv/kesl-mirror/Updates/
chmod -R a+rX /srv/kesl-mirror
# SELinux (RHEL/Alma/RED OS):
semanage fcontext -a -t httpd_sys_content_t "/srv/kesl-mirror(/.*)?"; restorecon -Rv /srv/kesl-mirror
curl -I http://kesl-mirror.corp.local/Updates/ # проверка доступности
4.2. Настройка клиента
sudo kesl-control --set-settings 6 \
Sources.item_0000.Enabled=Yes \
Sources.item_0000.SourceType=Custom \
Sources.item_0000.URL=http://kesl-mirror.corp.local/Updates/ \
ConnectionTimeout=20
FTP — аналогично: URL=ftp://192.168.10.20/Updates/.
HTTPS:
Нужна корректная цепочка сертификатов; самоподписанный сертификат допустим только как корневой и должен быть добавлен в доверенные на устройстве (Debian/Astra: /usr/local/share/ca-certificates/ + update-ca-certificates; RHEL‑семейство: /etc/pki/ca-trust/source/anchors/ + update-ca-trust).
5. Вариант C. Сетевая папка SMB/NFS или локальный каталог
KESL не монтирует шары сам — путь в URL должен быть уже смонтирован в ОС.
sudo mkdir -p /mnt/kesl-bases
/etc/fstab:
# NFS
192.168.10.20:/srv/kesl-mirror/Updates /mnt/kesl-bases nfs ro,_netdev,soft,timeo=100 0 0
# SMB/CIFS
//fileserver/kesl-bases /mnt/kesl-bases cifs ro,_netdev,credentials=/etc/kesl-bases.cred,vers=3.0,iocharset=utf8 0 0
sudo chmod 600 /etc/kesl-bases.cred # username= / password= / domain=
sudo systemctl daemon-reload && sudo mount -a && ls /mnt/kesl-bases
sudo kesl-control --set-settings 6 \
Sources.item_0000.Enabled=Yes \
Sources.item_0000.SourceType=Custom \
Sources.item_0000.URL=/mnt/kesl-bases/
Нюансы:
Каталог должен читаться учётной записью, под которой работает KES (root); на Astra Linux со включённым мандатным контролем проверьте метки/уровень доступа к каталогу; для того чтобы воспользоваться офлайн‑версией, достаточно просто скопировать Updates на флешку и укажите путь её монтирования.
6. Несколько источников и приоритеты (правильный способ — через файл)
sudo kesl-control --get-settings 6 --file /root/update.ini
sudo nano /root/update.ini
ConnectionTimeout=15
ApplicationUpdateMode=DownloadOnly
[Sources.item_0000]
Enabled=Yes
SourceType=Custom
URL=http://kesl-mirror.corp.local/Updates/
[Sources.item_0001]
Enabled=Yes
SourceType=SCServer
URL=
[Sources.item_0002]
Enabled=No
SourceType=KLServers
URL=
sudo kesl-control --set-settings 6 --file /root/update.ini
Источники перебираются сверху вниз по индексу item_#, обновление берётся с первого доступного; ConnectionTimeout (0–120 с, по умолчанию 10) — время ожидания ответа перед переходом к следующему.
Изолированный сегмент:
Jставьте включённым только локальный источник, KLServers — Enabled=No. В 12.4 отдельного «фолбэка» UseKLServersWhenUnavailable нет — резервный источник задаётся отдельной секцией.
Хотя бы один источник должен быть Enabled=Yes.
ApplicationUpdateMode:Disabled/DownloadOnly(по умолчанию) /DownloadAndInstall— режим автопатчей самого приложения.- Сброс к заводским:
sudo kesl-control --set-settings 6 --set-to-default.
Через KSC (Web Console / Консоль администрирования):
Cвойства задачи Обновление → Параметры приложения → Источники обновлений → вариант «Другие источники в локальной или глобальной сети» → Добавить → путь/URL (должен совпадать с тем, что настроен в KUU) → флажок «Использовать этот источник» → порядок кнопками Вверх/Вниз → Сохранить. Там же задаются таймаут и режим автопатчей.
7. Расписание и автоустановка
# каждые 6 часов, со случайным разбросом до 30 минут
sudo kesl-control --set-schedule 6 RuleType=Hourly StartTime="03:00:00;6" RandomInterval=30
sudo kesl-control --get-schedule 6
RuleType: Manual, Once, Minutely, Hourly, Daily, Weekly, Monthly, PS (после старта приложения), BR (после обновления баз).
При развёртывании «с нуля» источник задаётся в файле первоначальной настройки (autoinstall.ini):
UPDATER_SOURCE=http://kesl-mirror.corp.local/Updates/
UPDATE_EXECUTE=Yes
UPDATER_SOURCE принимает SCServer, KLServers или адрес своего источника; UPDATE_EXECUTE=Yes запускает обновление сразу при установке.
8. Проверка и диагностика
sudo kesl-control --get-settings 6 # источник реально записан?
sudo kesl-control --start-task 6 -W --progress # запуск с выводом событий и прогресса
sudo kesl-control --get-task-state 6
sudo kesl-control --app-info # «Дата последнего выпуска баз приложения», «Базы приложения загружены»
sudo kesl-control -E --query "EventType == 'TaskStateChanged'" -n 50 --reverse
Трассировка при упорных ошибках:
sudo kesl-control --set-app-settings TraceLevel=Detailed # файлы: /var/log/kaspersky/kesl
# после диагностики: TraceLevel=None
| Симптом | Причина / решение |
|---|---|
Ошибка «неизвестный параметр» на SourceType=Custom, CustomSources... |
синтаксис 12.0–12.3. В 12.4 — Sources.item_0000.SourceType=Custom, Sources.item_0000.URL=... |
| Задача стартует, но базы не обновляются | указан не тот каталог: нужен весь Updates со служебными файлами; для HTTP — завершающий /; проверьте curl/ls |
| Всё равно тянет с серверов ЛК | включённый item_# с KLServers стоит выше или локальный Enabled=No; в изолированной сети выключите KLServers |
| Настройки «откатываются» назад | активна политика KSC / групповая задача — правьте в политике |
| «Источник недоступен» на SMB/NFS | шара не смонтирована на момент запуска (_netdev, automount, проверка монтирования перед задачей) |
| Ошибка сертификата HTTPS | неполная цепочка / self-signed не корневой — добавьте корневой в доверенные |
| Долгие таймауты | увеличьте ConnectionTimeout (0 = без ограничения) |
| Permission denied на HTTP/каталоге | права a+rX, контекст SELinux httpd_sys_content_t, мандатные метки Astra |
Откат баз, если новое обновление ломает работу: предустановленная задача Rollback (параметров не имеет) — sudo kesl-control --get-task-list, затем --start-task <ID Rollback>.
9. Шпаргалка
# KSC:
kesl-control --set-settings 6 Sources.item_0000.Enabled=Yes Sources.item_0000.SourceType=SCServer Sources.item_0000.URL=
# HTTP-зеркало:
kesl-control --set-settings 6 Sources.item_0000.Enabled=Yes Sources.item_0000.SourceType=Custom Sources.item_0000.URL=http://host/Updates/
# Папка (SMB/NFS/локальная):
kesl-control --set-settings 6 Sources.item_0000.Enabled=Yes Sources.item_0000.SourceType=Custom Sources.item_0000.URL=/mnt/kesl-bases/
# Проверка:
kesl-control --get-settings 6 && kesl-control --start-task 6 -W --progress && kesl-control --app-info
Источники (справка KESL 12.4, актуальна на ноябрь 2026):
- Параметры задачи Обновление (CLI): https://support.kaspersky.ru/kes-for-linux/12.4.0/264104
- Параметры по умолчанию Update (ID:6): https://support.kaspersky.ru/kes-for-linux/12.4.0/197292
- Команды управления параметрами задач: https://support.kaspersky.ru/kes-for-linux/12.4.0/264318
- Обновление через KUU: https://support.kaspersky.ru/kes-for-linux/12.4.0/264970
- Настройка в Web Console: https://support.kaspersky.ru/kes-for-linux/12.4.0/265018
- Параметры первоначальной настройки: https://support.kaspersky.ru/kes-for-linux/12.4.0/197289
- Расписание задач: https://support.kaspersky.ru/kes-for-linux/12.4.0/261123
- KUU 4 для Linux из командной строки: https://support.kaspersky.ru/kuu4-for-linux/howto/15702
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.