Partilhar via


SELinux e Azure CycleCloud

A maioria das distribuições modernas baseadas em Chapéu Vermelho Linux (RHEL, CentOS) vêm com o Linux Melhorado de Segurança (SELinux) instalado e definido por enforcing padrão. SELinux é um reforço de segurança para o Linux que permite aos administradores um maior controlo sobre o controlo de acessos. O Azure CycleCloud suporta o SELinux por padrão, mas para suportar uma série de aplicações HPC, o CycleCloud modificará o ambiente SELinux em nome do administrador.

Clusters HPC e SELinux

Muitos clusters HPC Azure Cyclecloud usam um diretório doméstico NFS compartilhado para facilitar a submissão de empregos e facilitar a partilha de informações entre nós de computação. Os clusters que utilizam um diretório doméstico partilhado incluem PBS Pro, Grid Engine e Slurm.

A política de diretório doméstico SELinux padrão impede a utilização de um suporte NFS ou qualquer coisa além de /casa para um diretório doméstico. Por esta razão, se a gestão do utilizador estiver ativada, o CycleCloud executará automaticamente os comandos necessários para permitir um diretório doméstico não standard /partilhado/casa , bem como permitir diretórios domésticos NFS.

Para permitir um diretório doméstico não normal, os seguintes comandos são executados para primeira cópia do contexto de segurança de /casa para /compartilhado/casa e, em seguida, para redefinir o contexto de segurança recursivamente no novo diretório doméstico:

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

Nota

De um modo geral, o nó na maioria dos master clusters HPC exporta o sistema de ficheiros usado como diretório doméstico para todos os execute nós. Neste caso, /shared/home não é um suporte NFS no master , mas sim um symlink para /mnt/exportações/compartilhado/casa que é o diretório exportado via NFS.

Nota

De um modo geral, o nó na maioria dos scheduler clusters HPC exporta o sistema de ficheiros usado como diretório doméstico para todos os execute nós. Neste caso, /shared/home não é um suporte NFS no scheduler , mas sim um symlink para /mnt/exportações/compartilhado/casa que é o diretório exportado via NFS.

Para a montagem de VMs no sistema de ficheiros partilhados, os diretórios domésticos NFS devem ser explicitamente habilitados para que os utilizadores iniciem sessão no VM:

setsebool -P use_nfs_home_dirs 1

Para executar os comandos acima, algumas embalagens serão instaladas se ainda não estiverem instaladas no sistema operativo: policycoreutils fornece os restorecon comandos e setsebool comandos enquanto policycoreutils-python ou policycoreutils-python-utils fornece o semanage comando dependendo da versão OS.

Nota

A maioria dos clusters Azure CycleCloud usam /compartilhado/casa como diretório doméstico do cluster, mas algumas configurações podem usar um caminho diferente. Se for esse o caso, os mesmos comandos são executados utilizando o caminho alternativo em vez de /compartilhado/casa.

SeLinux incapacitante

Em alguns casos, uma aplicação pode não funcionar corretamente devido ao SELinux. Para depurar mais facilmente, o CycleCloud permite que um administrador de cluster deslote o modo permissive SELinux ou disabled através da opção de configuração:

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

Para alterar a política SELinux num nível DESebo é emitido um setenforce 0 comando para definir temporariamente o MODOLINUX para permissive o modo e, em seguida, o ficheiro /etc/selinux/config é modificado para alterar permanentemente o modo SELinux.

Para executar setenforce a embalagem libselinux-utils será instalada se ainda não estiver instalada no SISTEMA.

Importante

Depois de configurar o SELinux para desativar, é necessário reiniciar o VM para desativar totalmente o SELinux. O VM permanece em modo permissivo até ser reiniciado.