Как предварительно установить и предварительно настроить 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, а не хоста.
Если у кого есть подробная информация о том, как это сделать, буду благодарен!