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-python
policycoreutils-python-utils
semanage
зависимости от версии ОС.restorecon
policycoreutils
Примечание
Большинство кластеров 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. Виртуальная машина остается в неразрешительном режиме до перезапуска.