Skip to main content

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. Программные требования

Требования к программному обеспечению и поддерживаемым системам и платформам

Операционная система
OSMP с компонентами KUMA

Поддерживаются следующие 64-разрядные версии операционных систем:

  • Ubuntu Server 22.04 LTS.
  • Ubuntu Server 24.04 LTS.
  • Debian GNU/Linux 12.х (Bookworm).
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8.1).

На целевых устройствах с операционными системами семейства Ubuntu версия ядра Linux должна быть 5.15.0.107 или выше.

Платформы виртуализации
Название платформы виртуализации OSMP

Sandbox

(опционально)

VMware ESXi 6.7.0 или 7.0;

Есть.

Есть.

KVM;

Есть. Нет.

ПК СВ "Брест" 3.3;

Есть. Есть.

"РЕД Виртуализация" 7.3;

Есть. Есть.

zVirt Node 4.2.

Есть. Есть.
Hyper-V Server 2016, 2019, 2022 Нет. Нет.
VMWare vSphere 8 Нет. Нет.
Система управления базами данных (СУБД)

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) Загрузите на устройство администратора следующие файлы:

  • bin.tar.gz - архив с утилитой KDT, используется для развертывания и изменения параметров инсталляции
  • xdr-<version>.tar.gz - транспортный архив с компонентами SMP
  • license.key - ключ лицензии

2) Распакуйте архив bin.tar.gz

3) Дайте файлу kdt права на выполнение: chmod +x ./kdt

4) Запустите установку командой:

./kdt apply -k <полный путь к транспортному архиву> -i <полный путь к файлу конфигурации param.yaml> --accept-eula