Skip to main content

Kaspersky Security Center Linux — Отказоустойчивый кластер

Инструкция составлена ​​на основе официальной документации и опыта эксплуатации.

Введение

Kaspersky Security Center Linux – решение (далее – «KSC») для централизованного мониторинга и управления KES и некоторыми другими защитными решениями Лаборатории Касперского.

KSC позволяет вам устанавливать приложения безопасности "Лаборатории Касперского" на устройства в корпоративной сети, удаленно запускать задачи проверки и обновления, а также управлять политиками безопасности управляемых приложений. Как администратор, вы можете использовать панель мониторинга, где показано актуальное состояние корпоративных устройств, отображаются подробные отчеты и детальные параметры политик.

Отказоустойчивый кластер KSC Linux обеспечивает высокую доступность Kaspersky Security Center Linux и минимизирует простои Сервера администрирования в случае сбоя. Отказоустойчивый кластер основан на двух идентичных экземплярах Kaspersky Security Center Linux, установленных на двух компьютерах. Один из экземпляров работает как активный узел, а другой – как пассивный. Активный узел управляет защитой клиентских устройств, в то время как пассивный готов взять на себя все функции активного узла в случае отказа активного узла. Когда происходит сбой, пассивный узел становится активным, а активный узел становится пассивным.

Схемы развертывания

Вы можете выбрать одну из следующих схем развертывания отказоустойчивого кластера Kaspersky Security Center Linux:

  • Схема, которая использует дополнительный сетевой адаптер и СУБД, установленную на выделенном устройстве

{0D99C4E9-7242-4FD7-A5E9-5A3478B14D1C}.png

Условные обозначения схемы:

image.png на схеме развертывания. Сервер администрирования передает данные в базу данных. Откройте необходимые порты на устройстве, на котором расположена база данных, например порт 3306 для MySQL Server или порт 5432 для PostgreSQL или Postgres Pro. Подробную информацию см. в документации СУБД.

image.png на схеме развертывания. Откройте следующие порты на устройствах с Сервером администрирования для подключения к управляемым устройствам: TCP 13000, UDP 13000 и TCP 17000.

image.png на схеме развертывания. Устройство с системой управления базами данных (СУБД). Если вы используете MariaDB Galera Cluster в качестве СУБД, отдельное устройство для этой цели не требуется. Установите кластер MariaDB Galera на каждый из узлов.

  • Схема, которая использует сторонний балансировщик нагрузки и СУБД, установленную на выделенном устройстве

{A508EED7-6DA6-4F36-B12A-139E99311D2D}.png

Условные обозначения схемы:

image.png на схеме развертывания. На сервере устройства балансировки нагрузки откройте все порты Сервера администрирования: TCP 13000, UDP 13000, TCP 13299 и TCP 17000.

image.png на схеме развертывания. Откройте следующие порты на устройствах с Сервером администрирования для подключения к управляемым устройствам: TCP 13000, UDP 13000 и TCP 17000.

image.png на схеме развертывания. Сервер администрирования передает данные в базу данных. Откройте необходимые порты на устройстве, на котором расположена база данных, например порт 3306 для MySQL Server или порт 5432 для PostgreSQL или Postgres Pro. Подробную информацию см. в документации СУБД.

image.png на схеме развертывания. Устройство с системой управления базами данных (СУБД). Если вы используете MariaDB Galera Cluster в качестве СУБД, отдельное устройство для этой цели не требуется. Установите кластер MariaDB Galera на каждый из узлов.

Основные порты используемые KSC

Полный список используемых портов

Порт Процесс Протокол Функция
8060 klcsweb TCP Передача на клиентские устройства опубликованных инсталляционных пакетов
8061 klcsweb TCP (TLS) Передача на клиентские устройства опубликованных инсталляционных пакетов
13000 klserver TCP (TLS) Прием подключений от Агентов администрирования и от подчиненных Серверов администрирования; используется также на подчиненных серверах для приема подключений от главного Сервера (например, если подчиненный Сервер находится в демилитаризованной зоне)
13000 klserver UDP Прием информации от Агентов администрирования о выключении устройств
13299 klserver TCP (TLS) Прием подключений от Identity and Access Manager (IAM) к Серверу администрирования; прием подключений к Серверу администрирования через OpenAPI
17000 klactprx TCP (TLS) Прием подключений для активации приложений от управляемых устройств
4444 kliam HTTPS Аутентификация с использованием протокола OpenID Connect
9050 kliam HTTPS Подключение к Серверу администрирования с помощью IAM

Развёртывание кластера KSC Linux

В рамках развёртывания кластера необходимо подготовить следующие устройства:

  • 2 идентичных хоста на ОС Linux, на которые будет установлен KSC Linux для работы в режиме Active -Passive
  • Отдельных хост с СУБД
  • Хост с файловым сервером
  • Хост, на который будет установлена веб-консоль KSC
  • Внешний балансировщик (при выборе соответствующей схемы)

Полезные ссылки

Общий сценарий развёртывания кластера KSC Linux

Список поддерживаемых ОС и СУБД для KSC Linux

Аппаратные требования для KSC Linux и СУБД

Аппаратные и программные требования к веб-консоли KSC Linux

Требования к файловому серверу

Необходимые дистрибутивы

Предварительная настройка устройств

Для корректного функционирования кластера KSC Linux необходимо выполнить следующие шаги на активном узле, пассивном узле и файловом сервере:

  • Создать группу kladmins (можно назвать иначе)
sudo groupadd kladmins
sudo groupmod -g <новый_GID> kladmins
  • Создайте учетную запись ksc (можно назвать иначе). Назначьте учетные записи пользователей группе kladmins
sudo adduser ksc
sudo usermod -u <новый_UID> ksc
sudo gpasswd -a ksc kladmins
sudo usermod -g kladmins ksc
  • Аналогично создайте учетную запись пользователя rightless (можно назвать иначе), но уже с отличным от ksc UID. Назначьте учетные записи пользователей группе kladmins
sudo adduser rightless
sudo usermod -u <новый_UID> rightless
sudo gpasswd -a rightless kladmins
sudo usermod -g kladmins rightless
  • Аналогично создайте учетную запись пользователя ksciam (можно назвать иначе), но уже с отличным от ksc и rightless UID. Назначьте учетные записи пользователей группе kladmins
sudo adduser ksciam
sudo usermod -u <новый_UID> ksciam
sudo gpasswd -a ksciam kladmins
sudo usermod -g kladmins ksciam

GID для группы kladmins и UID для каждого из созданных пользователей (ksc, rightless и ksciam) должны быть одинаковыми для всех 3-х устройств.

  • Проверить GID и UID можно командами getent group kladmins и getent passwd <ksc, rightless или ksciam> соответственно

  • Сменить GID и UID можно командами sudo groupmod -g <новый_GID> kladmins и sudo usermod -u <новый_UID> <ksc, rightless или ksciam> соответственно

Иллюстрация из исходного DOCX: Пример создания группы и пользователя

Развертывание файлового сервера

Файловый сервер необходим для синхронизации данных между активным и пассивным узлами отказоустойчивого кластера KSC Linux. :

  • Доступ к файловому серверу должен быть включен для обоих узлов в параметрах NFS-сервера.
  • NFS-протокол должен иметь версию 4.0 или 4.1.
  • Минимальные требования для ядра Linux:
  • 3.19.0-25, если вы используете NFS 4.0;
  • 4.4.0-176, если вы используете NFS 4.1. Установите необходимые утилиты одной из следующих команд в зависимости от используемого дистрибутива Linux
sudo yum install nfs-utils
sudo apt install nfs-kernel-server

Далее необходимо создать две общие папки. Для хранения информации о состоянии отказоустойчивого кластера и для хранения данных и параметров KSC Linux.

Имена папок должны быть /mnt/KlFocStateShare и /mnt/KlFocDataShare\_klfoc. Поэтому проверьте, что на устройстве отсутствуют данные директории.

  • Для создания и настройки папок выполните команды:
sudo mkdir -p /mnt/KlFocStateShare
sudo mkdir -p /mnt/KlFocDataShare\_klfoc
sudo chown ksc:kladmins /mnt/KlFocStateShare
sudo chown ksc:kladmins /mnt/KlFocDataShare\_klfoc
sudo chmod -R 770 /mnt/KlFocStateShare /mnt/KlFocDataShare\_klfoc
sudo sh -c "echo /mnt/KlFocStateShare \*(rw,sync,no\_subtree\_check,no\_root\_squash) &gt;&gt; /etc/exports" #одной строкой
sudo sh -c "echo /mnt/KlFocDataShare\_klfoc \*(rw,sync,no\_subtree\_check,no\_root\_squash) &gt;&gt; /etc/exports" #одной строкой
sudo exportfs -a
sudo systemctl start rpcbind
sudo systemctl start nfs-server 

Для автозапуска выполните команду

sudo systemctl enable rpcbind

Перезапустите файловый сервер. После чего он будет подготовлен

Подготовка СУБД

Для работы отказоустойчивого кластера KSC Linux необходимо использовать СУБД на выделенном хосте. В данном руководстве рассмотрен пример с использованием СУБД Postgres. .

Необходимо настроить конфигурацию СУБД. Для этого перейдите в /etc/postgresql/<VERSION>/main/postgresql.conf и примените следующие параметры:

max_connections = 151
shared_buffers = #25% от объема оперативной памяти устройства, на котором установлена СУБД, если оперативной памяти меньше 1 ГБ, то необходимо оставить значение по умолчанию.
huge_pages = try
temp_buffers = 24MB
max_prepared_transactions = 0
work_mem = 16MB
maintenance_work_mem = 128 MB
max_stack_depth = 2MB #максимальный размер стека (например, можно получить это значение, выполнив команду 'ulimit -s’, показывает размер стека в КБ) минус 1 МБ
temp_file_limit = -1
fsync = on
max_parallel_workers_per_gather = 0

Иллюстрация из исходного DOCX: Пример заполнения postgresql.conf

Для работы KSC Linux версии 16.0 и выше на сервере СУБД необходимо наличие 2-х БД. kav – обеспечивает работу всех основных функций KSC Linux, iam – обеспечивает работу службы Identity and Access Manager.

Для KSC Linux 15.4 и ниже БД iam не нужна.

Для работы с этими БД рекомендуется создать отдельных пользователей СУБД. Например можно использовать интерактивный терминальный клиент psql для выполнения SQL-запросов.

Выполните следующие команды через клиент psql:

CREATE USER "kscdbadmin" WITH PASSWORD '<пароль>'; – для создания пользователя СУБД для БД kav

или

CREATE USER "kscdbadmin";
\password kscdbadmin  #чтобы не вводить пароль в открытом виде
CREATE DATABASE "kav" ENCODING 'UTF8' OWNER "kscdbadmin"; #cоздание БД kav

Также выполните команды по выдаче прав для пользователя БД kav

GRANT ALL PRIVILEGES ON DATABASE "kav" TO "kscdbadmin";
GRANT USAGE ON SCHEMA public TO "kscdbadmin";
GRANT CREATE ON SCHEMA public TO "kscdbadmin";
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA "public" TO "kscdbadmin";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA "public" TO "kscdbadmin";

Затем необходимо повторить аналогичные действия для создания 2-й БД iam

CREATE USER "iamdbadmin" WITH PASSWORD '<пароль>';
CREATE DATABASE "iam" ENCODING 'UTF8' OWNER "iamdbadmin";
GRANT ALL PRIVILEGES ON DATABASE "iam" TO "iamdbadmin";
GRANT USAGE ON SCHEMA public TO "iamdbadmin";
GRANT CREATE ON SCHEMA public TO "iamdbadmin";
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA "public" TO "iamdbadmin";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA "public" TO "iamdbadmin";

Важно! При удалении KSC Linux БД iam не удаляется автоматически. Поэтому при удалении или переустановке KSC Linux необходимо удалить / пересоздать БД iam

Затем необходимо разрешить подключение к СУБД с внешних устройств. Перейдите к редактированию файла /etc/postgresql//<VERSION>/main/pg_hba.conf. Укажите возможность подключения к созданным базам данных kav и iam, а также к предустановленной БД postgres как на примере

Затем в файле /etc/postgresql/<VERSION>/main/postgresql.conf укажите возможность прослушивания внешних адресов

Перезапустите службу СУБД

Конфигурация общих папок

Для настройки связи узлов отказоустойчивого кластера KSC Linux с файловым сервером необходимо подключить к ним папки, созданные ранее. В зависимости от вашего дистрибутива Linux установите либо пакет nfs-utils, либо пакет nfs-kernel-server на каждом узле кластера, выполнив соответствующую команду:

yum install nfs-utils
apt install nfs-kernel-server

Создайте папки, которые будут точками монтирования:

mkdir -p /mnt/KlFocStateShare
mkdir -p /mnt/KlFocDataShare_klfoc

Сопоставьте точки монтирования и общие папки, указав их в /etc/fstab:

sudo sh -c "echo <адрес файлового сервера>:/mnt/KlFocStateShare /mnt/KlFocStateShare nfs vers=4,soft,timeo=50,retrans=2,auto,user,rw 0 0 >> /etc/fstab"
sudo sh -c "echo <адрес файлового сервера>:/mnt/KlFocDataShare_klfoc /mnt/KlFocDataShare_klfoc nfs vers=4,noauto,user,rw,exec 0 0 >> /etc/fstab"

Подключите общие папки, выполнив следующие команды:

mount /mnt/KlFocStateShare
mount /mnt/KlFocDataShare_klfoc

После этого разрешения на доступ к общим папкам принадлежат ksc:kladmins

Конфигурация сетевого адаптера / балансировщика

В зависимости от выбранной схемы развёртывания необходимо настроить сетевую инфраструктуру для возможности переключения между узлами кластера.

В любом из случаев вам пригодятся команды nmcli device status для вывода списка сетевых интерфейсов под управлением NetworkManager, nmcli con show для вывода списка сетевых подключений и ip a для идентификации сетевых интерфейсов.

На обоих узлах отказоустойчивого кластера необходимо:

  • Если выбрана схема с виртуальными сетевым адаптером

Установить пакет iputils-arping. В зависимости от вашего дистрибутива Linux выполните одну из следующих команд:

yum install iputils
apt install iputils-arping

Для создания виртуального сетевого интерфейса выполнить команду (одной строкой):

nmcli connection add type macvlan dev <физический интерфейс> mode bridge ifname <виртуальный интерфейс> ipv4.addresses <адрес с маской> ipv4.method manual autoconnect no

Имя виртуального интерфейса задаётся произвольно, но должно быть одинаково на обоих узлах кластера

  • Если выбрана схема с физическим сетевым адаптером

Установить пакет iputils-arping. В зависимости от вашего дистрибутива Linux выполните одну из следующих команд:

yum install iputils
apt install iputils-arping

На обоих узлах кластера на дополнительном сетевом адаптере укажите одинаковый ip-адрес любым удобным способом (через графический интерфейс, терминал) и переведите этот сетевой интерфейс в состояние DOWN командой

  • Если выбрана схема с внешним балансировщиком
  • Подготовьте выделенное Linux-устройство с установленным nginx или другим балансировщиком нагрузки;
  • Настройте балансировку нагрузки. Установите активный узел в качестве основного сервера и пассивный узел в качестве резервного сервера;
  • На сервере балансировщика откройте все

Важно! Доступность узлов отказоустойчивого кластера должна определяться доступностью основных портов подключения к Серверу администрирования (13000 TCP, 13299 TCP). Пассивный узел не принимает никаких внешних подключений, пока не произойдет переключение.

Установка KSC Linux

Установка KSC на активный узел кластера

Для начала установки KSC Linux скачайте необходимый дистрибутив KSC в зависимости от вашего дистрибутива Linux и выполните одну из команд:

sudo apt-get install /<path>/ksc64_<номер_версии>_amd64.deb
sudo yum install /<path>/ksc64-<номер_версии>.x86_64.rpm

Совет! Для удобства перед запуском скрипта postinstall.pl можно создать файл ответов answers.txt, в котором указать все необходимые значения для настройки активного узла кластера KSC Linux. Это поможет избежать ошибок установки из-за неточного ввода параметров после запуска скрипта postinstall.pl.

Для применения файла ответов выполните команду export KLAUTOANSWERS=/полный/путь/до/answers.txt (Важно! Обязательно указать именно полный путь)

Иллюстрация из исходного DOCX: Пример файла ответов

Затем запустите скрипт настройки /opt/kaspersky/ksc64/lib/bin/setup/postinstall.pl

  • Примите условия Лицензионного соглашения – введите Y
  • Примите условия Политики конфиденциальности – введите Y
  • Выберите значение Основной узел кластера – введите 2
  • Укажите локальный путь к точке монтирования общей папки состояния – введите /mnt/KlFocStateShare
  • Укажите локальный путь к точке монтирования общей папки данных – введите /mnt/KlFocDataShare_klfoc
  • Выберите режим подключения отказоустойчивого кластера: через дополнительный сетевой адаптер или внешний балансировщик нагрузки
  • Если вы используете дополнительный сетевой адаптер, введите его имя (имя отображено в столбце NAME в выводе команды nmcli con show)
  • Введите FQDN или IP-адрес дополнительного сетевого адаптера либо FQDN или IP-адрес внешнего балансировщика нагрузки
  • Введите номер SSL-порта Сервера администрирования. По умолчанию номер порта – 13000
  • Оцените примерное количество устройств, которыми вы планируете управлять:
  • Если число управляемых устройств составляет от 1 до 100, введите 1
  • Если число управляемых устройств составляет от 101 до 1000, введите 2
  • Если число управляемых устройств составляет более 1000, введите 3
  • Этот параметр используется для автоматического определения случайной задержки запуска задач в целях оптимизации нагрузки на сеть
  • Введите имя группы безопасности для служб. В данном примере kladmins
  • Введите имя учетной записи для запуска службы Сервера администрирования. В данном примере ksc
  • Введите имя учетной записи, чтобы запустить другие службы. В данном примере ksc
  • Выберите СУБД для работы с KSC. MySQL или MariaDB – 1, PostgreSQL или Postgres Pro SQL – 2
  • Введите DNS-имя или IP-адрес устройства c СУБД
  • Введите номер порта базы данных. По умолчанию 3306 для MySQL или MariaDB и 5432 для PostgreSQL или Postgres Pro
  • Введите имя базы данных. В данном примере kav
  • Введите имя учетной записи администратора базы данных. В данном примере kscdbadmin
  • Введите пароль учетной записи администратора базы данных
  • Введите FQDN сервера IAM (адрес самого KSC)
  • Введите имя учетной записи для запуска службы IAM. В данном примере ksciam
  • Выберите СУБД для работы с IAM. MySQL или MariaDB – 1, PostgreSQL или Postgres Pro SQL – 2
  • Введите DNS-имя или IP-адрес устройства c СУБД
  • Введите номер порта базы данных. По умолчанию 3306 для MySQL или MariaDB и 5432 для PostgreSQL или Postgres Pro
  • Введите имя базы данных. В данном примере iam
  • Введите имя учетной записи администратора базы данных. В данном примере iamdbadmin
  • Введите пароль учетной записи администратора базы данных
  • Подождите, пока службы добавятся и запустятся автоматически:
  • klfocsvc_klfoc
  • kladminserver_klfoc
  • klwebsrv_klfoc
  • klactprx_klfoc
  • klnagent_klfoc
  • kliam_klfoc Для добавления нового пользователя с ролью главный администратора воспользуйтесь командой:
sudo /opt/kaspersky/ksc64/sbin/kladduser -n <имя пользователя>

Установка KSC на пассивный узел кластера

Аналогично в зависимости от вашего дистрибутива Linux и выполните одну из команд:

sudo apt-get install /<path>/ksc64_<номер_версии>_amd64.deb
sudo yum install /<path>/ksc64-<номер_версии>.x86_64.rpm

Затем запустите скрипт настройки /opt/kaspersky/ksc64/lib/bin/setup/postinstall.pl

  • Примите условия Лицензионного соглашения – введите Y
  • Примите условия Политики конфиденциальности – введите Y
  • Выберите значение Вторичный узел кластера – введите 3
  • Укажите локальный путь к точке монтирования общей папки состояния – введите /mnt/KlFocStateShare Проверьте, что служба klfocsvc_klfoc активна на обоих узлах
systemctl status klfocsvc_klfoc

Иллюстрация из исходного DOCX: klfocsvc_klfoc на активном узле

Иллюстрация из исходного DOCX: klfocsvc_klfoc на пассивном узле

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

Дистрибутив можно скачать с

Веб консоль также будет необходимо установить на отдельный хост. Предварительно обязательно необходимо подготовить файл ответов /etc/ksc-web-console-setup.json. Подробные примеры заполнения представлены в

Для установки выполните одну из команд в зависимости от вашего дистрибутива Linux

sudo apt-get install ksc-web-console-<номер сборки>.x86_64.deb
sudo yum install ksc-web-console-<номер сборки>.x86_64.rpm

После завершения установки перезапустите все службы веб консоли KSC Linux

sudo systemctl restart KSC*

По результатам выполненных действий веб-консоль будет доступна по адресу и порту указанному в файле ответов.

Первоначальная настройка KSC Linux

Перейдите в браузере по адресу веб-консоли и войдите под ранее созданной УЗ. При первом входе будет необходимо принять пользовательское соглашение. После этого автоматически запустится Мастер первоначальной настройки.

Мастер выполнит первоначальную настройку для корректной работы KSC:

  • Параметры подключения к интернету. Для сбора обновлений и дистрибутивов Серверу администрирования требуется выход в интернет, в зависимости от характеристик сети требуется выбрать подходящий вариант.
  • Если доступ в интернет есть, после загрузки обновлений Мастер предложит загрузить доступные дистрибутивы.
  • Из предложенного списка выберете типы устройств, участвующих в пилотном тестировании (в будущем можно будет загрузить недостающие дистрибутивы).
  • В соответствии с законодательной базой необходимо выбрать доступный алгоритм шифрования (см. Постановление правительства от 16 апреля 2012 г. № 313).
  • Также выбрать из перечня плагины для управляемых программ, которые необходимо использовать.
  • После чего мастер автоматически загрузит недостающие плагины с серверов Лаборатории Касперского
  • Укажите параметры работы выбранных приложений и примите лицензионные соглашения KSN для них
  • Выберите удобный вариант активации продукта, либо выберите «Добавить лицензионный ключ позже». Особенности – для активации кодом требуется выход в интернет, зато он включает в себя сразу все программные продукты, но в изолированных сегментах возможно только использование ключа.
  • Мастер самостоятельно создаст критически важные задачи для корректной работы KSC Linux.
  • В случае, если требуется получать нотификации на почту, необходимо указать параметры SMTP сервера. В противном случае можно указать параметр «Не использовать TLS» из выпадающего списка и пропустить этот шаг.
  • На этом завершается работа мастера первоначальной настройки, перенастроить параметры можно заново запустив мастер или точечно, в интересующем разделе. На этом этапе отказоустойчивый кластер настроен для работы и подключения устройств