KPSN


Установка и обновление

Установка и обновление

Руководство по установке и настройке KPSN 4.0

Введение

Руководство описывает процесс установки и настройки ОС Ubuntu 24.04 LTS, оркестратор K3s и Helm.

Данный документ будет содержать описание следующих этапов:

  1. Процесс установки и первичной конфигурации Ubuntu 24.04 LTS.
  2. Процесс установки Helm и оркестратора K3s с отключенным компонентом traefik, а также рекомендации по объединению нескольких серверов в Kubernetes-кластер.
  3. Процесс установки серверной части KPSN.
  4. Процесс установки веб-плагина и интеграции KPSN с KSC.
  5. Процесс интеграции KPSN с KSC, KATA\KEDR, KSMG.

Заранее ознакомьтесь с аппаратными характеристиками под KPSN, чтобы выделить соответствующие ресурсы: https://support.kaspersky.com/help/KPSN/4.0/ru-RU/200773.htm.

Загрузите образ Ubuntu 24.04 ISO с официальной страницы загрузки: https://ubuntu.com/download/server, и смонтируйте к подготовленной виртуальной машине, или подготовьте установочный носитель и подключите его к системе, на которую хотите установить ОС.

Список портов для работы KPSN

Порты, которые требуется открыть для работы Kaspersky Private Security Network на серверах, предназначенных для установки серверной части Kaspersky Private Security Network: https://support.kaspersky.com/help/KPSN/4.0/ru-RU/200762.htm

Установка Ubuntu 24.04 LTS
Установка Ubuntu 24.04 LTS

После загрузки образа вы увидите GRUB меню. По умолчанию выбрана опция “Try or Install Ubuntu Server”. Нажмите Enter.image.png

На приветственном окне выберите язык и нажмите Enter.image.png

image.png

Выберите предпочтительную раскладку или оставьте по умолчанию и нажмите Готовоimage.png

Выберите комбинацию клавиш для смены языка и нажмите ОКimage.png

Ознакомьтесь с выбранным типом установки и нажмите Готовоimage.png

Настройте минимум один сетевой интерфейс, перейдя на него стрелками и выбрав Edit IPv4 image.png

В IPv4 методе выберите Вручную для настройки статической адресации, поскольку мы настраиваем серверimage.png

Заполните поля и нажмите кнопку Сохранить и далее кнопку Готовоimage.png

Укажите параметры прокси для доступа в интернет, либо оставьте поле пустым и нажмите Готовоimage.png

Установщик выполнит проверку зеркала, обновив индекс пакетов. Вы можете указать альтернативное зеркало и по завершению нажать Готовоimage.png

На этом этапе установщик предложит вам настроить разделы диска. Для простоты оставьте по умолчанию и нажмите Готовоimage.png

На таблице разделов перейдите к разделу USED DEVICES и откройте DEVICE: ubuntu-lv на редактированиеimage.png

Отредактируйте раздел, добавим ему всё свободное пространство и нажмите Сохранить, а далее нажмите Готовоimage.png

Примечание: если вы оставили всё по умолчанию и продолжили установку, то расширьте диск уже после установки путем выполнения команд (после потребуется перезагрузка сервера):
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

В появившемся окне нажмите Продолжить, чтобы записать изменения на дискimage.png

Далее создайте пользователя, задайте ему пароль и укажите имя сервера. По завершению нажмите Готовоimage.png

Если вы не имеете подписку на услугу Ubuntu Pro, то оставьте параметры без изменения и нажмите Продолжитьimage.png

Можете заранее выбрать установку OpenSSH server, который позволит удаленно подключаться на сервер по SSH, и нажать кнопку Готовоimage.png

На следующем шаге установщик предлагает выбрать избранные приложения. Этот шаг можно пропустить и нажать Готовоimage.png

Далее начнется установка ОС. По завершению появится кнопка Перезагрузить сейчасimage.png

image.png

После перезагрузки раскомментируйте строку Port 22 в конфигурационном файле sshd_config. После этого вы можете подключаться к серверу по SSH
sudo nano /etc/ssh/sshd_config
sudo systemctl restart ssh

Переименуйте сервер на FQDN
sudo hostnamectl set-hostname <name>.<domain>
Пример: sudo hostnamectl set-hostname kpsn.demo.lab

В большинстве дистрибутивов Linux значение параметра fs.inotify.max_user_instances по умолчанию может приводить к зависанию некоторых подов в состоянии постоянного перезапуска, рекомендуется увеличить значение этого параметра на каждом узле KSPN, выполнив следующую команду:
sysctl -w fs.inotify.max_user_instances=8192

Установка Helm и оркестратор K3s
Установка Helm и оркестратор K3s
  1. Для установки Helm воспользуйтесь командой:
    sudo snap install helm --classic
  2. Для установки оркестратора K3s с отключенным компонентом traefik воспользуйтесь командой:
    curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --disable=traefik" sh -
Примечание: если планируется установка KPSN с резервированием или распределенная установка компонентов по нескольким серверам, то верхняя команда выполняется на мастер-узле

(Опционально) для добавления сервера в Kubernetes-кластер, то необходимо выполнить команду на хосте, который необходимо добавить в кластер:
curl -sfL https://get.k3s.io | K3S_URL=https://<master-ip>:6443 K3S_TOKEN=<master-node-token> sh -
Токен мастер узла: /var/lib/rancher/k3s/server/node-token

Установка серверной части KPSNУстановка серверной части KPSN
Установка серверной части KPSN
Установка серверной части KPSNУстановка серверной части KPSN

1. Загрузите tar.gz архив с KPSN на подготовленный сервер
scp %HOMEPATH%\Downloads\kpsn_install-4.0.<build>.tar.gz <ubuntu_user>@<ip_ubuntu>:/home/<ubuntu_user>

2. Подключитесь к серверу и извлеките архив
tar xvf $HOME/kpsn_install-4.0.<build>.tar.gz

3. Перейдите в каталог images и загрузите образы для Kubernetes
cd $HOME/kpsn_install-4.0.<build>/images/

4. Запустите:
sudo ./download_external_images.sh

Если вы видите похожую ошибку (встречается до 4.0.3.527, включительно):

INFO[0000] trying next host - response was http.StatusNotFound  host=registry-1.docker.io
ctr: failed to resolve reference "docker.io/bitnami/prometheus:3.4.0-debian-12-r0": docker.io/bitnami/prometheus:3.4.0-debian-12-r0: not found
+ ctr image pull --platform linux/amd64 docker.io/bitnami/prometheus:3.4.0-debian-12-r0
docker.io/bitnami/prometheus:3.4.0-debian-12-r0: resolving      |--------------------------------------|
elapsed: 0.7 s                                   total:   0.0 B (0.0 B/s)
INFO[0000] trying next host - response was http.StatusNotFound  host=registry-1.docker.io
ctr: failed to resolve reference "docker.io/bitnami/prometheus:3.4.0-debian-12-r0": docker.io/bitnami/prometheus:3.4.0-debian-12-r0: not found

Замените содержимое скрипта на это:

download_external_images.sh
#!/usr/bin/env bash

set -ex

ctr image pull --platform linux/amd64 "docker.io"/library/registry:2.8.3 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/library/registry:2.8.3 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 registry-2.8.3.tar "docker.io"/library/registry:2.8.3 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/prometheus:3.4.0-debian-12-r0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/prometheus:3.4.0-debian-12-r0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/prometheus:3.4.0-debian-12-r0 docker.io/bitnami/prometheus:3.4.0-debian-12-r0
ctr image export --platform linux/amd64 prometheus-3.4.0-debian-12-r0.tar "docker.io"/bitnami/prometheus:3.4.0-debian-12-r0 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/prometheus-operator:0.82.2-debian-12-r1 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/prometheus-operator:0.82.2-debian-12-r1 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/prometheus-operator:0.82.2-debian-12-r1 docker.io/bitnami/prometheus-operator:0.82.2-debian-12-r1
ctr image export --platform linux/amd64 prometheus-operator-0.82.2-debian-12-r1.tar "docker.io"/bitnami/prometheus-operator:0.82.2-debian-12-r1 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/alertmanager:0.28.1-debian-12-r6 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/alertmanager:0.28.1-debian-12-r6 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/alertmanager:0.28.1-debian-12-r6 docker.io/bitnami/alertmanager:0.28.1-debian-12-r6
ctr image export --platform linux/amd64 alertmanager-0.28.1-debian-12-r6.tar "docker.io"/bitnami/alertmanager:0.28.1-debian-12-r6 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/grafana/loki:3.4.2 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/grafana/loki:3.4.2 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 loki-3.4.2.tar "docker.io"/grafana/loki:3.4.2 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/nginxinc/nginx-unprivileged:1.27-alpine $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/nginxinc/nginx-unprivileged:1.27-alpine $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 nginx-unprivileged-1.27-alpine.tar "docker.io"/nginxinc/nginx-unprivileged:1.27-alpine $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/library/memcached:1.6.38-alpine $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/library/memcached:1.6.38-alpine $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 memcached-1.6.38-alpine.tar "docker.io"/library/memcached:1.6.38-alpine $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/prom/memcached-exporter:v0.15.2 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/prom/memcached-exporter:v0.15.2 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 memcached-exporter-v0.15.2.tar "docker.io"/prom/memcached-exporter:v0.15.2 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/grafana/loki-canary:3.5.0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/grafana/loki-canary:3.5.0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 loki-canary-3.5.0.tar "docker.io"/grafana/loki-canary:3.5.0 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "quay.io"/minio/minio:RELEASE.2024-12-18T13-15-44Z $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "quay.io"/minio/minio:RELEASE.2024-12-18T13-15-44Z $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 minio-RELEASE.2024-12-18T13-15-44Z.tar "quay.io"/minio/minio:RELEASE.2024-12-18T13-15-44Z $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "quay.io"/minio/mc:RELEASE.2024-11-21T17-21-54Z $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "quay.io"/minio/mc:RELEASE.2024-11-21T17-21-54Z $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 mc-RELEASE.2024-11-21T17-21-54Z.tar "quay.io"/minio/mc:RELEASE.2024-11-21T17-21-54Z $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/kiwigrid/k8s-sidecar:1.30.3 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/kiwigrid/k8s-sidecar:1.30.3 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 k8s-sidecar-1.30.3.tar "docker.io"/kiwigrid/k8s-sidecar:1.30.3 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/grafana/promtail:3.0.0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/grafana/promtail:3.0.0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 promtail-3.0.0.tar "docker.io"/grafana/promtail:3.0.0 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/postgresql-repmgr:12.20.0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/postgresql-repmgr:12.20.0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/postgresql-repmgr:12.20.0 docker.io/bitnami/postgresql-repmgr:12.20.0
ctr image export --platform linux/amd64 postgresql-repmgr-12.20.0.tar "docker.io"/bitnami/postgresql-repmgr:12.20.0 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/os-shell:12-debian-12-r43 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/os-shell:12-debian-12-r43 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/os-shell:12-debian-12-r43 docker.io/bitnami/os-shell:12-debian-12-r43
ctr image export --platform linux/amd64 os-shell-12-debian-12-r43.tar "docker.io"/bitnami/os-shell:12-debian-12-r43 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/pgpool:4.6.0-debian-12-r8 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/pgpool:4.6.0-debian-12-r8 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/pgpool:4.6.0-debian-12-r8 docker.io/bitnami/pgpool:4.6.0-debian-12-r8
ctr image export --platform linux/amd64 pgpool-4.6.0-debian-12-r8.tar "docker.io"/bitnami/pgpool:4.6.0-debian-12-r8 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/postgres-exporter:0.17.1-debian-12-r7 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/postgres-exporter:0.17.1-debian-12-r7 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/postgres-exporter:0.17.1-debian-12-r7 docker.io/bitnami/postgres-exporter:0.17.1-debian-12-r7
ctr image export --platform linux/amd64 postgres-exporter-0.17.1-debian-12-r7.tar "docker.io"/bitnami/postgres-exporter:0.17.1-debian-12-r7 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/nats:2.11.4 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/nats:2.11.4 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/nats:2.11.4 docker.io/bitnami/nats:2.11.4
ctr image export --platform linux/amd64 nats-2.11.4.tar "docker.io"/bitnami/nats:2.11.4 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/nats-exporter:0.17.3-debian-12-r1 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/bitnamilegacy/nats-exporter:0.17.3-debian-12-r1 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image tag docker.io/bitnamilegacy/nats-exporter:0.17.3-debian-12-r1 docker.io/bitnami/nats-exporter:0.17.3-debian-12-r1
ctr image export --platform linux/amd64 nats-exporter-0.17.3-debian-12-r1.tar "docker.io"/bitnami/nats-exporter:0.17.3-debian-12-r1 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "docker.io"/curlimages/curl:8.13.0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "docker.io"/curlimages/curl:8.13.0 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 curl-8.13.0.tar "docker.io"/curlimages/curl:8.13.0 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "registry.k8s.io"/ingress-nginx/controller:v1.12.2 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "registry.k8s.io"/ingress-nginx/controller:v1.12.2 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 controller-v1.12.2.tar "registry.k8s.io"/ingress-nginx/controller:v1.12.2 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS
ctr image pull --platform linux/amd64 "registry.k8s.io"/ingress-nginx/kube-webhook-certgen:v1.5.3 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS || ctr image pull --platform linux/amd64 "registry.k8s.io"/ingress-nginx/kube-webhook-certgen:v1.5.3 $KPSN_CTR_PULL_ADDITIONAL_OPTIONS
ctr image export --platform linux/amd64 kube-webhook-certgen-v1.5.3.tar "registry.k8s.io"/ingress-nginx/kube-webhook-certgen:v1.5.3 $KPSN_CTR_EXPORT_ADDITIONAL_OPTIONS

5. Перейдите в каталог charts и загрузите графики
cd $HOME/kpsn_install-4.0.<build>/charts/

6. Запустите:
./download_external_charts.sh

Если вы столкнулись с ошибкой загрузки (встречается до 4.0.3.527, включительно), то замените содержимое скрипта на это:

download_external_charts.sh
#!/usr/bin/env bash

set -ex

helm pull --repo "https://twuni.github.io/docker-registry.helm" docker-registry --version 2.2.3 $KPSN_HELM_ADDITIONAL_OPTIONS || helm pull --repo "https://twuni.github.io/docker-registry.helm" docker-registry --version 2.2.3 $KPSN_HELM_ADDITIONAL_OPTIONS
helm pull "oci://registry-1.docker.io"/"bitnamicharts"/kube-prometheus --version 11.1.13 $KPSN_HELM_ADDITIONAL_OPTIONS || helm pull "oci://registry-1.docker.io"/"bitnamicharts"/kube-prometheus --version 11.1.13 $KPSN_HELM_ADDITIONAL_OPTIONS
helm pull --repo "https://grafana.github.io/helm-charts" loki --version 6.29.0 $KPSN_HELM_ADDITIONAL_OPTIONS || helm pull --repo "https://grafana.github.io/helm-charts" loki --version 6.29.0 $KPSN_HELM_ADDITIONAL_OPTIONS
helm pull --repo "https://grafana.github.io/helm-charts" promtail --version 6.16.6 $KPSN_HELM_ADDITIONAL_OPTIONS || helm pull --repo "https://grafana.github.io/helm-charts" promtail --version 6.16.6 $KPSN_HELM_ADDITIONAL_OPTIONS
helm pull "oci://registry-1.docker.io"/bitnamicharts/postgresql-ha --version 16.0.0 $KPSN_HELM_ADDITIONAL_OPTIONS || helm pull "oci://registry-1.docker.io"/bitnamicharts/postgresql-ha --version 16.0.0 $KPSN_HELM_ADDITIONAL_OPTIONS
helm pull "oci://registry-1.docker.io"/"bitnamicharts"/nats --version 9.0.18 $KPSN_HELM_ADDITIONAL_OPTIONS || helm pull "oci://registry-1.docker.io"/"bitnamicharts"/nats --version 9.0.18 $KPSN_HELM_ADDITIONAL_OPTIONS
helm pull --repo "https://kubernetes.github.io/ingress-nginx" ingress-nginx --version 4.12.2 $KPSN_HELM_ADDITIONAL_OPTIONS || helm pull --repo "https://kubernetes.github.io/ingress-nginx" ingress-nginx --version 4.12.2 $KPSN_HELM_ADDITIONAL_OPTIONS

7. Отредактируйте файл hosts (sudo nano /etc/hosts), добавив туда строку:
127.0.0.1 ksn-repo

8. Создайте файл /etc/rancher/k3s/registries.yaml, если он еще не существует. Добавьте в него следующие строки, соблюдая увеличение отступа на два пробела в начале каждой строки:

mirrors:
  "ksn-repo:31000":
    endpoint:
      - "http://ksn-repo:31000"

9. Добавьте прав на файл k3s.yaml
sudo chmod 755 /etc/rancher/k3s/k3s.yaml

10. Создайте в домашнем каталоге директорию .kube, скопируйте туда и переименуйте конфиг k3s.yaml и смените права на своего пользователя ubuntu
mkdir $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chown <user_ubuntu>:<user_group_ubuntu> config

11. Запустите установку, приняв лицензионное соглашение
cd $HOME/kpsn_install-4.0.<build>/
Запустите: ./install.sh --accept-eula

12. После успешной установки, скопируйте утилиту kpsnctl в каталог /usr/local/bin
sudo cp $HOME/kpsn_install-4.0.<build>/kpsnctl /usr/local/bin

На этом установка серверной части завершена







Установка веб-плагина KSC и интеграция с KPSNУстановка веб-плагина KSC и интеграция с KPSNУстановка веб-плагина KSC и интеграция с KPSNУстановка веб-плагина KSC и интеграция с KPSNУстановка веб-плагина KSC и интеграция с KPSNУстановка веб-плагина KSC и интеграция с KPSNУстановка веб-плагина KSC и интеграция с KPSN
Установка веб-плагина KSC и интеграция с KPSN
Установка веб-плагина KSC и интеграция с KPSN

1. Авторизуйтесь в веб-консоли сервера KSC и перейдите в раздел Параметры > Веб-плагиныimage.png

Примечание: при интеграции и последующей работе с KPSN через веб-консоль сервера администрирования, избегайте учетные записи содержащие кириллицу.

2. Из комплекта поставки извлеките архив, чтобы получить plugin.zip и signature.txt. В веб-консоли KSС нажмите кнопку Добавить из файла, укажите эти файлы и нажмите кнопку Добавить. Подождите или перезапустите страницу, чтобы увидеть, что плагин установился.
image.png

3. Перейдите в раздел Устройства > Задачи и запустите загрузку обновлений в хранилище Сервера Администрирования (по итогам выполнения появятся новые разделы в веб-консоли KSC)

4. Далее перейдите в Приложения и службы > KPSN > Параметры и нажмите кнопку Настроить KPSNimage.png

5. В открывшемся мастере настройки ознакомьтесь с последующими шагами и нажмите кнопку Далее
image.png

6. В открывшемся окне экспортируйте CSR, нажав соответствующую кнопку, и загрузите его на серверную часть KPSN.
image.pngДля загрузки на серверную часть KPSN можете воспользоваться командой:
scp %HOMEPATH%\Downloads\kpsn-plugin-csr.pem <username>@<IP_KPSN>:/home/<user_name>/

После скачивания CSR не обновляйте страницу. В противном случае, вам необходимо повторно скачать CSR.

7. На серверной части KPSN выполните команды:
kpsnctl certs rotate ca

kpsnctl generate-integration-file --client-csr $HOME/kpsn-plugin-csr.pem --external-hostname <FQDN_KPSN> > $HOME/integration.json

8. Получившийся интеграционный файл (integration.json) импортируйте в поле в веб-консоли KSC и нажмите Далее
image.png

image.png

9. На этом шаге импортируйте активационный архив, полученный от Лаборатории Касперского и нажмите Далееimage.png

10. Выберите компоненты для установки, ознакомьтесь с системными требованиями и нажмите Далееimage.pngimage.png

Примечание: максимальное количество экземпляров каждого компонента соответствует количеству серверов в кластере Kubernetes. Компоненты Gateway External и Gateway Internal могут существовать только в одном экземпляре.

11. На этом шаге ещё раз ознакомьтесь с количеством выбранных компонентов и нажмите кнопку Установить. После успешной установки нажмите кнопку Далее.
image.png

12. А шаге пять создайте ключ, чтобы обеспечить шифрованное соединение продуктов Лаборатории Касперского с KPSN, или импортируйте существующий. Нажмите Далее.
image.png

13. На шаге добавления идентификатора установки, укажите имя (уникальный идентификатор для Лаборатории Касперского), IP или URL адреса для внутреннего (локального) доступа и\или внешнего (за пределами сети)
image.png

image.png

Примечание: не используйте тестовое название, потому что имя установки невозможно изменить в дальнейшем. Введенное здесь значение будет использоваться для будущих обновлений.

14. На седьмом шаге проверьте указанные параметры конфигурации. При необходимости вернитесь назад и исправьте недочеты. Если всё корректно, нажмите Далее.image.png

По завершению нажмите кнопку Завершить установку и запустить KPSN. На этом этапе установка KPSN полностью завершена.

В разделе Приложения и службы > KPSN > Параметры убедитесь, что выбранные к установке компоненты активны
image.png

Примечание: во вкладке Параметры вы можете указать параметры корпоративного прокси-сервера для получения обновлений баз KPSN.

Перейдите в раздел Приложения и службы > KPSN > Журнал обновления баз и убедитесь, что базы обновляются
image.png


(Опционально) Настройка однонаправленного шлюза
(Опционально) Настройка однонаправленного шлюза

Однонаправленный шлюз требуется настроить так, чтобы он для каждого необходимого потока передавал файлы из директории /var/kpsn/gateway_external/<имя потока>/data, расположенной на сервере с компонентом Gateway External, в директорию /var/kpsn/gateway_external/<имя потока>/data, расположенную на сервере с компонентом Gateway Internal, а затем удалял переданные файлы с сервера с компонентом Gateway External. Структуру вложенных директорий при передаче файлов следует сохранять, поэтому удалять нужно именно файлы, а не директории. Перемещение файлов следует производить атомарно.

Примечание: передаваемые файлы должны иметь права 0666.

Если однонаправленный шлюз поддерживает настройку порядка передачи файлов, рекомендуется передавать их в лексикографическом порядке.

Для интеграции KPSN c другими решениями Лаборатории Касперского перейдите в раздел Приложения и службы > KPSN > Параметры и нажмите кнопку Скачать конфигурационные файлы этого экземпляра KPSN.

Интеграция KPSN с KSC
Интеграция KPSN с KSC

1. Для интеграции с KSC извлеките архив с конфигурационными файлами KPSN.

2. В веб-консоли KSC перейдите в свойства Сервера Администрированияimage.png

3. Во вкладке Общие перейдите в раздел Параметры прокси-сервера KSN.
Активируйте параметр Включить прокси-сервер KSN на Сервере администрированияimage.png

Активируйте параметр Использовать Kaspersky Private Security Network (неактивен, пока не отключите параметр Использовать Kaspersky Security Network).
image.png

Нажмите на кнопку Файл с параметрами прокси-сервера KSN и укажите конфигурационный файл с расширение .PKCS7

4. Примите пользовательское соглашение KPSN
image.png

5. После принятия EULA вы увидите свои данные
image.png

При необходимости прямого доступа к KPSN, активируйте параметр Игнорировать параметры прокси-сервера для подключения к Локальному KSN

Интеграция KPSN с KATA\KEDR
Интеграция KPSN с KATA\KEDR

1. Для интеграции с KATA\KEDR извлеките архив с конфигурационными файлами KPSN и переименуйте их следующим образом:
client_config.xms > kc_private.xms
helper_config.xms > kh_private.xms
keystore.dat > ksncli_private.dat

2. В веб-консоли KATA\KEDR авторизуйтесь под учетной записью с ролью Администратор, перейдите в Параметры > KSN/KPSN и MDR и переключите тип подключения в KPSN
image.png

3. Добавьте файлы поочередно в Central Node и нажмите Применить

4. Перейдите в раздел Мониторинг и подождите несколько минут. Если не поступило никаких предупреждений связанных с KSN/KPSN, то интеграция завершена успешно

Для KATA 7+

На 7 версии KATA создайте скрипт:

#!/bin/bash

check_iptables_rule() {
    local pid=$1
    local rule="$2"

    nsenter -t "$pid" -n iptables-save | grep -F -- "-A OUTPUT $rule" > /dev/null
}

add_iptables_rule() {
    local pid=$1
    nsenter -t "$pid" -n iptables -A OUTPUT -p tcp --dport 1443 -j ACCEPT
    echo "[OK] Rule added for PID $pid at $(date)"
}

get_container_pid() {
    docker inspect "$(docker ps -f "name=$1" -q)" -f "{{.State.Pid}}" 2>/dev/null
}

RULE="-p tcp -m tcp --dport 1443 -j ACCEPT"

CONTAINER_NAME="ksn_proxy"
PID=$(get_container_pid "$CONTAINER_NAME")

if [ -n "$PID" ]; then
    if check_iptables_rule "$PID" "$RULE"; then
        echo "[INFO] Rule already exists for container '$CONTAINER_NAME'."
    else
        echo "[ACTION] Adding rule for container '$CONTAINER_NAME'..."
        add_iptables_rule "$PID"
    fi
else
    echo "[SKIP] Container '$CONTAINER_NAME' is not running at $(date)"
fi

Дайте прав на исполнение:
chmod +x /home/admin/kpsn.sh
И добавьте в crontab задачу:
crontab -e
*/5 * * * * /home/admin/kpsn.sh > /dev/null 2>&1

(Опционально) выполнение следующих действий позволит сохранять информацию об обнаружениях компонента Sandbox в локальную репутационную базу KPSN:

1. В веб-консоли KSC перейдите в раздел Приложения и службы > KPSN > Параметры > Доступ к API и нажмите Получить сертификат для API
image.png

2. Извлеките полученный архив и подготовьте файлы client_certificate.pem и private_key.pem

3. В веб-консоли KATA\KEDR авторизуйтесь под учетной записью с ролью Администратор, перейдите в Параметры > Репутационная база KPSN и укажите FQDN KPSN, а также сертификат и ключ из ранее полученного архива. После добавления нажмите кнопку Применить.
image.png

4. Авторизуйтесь под учетной записью с ролью Старшего офицера безопасности, перейдите в Параметры > Репутационная база KPSN и включите присвоение обнаруженным объектам статуса «Недоверенный»
image.png

Интеграция KPSN с KSMG
Интеграция KPSN с KSMG

1. Для интеграции с KSMG извлеките архив с конфигурационными файлами KPSN.

2. В веб-консоли KSMG авторизуйтесь под учетной записью Administrator, перейдите в Параметры > Внешние службы > KSN/KPSN. Переключитесь в Параметры KSN/KPSN и переключите использование KSN/KPSN на KPSN
image.png

3. Нажмите кнопка Обзор, укажите конфигурационный файл с расширение .PKCS7 и нажмите Сохранить

Для проверки статуса перейдите в раздел Узлы и убедитесь, что состояние соединения с KSN/KPSN – Без ошибок
image.png


Диагностика и решение проблем

Диагностика и решение проблем

Решение проблем KPSN 4.0

Unable to verify the first certificate

Описание:

image.png

Текст ошибки

KPSN server unavailable

Error "unable to verify the first certificate" occurred. Check access to KPSN server or set up the integration with KPSN again.

KSC web console log
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [>>>] getConfigurationStatus in pluginServerApi start","timestamp":"2025-03-05T16:47:16.961Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getTenantId: no tenant id","timestamp":"2025-03-05T16:47:16.961Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue start","timestamp":"2025-03-05T16:47:16.961Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":{"key":"kpsn-backend-info","fullKey":"kpsn-backend-info"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue success: key: \"kpsn-backend-info\"","timestamp":"2025-03-05T16:47:16.986Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] tokenCache:oxWlUyvqUS6XDMnytmZi cache get: success: key \"kpsn-token\"","timestamp":"2025-03-05T16:47:16.986Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] User token was found in cache","timestamp":"2025-03-05T16:47:16.986Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getTenantId: no tenant id","timestamp":"2025-03-05T16:47:16.991Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue start","timestamp":"2025-03-05T16:47:16.991Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":{"key":"kpsn-backend-info","fullKey":"kpsn-backend-info"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue success: key: \"kpsn-backend-info\"","timestamp":"2025-03-05T16:47:16.999Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"warn","version":"1.1.0.33","tags":[],"message":"[KPSN] [ApiClient] https://lavkpsn4tests.vm.org:443 is unavailable.","timestamp":"2025-03-05T16:47:17.010Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getTenantId: no tenant id","timestamp":"2025-03-05T16:47:17.011Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue start","timestamp":"2025-03-05T16:47:17.011Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":{"key":"kpsn-backend-info","fullKey":"kpsn-backend-info"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue success: key: \"kpsn-backend-info\"","timestamp":"2025-03-05T16:47:17.017Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"error","version":"1.1.0.33","tags":[],"message":"[KPSN] [<<<] getConfigurationStatus in pluginServerApi failure","timestamp":"2025-03-05T16:47:17.017Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zAiujrzgzm","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":"unable to verify the first certificate"}}

Причина:

  1. Ошибка возникает при изменении сертификата центра сертификации (CA) в KPSN после интеграции с KSC. 
  2. Что-то прерывает передачу данных между KSC и KPSN.

Решение:

Удалите интеграцию с KPSN и повторите попытку. Если ошибка повторится, проверьте сертификат KPSN в KSC. Откройте URL-адрес KPSN (https://<FQDN_KPSN>:443) в браузере и проверьте сертификат (учитывайте настройки прокси). Проверьте Authority Key Identifier и Issuer. Затем перейдите в KPSN и запустите:

kpsnctl certs print server

и проверьте keyid и Issuer . Информация в сертификате и в выводе команды должна совпадать (в указанных разделах). Пример:

Сертификат в браузере

image.pngimage.png

Информация о сертификации в KPSN

Информация о сертификате в KPSN
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1755072614917 (0x198a27ad205)
    Signature Algorithm: ECDSA-SHA384
        Issuer: O=Kaspersky,CN=KPSN Root CA
        Validity
            Not Before: Aug 13 08:10:14 2025 UTC
            Not After : Nov 13 08:10:14 2025 UTC
        Subject:
        Subject Public Key Info:
            Public Key Algorithm: ECDSA
                Public-Key: (384 bit)
                X:
                    9b:1c:2f:80:75:ea:3d:ea:ba:13:50:85:ba:d7:71:
                    2b:34:da:d4:73:9e:fd:9c:bc:01:f2:43:d9:44:08:
                    ec:5f:bf:21:7d:0c:04:64:20:97:37:b0:05:1f:ab:
                    71:13:57
                Y:
                    c5:c1:0a:61:e0:69:bb:e1:5f:b8:e6:38:f2:b4:1c:
                    92:95:73:f0:cb:d2:e1:e7:63:77:50:45:12:38:45:
                    c3:ac:c7:d5:e7:54:50:02:b1:d3:e7:ea:e3:2e:da:
                    45:e9:75
                Curve: P-384
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Extended Key Usage:
                Server Authentication
            X509v3 Subject Key Identifier:
                01:02:03:04:06
            X509v3 Authority Key Identifier:
                keyid:0F:47:7B:0B:F0:E6:35:00:DA:B9:A3:B5:FD:27:6C:43:1E:86:70:DE
            X509v3 Subject Alternative Name: critical
                DNS:lavkpsn4def.vm.org
    Signature Algorithm: ECDSA-SHA384
         30:64:02:30:6f:71:9d:6b:f3:9c:2e:5f:f9:46:fa:cb:c8:6c:
         4b:d8:e6:db:84:fd:e6:a6:ac:b6:68:3b:8e:77:59:fd:9c:09:
         fd:22:02:a7:99:c7:75:3f:81:07:9b:d6:27:22:db:ca:02:30:
         04:7c:af:c7:bb:ab:2b:7c:cd:17:19:88:61:d9:23:e9:c5:f2:
         54:66:d3:fc:f2:e3:0a:90:9a:6f:33:8c:8c:74:df:3d:c4:68:
         2a:2f:39:fa:b9:de:f4:9f:4d:6e:90:bd

Если вы попытаетесь выполнить эту проверку с хоста, на котором установлен KES и включено сканирование трафика, вы увидите следующее: 

image.png

Не принимайте, сначала проверьте сертификат. Если вы примете, вы увидите только сертификат KES.

Getaddrinfo ENOTFOUND

Описание:

image.png

Текст ошибки

KPSN server unavailable

Error "getaddrinfo ENOTFOUND lavkpsn4tests.vm.org" occurred. Check access to KPSN server or set up the integration with KPSN again.

KSC web console log
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [>>>] getConfigurationStatus in pluginServerApi start","timestamp":"2025-03-05T16:23:16.624Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getTenantId: no tenant id","timestamp":"2025-03-05T16:23:16.624Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue start","timestamp":"2025-03-05T16:23:16.624Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":{"key":"kpsn-backend-info","fullKey":"kpsn-backend-info"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue success: key: \"kpsn-backend-info\"","timestamp":"2025-03-05T16:23:16.630Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] tokenCache:oxWlUyvqUS6XDMnytmZi cache get: success: key \"kpsn-token\"","timestamp":"2025-03-05T16:23:16.631Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] User token not found in cache","timestamp":"2025-03-05T16:23:16.631Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"error","version":"1.1.0.33","tags":[],"message":"[KPSN] Cannot resolve user token.","timestamp":"2025-03-05T16:23:37.288Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":{"bFinalized":true,"bSuccededFinalized":false,"lStateCode":4,"pStateData":{"KLBLAG_ERROR_INFO":{"type":"params","value":{"KLBLAG_ERROR_CODE":3604,"KLBLAG_ERROR_FNAME":"","KLBLAG_ERROR_LNUMBER":-1,"KLBLAG_ERROR_MODULE":"Error: [NO_SERVER_ERROR]: getaddrinfo ENOTFOUND lavkpsn4test.vm.org","KLBLAG_ERROR_MSG":"Error: [NO_SERVER_ERROR]: getaddrinfo ENOTFOUND lavkpsn4test.vm.org","KLBLAG_ERROR_SUBCODE":0}}},"lNextCheckDelay":0}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] tokenCache:oxWlUyvqUS6XDMnytmZi cache delete: success: key: \"kpsn-token\"","timestamp":"2025-03-05T16:23:37.288Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"error","version":"1.1.0.33","tags":[],"message":"[KPSN] [<<<] getConfigurationStatus in pluginServerApi failure","timestamp":"2025-03-05T16:23:37.288Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"zEJC2aJ1YJ","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":"Error: getaddrinfo ENOTFOUND lavkpsn4test.vm.org"}}

Причина:

Ошибка при разрешении имени KPSN.

Решение:

Проверьте, может ли KSC разрешить имя KPSN:

nslookup lavkpsn4test.vm.org

Измените имя lavkpsn4test.vm.org на фактическое имя KPSN. Также проверьте подключение к KPSN через порт 443. Это можно сделать с помощью telnet или tnc (из powershell). Пример команды:

tnc lavkpsn4tests.vm.org -Port 443
Failed to get information from KPSN server

Описание:

image.png

Текст ошибки

Failed to get information from KPSN server. Make sure that the required ports listed in KPSN help are available from KSC server.

Cannot resolve user token.

KSC web console log
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [>>>] getConfigurationStatus in pluginServerApi start","timestamp":"2025-02-11T12:53:48.094Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU4","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getTenantId: no tenant id","timestamp":"2025-02-11T12:53:48.094Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU
","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue start","timestamp":"2025-02-11T12:53:48.094Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU4","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":{"key":"kpsn-backend-info","fullKey":"kpsn-backend-info"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue success: key: \"kpsn-backend-info\"","timestamp":"2025-02-11T12:53:48.107Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU4","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] tokenCache:7IGSh2K4ZGN5I0lbL3dd cache get: success: key \"kpsn-token\"","timestamp":"2025-02-11T12:53:48.108Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU4","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] User token not found in cache","timestamp":"2025-02-11T12:53:48.108Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU4","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"error","version":"1.1.0.33","tags":[],"message":"[KPSN] Cannot resolve user token.","timestamp":"2025-02-11T12:53:48.128Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU4","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] tokenCache:7IGSh2K4ZGN5I0lbL3dd cache delete: success: key: \"kpsn-token\"","timestamp":"2025-02-11T12:53:48.128Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU4","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"}}}
{"level":"error","version":"1.1.0.33","tags":[],"message":"[KPSN] [<<<] getConfigurationStatus in pluginServerApi failure","timestamp":"2025-02-11T12:53:48.128Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"Kx5u7AbEU4","pluginVersion":"1.1.0.33","pluginApiMethod":"getConfigurationStatus"},"payload":"Cannot resolve user token."}}

Причина:

Произошла ошибка в консоли службы NWC: служба NWC была перезапущена, опция «Фоновое соединение для интеграции» (Параметры > Интеграция) была отключена. 

Или KSC не может подключиться к адресу KPSN.

Решение:

Чтобы исправить эту ошибку:

  1. Перезапустите службу Kaspersky Security Center Service Web Console.
  2. Откройте новую вкладку в браузере и подключитесь к веб консоли KSC.
  3. Отключите фоновое соединение для интеграции, если оно было включено. Сохраните изменения.
  4. Включите эту функцию. Примите изменения прав доступа и сохраните.

Также проверьте, можно ли разрешить имя KPSN из KSC с помощью nslookup. 

Timeout of 15000ms was exceeded

Описание:

image.png

Текст ошибки

KPSN server unavailable

Error "timeout of 15000ms exceeded" occurred. Check access to KPSN server or set up the integration with KPSN again.

KSC web console log
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [>>>] executeCommand in productApi start","timestamp":"2025-03-05T13:37:29.721Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] executeCommand start","timestamp":"2025-03-05T13:37:29.721Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"},"payload":"IssueUserToken"}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] get user access token","timestamp":"2025-03-05T13:37:29.722Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"},"payload":{"serverId":"fb5e4e2c-fbfc-424e-a1c2-79d65e651239","userId":"sid_010500000000000515000000E2CA5270A67C21589095F045F4010000","userName":"LAVKSCKPSN\\Administrator","accessRights":{"FUNC_AREA_KPSN_API":4,"FUNC_AREA_KPSN_CONFIGURATION":4,"FUNC_AREA_KPSN_FILE_REPUTATION":4,"FUNC_AREA_KPSN_URL_REPUTATION":4}}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getTenantId: no tenant id","timestamp":"2025-03-05T13:37:29.722Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue start","timestamp":"2025-03-05T13:37:29.722Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"},"payload":{"key":"kpsn-backend-info","fullKey":"kpsn-backend-info"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue success: key: \"kpsn-backend-info\"","timestamp":"2025-03-05T13:37:29.728Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"}}}
{"level":"warn","version":"1.1.0.33","tags":[],"message":"[KPSN] [ApiClient] https://lavkpsn4test.vm.org:443 is unavailable.","timestamp":"2025-03-05T13:37:44.758Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getTenantId: no tenant id","timestamp":"2025-03-05T13:37:44.758Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue start","timestamp":"2025-03-05T13:37:44.758Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"},"payload":{"key":"kpsn-backend-info","fullKey":"kpsn-backend-info"}}}
{"level":"info","version":"1.1.0.33","tags":[],"message":"[KPSN] [PerServerStorage] getValue success: key: \"kpsn-backend-info\"","timestamp":"2025-03-05T13:37:44.766Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"}}}
{"level":"error","version":"1.1.0.33","tags":[],"message":"[KPSN] [<<<] executeCommand in productApi failure","timestamp":"2025-03-05T13:37:44.766Z","component":"plugin_kpsn","data":{"logContext":{"operationId":"wh8yi1SepJ","pluginVersion":"1.1.0.33","pluginApiMethod":"executeCommand"},"payload":{"message":"[NO_SERVER_ERROR]: timeout of 15000ms exceeded","type":"no working server"}}}

Причина:

KSC не может подключиться к KPSN

Решение:

Проверьте соединение через tnc

tnc lavkpsn4tests.vm.org -Port 443

 

Если IP-адрес присутствует, но в строке PingSucceeded указано значение False, то KSC сможет разрешить имя KPSN, но не сможет подключиться к порту 443.
В таких случаях необходимо проверить сетевые настройки. 
Error: self-signed certificate

Описание:

image.png

Текст ошибки

KPSN server unavailable

Error "Error: self-signed certificate" occurred. Check access to KPSN server or set up the integration with KPSN again.

Причина:

Неверный адрес в сертификате сервера.

Решение:

  1. В KPSN выполните:
    kpsnctl certs print server
    Проверьте имя KPSN (например, DNS: lavkpsn4tests)
    Правильное имя должно быть: например, lavkpsn4tests.vm.org (FQDN!)
  2. Измените имя в сертификате сервера, указав фактическое имя (FQDN)
    kpsnctl certs rotate server --months 12 --external-hostname <FQDN>
Configurations files not downloaded

Описание:

image.png

Текст ошибки

Configuration files not downloaded

Причина:

После интеграции, активации и настройки вам потребуются конфигурационные файлы для подключения других наших продуктов: KATA, KSMG, KSC и др. 

Эта ошибка всегда означает, что KSC или KPSN не могут связаться с ksn-pub-5.kaspersky-labs.com

Решение:

Проверьте соединение как через TNC, так и через Telnet.

Если проверка соединения прошла успешно, проверьте аппаратное или программное обеспечение для анализа трафика. Указанный URL-адрес должен быть исключен из анализа трафика.