SELinux a Azure CycleCloud
Většina moderních distribucí Linuxu založených na Red Hatu (RHEL, CentOS) je nainstalovaná a ve výchozím nastavení nastavená na enforcing
Security Enhanced Linux (SELinux). SELinux je vylepšení zabezpečení linuxu, které správcům umožňuje větší kontrolu nad řízením přístupu. Azure CycleCloud ve výchozím nastavení podporuje SELinux, ale aby podporoval řadu aplikací HPC, CycleCloud upraví prostředí SELinux jménem správce.
Clustery HPC a SELinux
Mnoho clusterů PROSTŘEDÍ HPC v Azure CycleCloudu používá sdílený domovský adresář NFS, který usnadňuje odesílání úloh a usnadňuje sdílení informací mezi výpočetními uzly. Clustery, které využívají sdílený domovský adresář, zahrnují PBS Pro, Grid Engine a Slurm.
Výchozí zásady domovského adresáře SELinux brání použití připojení systému souborů NFS nebo čehokoli kromě souboru /home pro domovský adresář. Z tohoto důvodu, pokud je povolená správa uživatelů , CycleCloud automaticky spustí nezbytné příkazy, které umožní standardní domovský adresář /shared/home a také povolit domovské adresáře NFS.
Pokud chcete povolit nestandardní domovský adresář, spustí se následující příkazy, které nejprve zkopírují kontext zabezpečení z /home do /shared/home a potom resetují kontext zabezpečení rekurzivně v novém domovském adresáři:
semanage fcontext -a -e /home /shared/home
restorecon -R /shared/home
Poznámka
Obecně řečeno, master
uzel ve většině clusterů HPC exportuje systém souborů používaný jako domovský adresář pro všechny execute
uzly. V tomto případě /shared/home není připojení NFS k master
systému souborů NFS, ale místo toho je symlink na /mnt/export/export/shared/home , což je adresář exportovaný přes systém souborů NFS.
Poznámka
Obecně řečeno, scheduler
uzel ve většině clusterů HPC exportuje systém souborů používaný jako domovský adresář pro všechny execute
uzly. V tomto případě /shared/home není připojení NFS k scheduler
systému souborů NFS, ale místo toho je symlink na /mnt/export/export/shared/home , což je adresář exportovaný přes systém souborů NFS.
Aby se uživatelé mohli k virtuálnímu počítači přihlásit k virtuálnímu počítači, musí být domovské adresáře NFS explicitně povolené:
setsebool -P use_nfs_home_dirs 1
Pokud chcete spustit výše uvedené příkazy, nainstalují se některé balíčky, pokud ještě nejsou v operačním systému nainstalované: policycoreutils
poskytují restorecon
příkazy a setsebool
příkazy v policycoreutils-python
policycoreutils-python-utils
semanage
závislosti na verzi operačního systému.
Poznámka
Většina clusterů Azure CycleCloud používá jako domovský adresář clusteru /shared/home , ale některé konfigurace můžou používat jinou cestu. Pokud se jedná o tento případ, spustí se stejné příkazy pomocí alternativní cesty místo /shared/home.
Zakázání SELinuxu
V některých případech aplikace nemusí správně fungovat kvůli SELinux. Kvůli snadnějšímu ladění umožňuje CycleCloud správci clusteru nastavit režim SELinux na permissive
nebo disabled
prostřednictvím možnosti konfigurace:
cyclecloud.selinux.policy = permissive # or `disabled`
Pokud chcete změnit zásadu SELinux na úrovni operačního systému, setenforce 0
vydá se příkaz, který dočasně nastaví SELinux na permissive
režim a pak se /etc/selinux/config soubor změní tak, aby trvale změnil režim SELinux.
Aby bylo možné balíček spustit setenforce
, libselinux-utils
nainstaluje se, pokud ještě není nainstalovaný v operačním systému.
Důležité
Po nastavení SELinux na zakázání se k úplnému zakázání SELinux vyžaduje restartování virtuálního počítače. Virtuální počítač zůstane v režimu, dokud se nerestartuje.