SELinux と Azure CycleCloud
最新の Red Hat ベースの Linux ディストリビューション (RHEL、CentOS) には、 Security Enhanced Linux (SELinux) がインストールされ、既定で設定 enforcing
されています。 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
ではなく、NFS 経由でエクスポートされたディレクトリである /mnt/exports/shared/home へのシンボリック リンクです。
注意
一般に scheduler
、ほとんどの HPC クラスターのノードは、すべてのノードのホーム ディレクトリとして使用されるファイルシステムを execute
エクスポートします。 この場合、 /shared/home は NFS マウント scheduler
ではなく、NFS 経由でエクスポートされたディレクトリである /mnt/exports/shared/home へのシンボリック リンクです。
共有ファイルシステムをマウントする VM の場合、ユーザーが VM にログインするには、NFS ホーム ディレクトリを明示的に有効にする必要があります。
setsebool -P use_nfs_home_dirs 1
上記のコマンドを実行するために、一部のパッケージがオペレーティング システムpolicycoreutils
にまだインストールされていない場合にインストールされます。OS のバージョンに応じてコマンドをrestorecon
setsebool
提供する一方policycoreutils-python
、またはpolicycoreutils-python-utils
コマンドを提供semanage
します。
注意
ほとんどの Azure CycleCloud クラスターでは、クラスターのホーム ディレクトリとして /shared/home が使用されますが、一部の構成では別のパスが使用される場合があります。 この場合、 /shared/home ではなく代替パスを使用して同じコマンドが実行されます。
SELinux の無効化
場合によっては、SELinux が原因でアプリケーションが正しく動作しない場合があります。 より簡単にデバッグするために、CycleCloud では、クラスター管理者が構成オプションに対して、またはdisabled
構成オプションを使用して SELinux モードpermissive
を設定できます。
cyclecloud.selinux.policy = permissive # or `disabled`
OS レベルで SELinux ポリシーを変更するには、 setenforce 0
SELinux を一時的にモードに設定する permissive
コマンドが発行され、 /etc/selinux/config ファイルが変更されて SELinux モードが完全に変更されます。
実行 setenforce
するために、OS にまだインストールされていない場合は、パッケージ libselinux-utils
がインストールされます。
重要
SELinux を無効に設定した後、SELinux を完全に無効にするには VM の再起動が必要です。 VM は再起動するまで許容モードのままになります。