Добрый день, друзья!
Уверены, вы скучали по статьям про Astra Linux Special Edition, PARSEC и, конечно, RabbitMQ. Если честно, и мы скучали.
Как известно, RabbitMQ не поддерживает мандатное разграничение доступа. Поэтому приходится крутиться. Мы сделали эрзац-решение для запуска нескольких экземпляров RabbitMQ на одном узле. При этом RabbitMQ запускаются под различными мандатными уровнями. Такой способ может подойти тем, у кого потоки данных через RabbitMQ не пересекаются по уровням. Т.е. нет необходимости получать сообщения меньших уровней.
Естественно собрали все это богатство в пакеты и выложили в наш репозиторий. Попутно обновили нашу утилиту start-stop-parsec-daemon. Теперь она обладает полным джентельменским набором навыков в любых комбинациях:
- запуск с привилегиями (—capability);
- запуск с мандатными атрибутами (—mac);
- запуск под учетной записью (—chuid).
Краткая инструкция
Сразу следует предупредить — только для Astra Linux Special Edition версии 1.5. Как говорится, не пытайтесь повторить это дома.
- Установите пакет rabbitmq-server-parsec. Пакет совместим со штатным rabbitmq-server. После установки существующие данные будут доступны у экземпляра с нулевым уровнем.
- Задайте пользователю rabbitmq необходимые мандатные уровни, например:
pdpl-user -m 0:2 rabbitmq
- Скопируйте файл
rabbitmq-server-parsec
в каталоге/etc/init.d
необходимое число раз с суффиксом:Х
, где Х — мандатный уровень. Например:cp rabbitmq-server-parsec rabbitmq-server-parsec:1
- В новом файле
rabbitmq-server-parsec:1
откорректируйте поле заголовка Provides:# Provides: rabbitmq-server-parsec:Х
- Включите демон в автозагрузку:
update-rc.d rabbitmq-server-parsec:1 defaults
После запуска к брокеру нужно будет подключаться на порт 5672 + Х, где Х — мандатный уровень.
Вот и всё! Пишите нам письма на team@lab50.net, заказывайте услугу платной консультации и поддержки!