Защита приложений в Linux LXC-контейнерах

Защита приложений в Linux LXC-контейнерах

Sentinel LDK поддерживает защищённые приложения, которые выполняются в LXC-контейнерах под управлением Linux, в рамках ограничений, описанных в этом разделе.

Лицензию на продукт для защищаемого приложения, работающего в LXC-контейнере, можно развернуть с использованием ключей HL или ключей SL, как описано ниже.

ПРИМЕЧАНИЕ. Этот раздел применим к приложениям, защищенным и лицензированным с использованием Sentinel LDK версии 8.2 и более поздних версий.



Использование программных SL-ключей

Sentinel LDK поддерживает использование SL-ключей для защищённых приложений, работающих в LXC-контейнере. Среда выполнения может быть установлена ​​на хост-машине или внутри LXC-контейнера.

Среду выполнения и ключ SL для защищаемого приложения, работающего в LXC-контейнере, можно настроить с помощью одного из описанных ниже вариантов.

Вариант 1 - Вне контейнера

  1. Тип ключа - Ключ SL AdminMode (включает облачное лицензирование).
  2. Расположение среды выполнения - Главный компьютер или удалённый компьютер.
  3. Местонахождение ключа SL - Главный компьютер или удалённый компьютер.

Ключи RTE и SL устанавливаются вне LXC-контейнера. Этот вариант не имеет никаких ограничений. RTE работает как обычно. Защищаемое приложение, работающее в LXC-контейнере, получает доступ к лицензии через сетевое соединение.

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

Вариант 2 - Внутри контейнера

  1. Тип ключа - SL AdminMode key.
  2. Расположение среды выполнения - Внутри контейнера (версия RTE должна быть 8.21 или более поздняя).
  3. Местонахождение ключа SL - Внутри контейнера.

Вам не нужно ничего устанавливать на хост.

Вариант 3 - Смешанное решение

  1. Тип ключа - Ключ SL AdminMode (включает облачное лицензирование/
  2. Расположение среды выполнения - Внутри контейнера (версия RTE должна быть 8.21 или более поздняя).
  3. Местонахождение ключа SL - Главный компьютер или удаленный компьютер.

Вы устанавливаете RTE внутри контейнера, но настраиваете LXC таким образом, чтобы каталоги хранения лицензий оставались на хосте, что позволяет устанавливать лицензии любого типа.


ПРИМЕЧАНИЕ. Вы не можете установить RTE одновременно внутри контейнера и на хосте. При использовании этого варианта убедитесь, что RTE выполняется только внутри контейнера.


Хост-машина или удалённая машина (сервис) может предоставлять смонтированный постоянный том в качестве хранилища SL. В облачной среде постоянный том — это ресурс, поддерживаемый постоянным диском или службой томов.


Вы можете настроить LXC таким образом, чтобы каталоги хранения лицензий оставались на хосте, используя конфигурационный файл LXC из /var/lib/lxc/<containername>/. Добавьте следующие команды в конфигурационный файл, сохранив каталоги /var/hasplm и /etc/hasplm на хосте.


lxc.mount.entry=/var/hasplm var/hasplm none bind,optional,0
lxc.mount.entry=/etc/hasplm etc/hasplm none bind,optional,0


Использование HL-ключей

Sentinel LDK поддерживает использование ключей HL для защищенных приложений, работающих в LXC-контейнере.

При установке среды выполнения Sentinel LDK (RTE) для использования с ключами HL, RTE можно установить либо на хост-машине, либо внутри LXC-контейнера.

Вариант 1 - Снаружи контейнера

  1. Расположение среды выполнения - Главная машина.
  2. Доступ по ключу HL - Ключ HL получен с хост-машины.

Защищённое приложение, работающее в LXC-контейнере, получает доступ к лицензии на ключе HL через сетевое соединение. Поддерживаются только сетевые лицензии.


Sentinel рекомендует использовать этот вариант, если лицензия поддерживает удаленный доступ. Доступ к ключу HL следует осуществлять через RTE, а не напрямую из LXC-контейнера.

Вариант 2 - Внутри контейнера

  1. Расположение среды выполнения - Внутри контейнера (версия RTE должна быть 8.21 или более поздняя).
  2. Доступ по ключу HL - Доступ к ключу HL осуществляется изнутри контейнера.

Это включает в себя сценарий, в котором API лицензирования обращается к ключам HL напрямую, без необходимости использования RTE.


При установке RTE внутри LXC-контейнера хост необходимо настроить для совместного использования определенного ключа HL.


Например:

а.Список USB-ключей
$ lsusb
Bus 002 Device 006: ID 0529:0003 Aladdin Knowledge Systems

б.Узел устройства виден следующим образом:
$ ls -l /dev/bus/usb/002/006 
crw-rw-rw- 1 root plugdev 189, 133 Apr 1 08:06 /dev/bus/usb/002/006

с.Добавьте права доступа cgroup в конфигурационный файл LXC:
(/var/lib/lxc/<containerName>/config ):
lxc.cgroup.devices.allow = c 189:* rwm
lxc.mount.entry=/dev/bus/usb/002 dev/bus/usb/002 none bind,optional,create=dir