PoC-гайд по установке Kaspersky EDR Expert (on-premise) 8.0
Инструкция составлена на основе официальной документации и опыта эксплуатации
Часть 1. Типы установки
| Параметр |
Стандартная конфигурация (несколько узлов) |
Демонстрационная конфигурация (один узел) |
| СУБД PostgreSQL | Устанавливается вне кластера Kubernetes на отдельном сервере | Устанавливается внутри кластера Kubernetes |
| Минимальное количество узлов |
1 первичный + 3 рабочих узла + сервер СУБД + 1 узел администратора (опционально) |
1 узел (все компоненты на одном устройстве) + 1 узел администратора (опционально) |
| Назначение | Промышленная эксплуатация | Тестирование, демонстрация, обучение |
Роли узлов:
- Узел администратора - устройство с утилитой KDT (Kaspersky Deployment Toolkit) для развертывания и управления компонентами OSMP.
- Primary/master/controller/первичный рабочий узел - узел контроллера, осуществляющий управление кластером k0s.
- Worker/рабочий узел - узел кластера k0s с полезной нагрузкой.
- DB/СУБД - сервер с СУБД для кластера OSMP.
- KUMA services/устройство с сервисами KUMA - устройства с установленными сервисами KUMA: коллектор, коррелятор, хранилище (в случае KEDR входят в состав Kubernetes кластера).
- Целевые устройства - устройства, на которых устанавливается OSMP (все вышеперечисленные узлы)
Часть 2. Критические требования инфраструктуры
2.1. СУБД PostgreSQL
| Параметр | Требование |
| Версия | 15.7 или выше |
| Расположение | Вне кластера Kubernetes (стандартная конфигурация) |
| Привилегированная учётная запись | Требуется учётная запись с правами суперпользователя для создания баз данных во время развертывания |
| Поддержка кластеров | Поддерживается синхронная репликация (минимум 3 узла, максимум 15). |
| Дисковая подсистема | SSD/NVMe рекомендуется |
2.2. Сетевые требования
| Требование | Описание |
| Широковещательный домен | Все целевые устройства кластера Kubernetes должны находиться в одном широковещательном домене (одна L2-сеть) |
| Статические IPv4-адреса | Все узлы кластера и шлюз Kubernetes должны иметь статические IPv4-адреса в одной подсети |
| Синхронизация времени | Разница во времени между узлами не должна превышать 5 секунд (рекомендуется использовать NTP) |
| DNS | Должна быть настроена зона для домена smp_domain (например, smp.local) с записями для всех сервисов |
2.3. Аппаратные требования (минимальные)
| Компонент | Процессор | ОЗУ | Дисковая подсистема |
| Все компоненты на одном узле (демонстрационная конфигурация) | 12 ядер | 56 Гб | 600 Гб |
Для корректного развертывания решения убедитесь, что процессор целевого устройства (компонентов KEDR) поддерживает набор инструкций BMI, AVX и SSE 4.2.
2.4. Программные требования
Требования к программному обеспечению и поддерживаемым системам и платформам
| Операционная система | |
| Платформы виртуализации | |
| Система управления базами данных (СУБД) |
PostgreSQL 15.х 64-разрядная PostgreSQL 16.x 64-разрядная PostgreSQL 17.х 64-разрядная Postgres Pro 15.х (все редакции) 64-разрядная Postgres Pro 16.х (все редакции) 64-разрядная Postgres Pro 17.х (все редакции) 64-разрядная Postgres Pro 16.х Enterprise 64-разрядная (кластер Built-in High Availability). Postgres Pro 17 Enterprise 64-разрядная (кластер Built-in High Availability). |
Часть 3. Подготовка устройств
Отключайте файл подкачки (swap) в продуктовых средах
Устройство администратора:
- Установка обязательных пакетов на устройстве администратора:
sudo apt update
sudo apt install -y python3
Установите пакет для Docker версии 23 или выше, а затем выполните действия после установки, чтобы настроить устройство администрирования для правильной работы с Docker.
- Генерация SSH-ключа (без парольной фразы):
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
Скопируйте ключ на все целевые устройства:
ssh-copy-id username@<IP_целевого_устройства>
#Проверка подключения без пароля
ssh username@<IP_целевого_устройства> "sudo whoami"
При установке от учётной записи root убедитесь, что ключ на целевых устройствах располагается по путь /root/.ssh/*
Целевые устройства (OSMP):
- Установка обязательных пакетов:
# Общие пакеты для всех узлов:
sudo apt update
sudo apt install -y sudo nfs-common tar wireguard wireguard-tools python3-apt
# Для первичного узла дополнительно:
sudo apt install -y curl
# Для рабочих узлов дополнительно:
sudo apt install -y libnfs12 iscsi-package
- Настройка беспарольного sudo:
# Для пользователя, который будет использоваться KDT:
echo "username ALL=(ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers
Это позволит учетной записи иметь возможность повышать привилегии (sudo) без ввода пароля
- Настройка синхронизации времени:
sudo timedatectl set-ntp true
- Настройка IP-переадресации (только для первичного узла с UFW):
# В файле /etc/default/ufw установите:
DEFAULT_FORWARD_POLICY="ACCEPT"
# Примените изменения:
sudo ufw reload
СУБД PostgreSQL:
- Установка обязательных пакетов:
sudo apt update
sudo apt install -y postgresql
- Настройка параметров в postgresql.conf:
nano /etc/postgresql/<ВЕРСИЯ>/main/postgresql.conf
#Переопределите следующие параметры:
port = 5432
shared_buffers = 8GB # 25-40% от ОЗУ, минимум 3 ГБ
max_connections = 512
work_mem = 16MB
maintenance_work_mem = 128MB
max_stack_depth = 4096 # Для Linux: ulimit -s минус 1 МБ
temp_buffers = 24MB
max_parallel_workers_per_gather = 0
standard_conforming_strings = on # Обязательно должно быть 'on'
log_hostname = 1
- Разрешение удаленного подключения к СУБД:
nano /etc/postgresql/<ВЕРСИЯ>/main/pg_hba.conf
#В секции 'IPv4 local connections' переопределите значение:
host all all 0.0.0.0/0 scram-sha-256
- Перезапуск службы:
systemctl restart postgresql
- Создание привилегированной учётной записи:
#Подключитесь к PostgreSQL:
sudo -u postgres psql
#Создайте учётную запись с правами суперпользователя:
CREATE USER kaspersky_admin WITH PASSWORD 'StrongPassword123!' SUPERUSER;
Подготовка инфрастурктуры:
1. Зарезервируйте IP-адрес из той же подсети, что и у серверов Primary/Worker. Адрес должен быть свободен и будет назначен в процессе установки (указывается в файле param.yaml в поле ingress_ip).
2. Добавьте в DNS-зону вашей организации (предпочтительно создать поддомен) следующие записи:
console.<smp_domain> <ingress_ip>
admsrv.<smp_domain> <ingress_ip>
api.<smp_domain> <ingress_ip>
monitoring.<smp_domain> <ingress_ip>
updater.<smp_domain> <ingress_ip>
agentserver.<smp_domain> <ingress_ip>
kuma.<smp_domain> <ingress_ip>
*.kuma.<smp_domain> <ingress_ip>
где, <smp_domain> - домен или поддомен вашей организации (данный домен должен быть указан в файле параметров (param.yaml) в одноименном поле smp_domain), а <ingress_ip> - зарезервированный IP из предыдущего пункта.
Обратите внимание, что для имени kuma необходимо создать wildcard (*) на DNS-сервере
Часть 4. Этапы установки
Подготовка файла param.yaml:
Для корректной работы KDT с конфигурационным файлом добавьте пустую строку в конце файла
Формат файла для стандартной конфигурации с сервисами KUMA внутри кластера
schemaType: ParameterSet
schemaVersion: 1.0.1
namespace: ""
name: bootstrap
project: xdr
nodes:
- desc: cdt-primary1
type: primary
host: "<IPv4_первичного_узла>"
access:
ssh:
user: "<имя_пользователя>" # По умолчанию root
key: "<путь_к_закрытому_ключу>" # По умолчанию /root/.ssh/id_rsa
- desc: cdt-w1
type: worker
host: "<IPv4_рабочего_узла_1>"
access:
ssh:
user: "<имя_пользователя>"
key: "<путь_к_закрытому_ключу>"
kind: admsrv # Сервер администрирования будет установлен на этом узле
- desc: cdt-w2
type: worker
host: "<IPv4_рабочего_узла_2>"
access:
ssh:
user: "<имя_пользователя>"
key: "<путь_к_закрытому_ключу>"
kuma_roles: ["storage"] # Хранилище закреплено за этим узлом
- desc: cdt-w3
type: worker
host: "<IPv4_рабочего_узла_3>"
access:
ssh:
user: "<имя_пользователя>"
key: "<путь_к_закрытому_ключу>"
parameters:
- name: psql_dsn
source:
value: "postgres://<dbms_username>:<password>@<fqdn_СУБД>:<порт_СУБД>" # Если пароль содержит спецсимволы, их необходимо привести к URI кодировке
- name: ingress_ip
source:
value: "<IPv4_шлюза_кластера_Kubernetes>" # Ранее зарезервированный ingress_ip
- name: ssh_pk
source:
path: "<путь_к_закрытому_ключу_на_устройстве_администратора>"
- name: admin_password
source:
value: "<пароль_учётной_записи_admin>"
- name: core_disk_request
source:
value: "512Gi"
- name: inventory
source:
value: "/dev/null" # Все сервисы KUMA будут внутри кластера Kubernetes
- name: license
source:
value: "<путь_к_лицензионному_ключу>" # Рекомендуется файл переименовать в license.key
- name: smp_domain
source:
value: "<доменное_имя>"
- name: pki_host_list
source:
value: "admsrv api console kuma monitoring agentserver updater"
- name: low_resources
source:
value: false
- name: nwc-language
source:
value: "ruRu" # Или "enUS"
- name: skip_preflight_checks
source:
value: false
- name: openbao_ha_mode
source:
value: true
Формат файла для демонстрационной конфигурации с сервисами KUMA внутри кластера
schemaType: ParameterSet
schemaVersion: 1.0.1
namespace: ""
name: bootstrap
project: xdr
nodes:
- desc: "single-node"
type: primary-worker
host: "<IPv4_единственного_узла>"
access:
ssh:
user: "<имя_пользователя>" # По умолчанию root
key: "<путь_к_закрытому_ключу>" # По умолчанию /root/.ssh/id_rsa
parameters:
- name: psql_dsn
source:
value: "postgres://<dbms_username>:<password>@<fqdn_СУБД_в_кластере>:<порт>" # Если пароль содержит спецсимволы, их необходимо привести к URI кодировке
- name: ingress_ip
source:
value: "<IPv4_шлюза_кластера_Kubernetes>" # Ранее зарезервированный ingress_ip
- name: ssh_pk
source:
path: "<путь_к_закрытому_ключу>"
- name: admin_password
source:
value: "<пароль_учётной_записи_admin>"
- name: inventory
source:
value: "/dev/null" # Все сервисы KUMA будут внутри кластера Kubernetes
- name: license
source:
value: "<путь_к_лицензионному_ключу>" # Рекомендуется файл переименовать в license.key
- name: smp_domain
source:
value: "<доменное_имя>"
- name: pki_host_list
source:
value: "admsrv api console kuma monitoring agentserver updater psql"
- name: low_resources
source:
value: true
- name: openbao_ha_mode
source:
value: false
- name: openbao_standalone
source:
value: true
- name: default_class_replica_count
source:
value: 1
Установка
1)1. Загрузите на устройство администратора следующие файлы:
bin.tar.gz- архив с утилитой KDT, используется для развертывания и изменения параметров инсталляцииxdr-<version>.tar.gz- транспортный архив с компонентами SMPlicense.key- ключ лицензии
2)2. Распакуйте архив bin.tar.gz
3)3. Дайте файлу kdt права на выполнение: chmod +x ./kdt
4)4. Запустите установку командой:
./kdt apply -k <полный путь к транспортному архиву> -i <полный путь к файлу конфигурации param.yaml> --accept-eula