Поделиться через


SELinux и Azure CycleCloud

Большинство современных дистрибутивов Linux на основе Red Hat (RHEL, CentOS) поставляются enforcing с установленными и установленными по умолчанию улучшенными версиями Linux (SELinux). SELinux — это улучшение безопасности в Linux, которое позволяет администраторам более контролировать контроль доступа. Azure CycleCloud по умолчанию поддерживает SELinux, но для поддержки ряда приложений HPC CycleCloud изменит среду SELinux от имени администратора.

Кластеры HPC и SELinux

Многие кластеры Azure Cyclecloud HPC используют общий домашний каталог NFS для упрощения отправки заданий и упрощения обмена информацией между вычислительными узлами. Кластеры, использующие общий домашний каталог, включают PBS Pro, grid Engine и Slurm.

Политика домашнего каталога SELinux по умолчанию предотвращает использование подключения NFS или ничего, кроме /home для домашнего каталога. По этой причине, если управление пользователями включено, CycleCloud автоматически выполнит необходимые команды, чтобы разрешить нестандартный домашний каталог /shared/home , а также разрешить домашние каталоги NFS.

Чтобы включить нестандартный домашний каталог, выполните следующие команды, чтобы сначала скопировать контекст безопасности из /home в /shared/home , а затем рекурсивно сбросить контекст безопасности в новом домашнем каталоге:

semanage fcontext -a -e /home /shared/home
restorecon -R /shared/home

Примечание

Как правило, master узел в большинстве кластеров HPC экспортирует файловую систему, используемую в качестве домашнего execute каталога для всех узлов. В этом случае /shared/home не является подключением NFS на сервере master , а представляет собой символьную ссылку на /mnt/exports/shared/home , которая является каталогом, экспортируемым через NFS.

Примечание

Как правило, scheduler узел в большинстве кластеров HPC экспортирует файловую систему, используемую в качестве домашнего execute каталога для всех узлов. В этом случае /shared/home не является подключением NFS на сервере scheduler , а представляет собой символьную ссылку на /mnt/exports/shared/home , которая является каталогом, экспортируемым через NFS.

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

setsebool -P use_nfs_home_dirs 1

Чтобы выполнить приведенные выше команды, некоторые пакеты будут установлены, если они еще не установлены в операционной системе: предоставляет команды и setsebool команды в policycoreutils-pythonpolicycoreutils-python-utilssemanage зависимости от версии ОС.restoreconpolicycoreutils

Примечание

Большинство кластеров Azure CycleCloud используют /shared/home в качестве домашнего каталога кластера, но некоторые конфигурации могут использовать другой путь. В этом случае те же команды выполняются с помощью альтернативного пути вместо /shared/home.

Отключение SELinux

В некоторых случаях приложение может работать неправильно из-за SELinux. Чтобы упростить отладку, CycleCloud позволяет администратору кластера задать режим permissive SELinux или disabled с помощью параметра конфигурации:

cyclecloud.selinux.policy = permissive  # or `disabled`

Чтобы изменить политику SELinux на уровне setenforce 0 ОС, выдается команда, чтобы временно установить режим SELinux, а затем файл /etc/selinux/config изменяется для постоянного изменения режима SELinuxpermissive.

Чтобы запустить setenforce пакет libselinux-utils , будет установлен, если он еще не установлен в ОС.

Важно!

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