Как предварительно установить и предварительно настроить selinux в гостевом образе kvm/qemu, используя docker?

Я работаю в компании, где нам нужно распространять наш образ под управлением SE-Linux внутри.

Продукт использует виртуализацию для дополнительной безопасности, поэтому у нас есть установка с хостом linux, на котором работает несколько гостей qemu-kvm. ОС гостя kvm - это Debian.

Я мог установить selinux на гостя вручную, я также мог активировать SELinux (sestatus проверил, что он работает, и файлы были автоматически помечены).

Следующим шагом будет создание наших собственных модулей и ролей и установка правильных контекстов для каждого процесса и файла в гостевом образе.

Однако, мне нужно, чтобы автоматизировать эту установку + маркировку + процесс настройки selinux во время сборки. Мы не можем создать нормальный образ без selinux, а затем установить selinux вручную на каждой машине. Мы хотим предварительно настроить образ, в котором все готово и работает.

Процесс сборки выполняется внутри docker -image, где будут создаваться и настраиваться образы kvm-guest.

Когда я пытаюсь установить selinux в образе docker, GitLab не создает этот образ из-за ошибок. (Я могу установить selinux вручную на своем локальном компьютере в образе докера, однако sestatus говорит, что SELinux отключен, и поэтому я не могу позволить Docker запускать fixfile relbel 100% успешно)

То, что я нашел во время моих нескольких часов исследований, было только:

  • Как пометить файлы, используя уже запущенный SELinux
  • Как сделать собственные модули и использовать их
  • Как работает вся концепция SELinux
  • Как установить его вручную (всегда с перезагрузкой)
  • Как использовать sVirt для повышения безопасности между хостом и гостевыми виртуальными машинами

Что я не мог нигде найти:

  • Как установить SE-Linux в образе guest-vm во время сборки образа.

Больше деталей:

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

Docker -> run build scripts using a mnt-directory inside docker -> Inside mnt-directory install selinux and label files and setup modules and contexts В этом случае каталог mnt будет представлять образ гостевого kvm, а не хоста.

Если у кого есть подробная информация о том, как это сделать, буду благодарен!

0 ответов

Другие вопросы по тегам