Почему SELinux по-прежнему отключен, хотя CONFIG_SECURITY_SELINUX включен в ядре? - PullRequest
0 голосов
/ 03 мая 2019

Я собираю ядро ​​Linux v3.12.61 с патчем PREEMPT-RT в Yocto (1.8.1 Fido) со следующей включенной конфигурацией ядра.Каталог /sys/fs/selinux создан, но он пуст.

CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 
 #CONFIG_SECURITY_SELINUX_DISABLE is not set 
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
 #CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
CONFIG_DEFAULT_SECURITY_SELINUX=y

Независимо от того, активирую ли я CONFIG_SECURITY_SELINUX_BOOTPARAM или устанавливаю 0 или 1, результат остается тем же.

Я установил инструменты пользовательского пространства SELinux с помощьюметаселинуксовый слой от OE.Я также установил SELINUX=permissive в /etc/selinux/config.Запуск sestatus возвращает "SELinux status: disabled".Ранее это было все, что мне нужно было сделать при компиляции старого ядра (v3.2).Я что-то здесь упускаю?

1 Ответ

1 голос
/ 03 мая 2019

В документации для слоя meta-selinux есть раздел, в котором в общих чертах описывается, что делать, если вы хотите использовать selinux в своих изображениях.

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

Создание слоя meta-selinux

Чтобы добавить поддержку selinux в сборку poky, этот слой необходимо добавить в файл bblayers.conf ваших проектов.

По умолчанию компоненты selinux отключены.Это соответствует руководству по совместимости с Yocto Project, которое указывает, что простое включение слоя не должно изменять поведение системы.

Чтобы использовать компоненты этого слоя, вы должны добавить «selinux» к DISTRO_FEATURES.В дополнение к selinux, вы должны быть уверены, что acl, xattr и pam также присутствуют.например, DISTRO_FEATURES_append = " acl xattr pam selinux"

Вы также должны указать предпочтительного поставщика для виртуальной / refpolicy.Включенные в этот уровень политики являются просто ссылочными политиками и должны быть адаптированы для вашей среды.

Включите refpolicy-mls: например, PREFERRED_PROVIDER_virtual/refpolicy ?= "refpolicy-mls"

...