Разрешить определенное рискованное поведение отдельной программы безопасным способом в SELinux

Вам все равно нужно изменить размер файловой системы, содержащейся в LV (при условии, что это одна из файловых систем ext ):

resize2fs /dev/mapper/vg_condor-lv_root

Если вы хотите изменить размер логического тома и его файловой системы за одну операцию, используйте fsadm :

fsadm resize /dev/mapper/vg_condor-lv_root

Поддерживает файловые системы ext , а также ReiserFS и XFS.

8
25.01.2019, 15:20
1 ответ

audit2allow, скорее всего, генерирует правило, разрешающее execheapдля процесса типа container_t. Вы всегда можете сначала сгенерировать модуль и проверить его перед загрузкой.

Возможная проблема заключается в том, что теперь любому процессу с типом container_tразрешена одна и та же операция. Чтобы избежать этого, вам, возможно, потребуется создать собственный пользовательский тип (, используя container_tв качестве шаблона ), и разрешить только execheapдля этого специального типа.

В этом сообщении в блоге Дэна Уолша объясняется, как написать такую ​​пользовательскую политику. Вы также можете комбинировать это с audit2allowдля создания фактических правил. Основные шаги:

  1. Создайте базовую политику контейнера, напримерcontainer_execheap:

    policy_module(container_execheap, 1.0)
    
    virt_sandbox_domain_template(container_execheap_t)
    
    Макрос

    virt_sandbox_domain_templateсоздает новый тип container_execheap_tи создает необходимые правила для работы докера, чтобы новый тип можно было использовать в качестве контейнерного домена.

  2. Скомпилируйте и загрузите модуль политики (необходимые файлы разработки, включая make-файл, должны быть предоставлены selinux-policy-develпакетом):

    make -f /usr/selinux/devel/Makefile container_execheap.pp
    semodule -i container_execheap.pp
    

    Новый тип можно настроить как разрешительный домен:

    semanage permissive -a container_execheap_t
    

    Для разрешающих доменов отказы AVC регистрируются, но правила не применяются . Таким образом, позже можно легко сгенерировать отсутствующие правила, используя audit2allow.

  3. Запустите контейнер в этом новом контексте, напримерdocker run... --security-opt label:type:container_execheap_t...

  4. Генерация ожидаемых ошибок. Затем запустите audit2allow, чтобы сгенерировать правила, разрешающие эти операции для container_execheap_t. Вы можете обновить тот же модуль .te, файл (, не забудьте увеличить номер версии )с новыми правилами. Скомпилируйте и установите обновленный модуль.

  5. Когда ошибок больше не возникнет, верните настраиваемый тип контейнера в принудительный режим semanage -d container_execheap.

4
27.01.2020, 20:13

Теги

Похожие вопросы