Delen via


SELinux en Azure CycleCloud

De meeste moderne Linux-distributies op basis van Red Hat (RHEL, CentOS) worden geleverd met Security Enhanced Linux (SELinux) geïnstalleerd en standaard op enforcing ingesteld. SELinux is een beveiligingsverbetering voor Linux waarmee beheerders meer controle krijgen over toegangsbeheer. Azure CycleCloud biedt standaard ondersteuning voor SELinux, maar om een aantal HPC-toepassingen te ondersteunen, wijzigt CycleCloud de SELinux-omgeving namens de beheerder.

HPC-clusters en SELinux

Veel AZURE Cyclecloud HPC-clusters maken gebruik van een gedeelde NFS-basismap om het verzenden van taken te vergemakkelijken en het delen van informatie tussen rekenknooppunten te vereenvoudigen. Clusters die gebruikmaken van een gedeelde basismap zijn PBS Pro, Grid Engine en Slurm.

Het standaard SELinux-basismapbeleid voorkomt het gebruik van een NFS-koppeling of iets anders dan /home voor een basismap. Als gebruikersbeheer daarom is ingeschakeld, voert CycleCloud automatisch de benodigde opdrachten uit om zowel een niet-standaard basismap /gedeeld/home toe te staan als NFS-basismappen toe te staan.

Als u een niet-standaardbasismap wilt inschakelen, worden de volgende opdrachten uitgevoerd om eerst de beveiligingscontext van /home naar /shared/home te kopiëren en vervolgens de beveiligingscontext recursief in de nieuwe basismap opnieuw in te stellen:

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

Opmerking

Over het algemeen exporteert het knooppunt in de master meeste HPC-clusters het bestandssysteem dat wordt gebruikt als de basismap voor alle execute knooppunten. In dit geval is /shared/home geen NFS-koppeling op de master , maar in plaats daarvan een symlink naar /mnt/exports/shared/home . Dit is de map die wordt geëxporteerd via NFS.

Opmerking

Over het algemeen exporteert het knooppunt in de scheduler meeste HPC-clusters het bestandssysteem dat wordt gebruikt als de basismap voor alle execute knooppunten. In dit geval is /shared/home geen NFS-koppeling op de scheduler, maar een symlink naar /mnt/exports/shared/home, de map die wordt geëxporteerd via NFS.

Voor VM's die het gedeelde bestandssysteem koppelen, moeten NFS-basismappen expliciet worden ingeschakeld om gebruikers aan te melden bij de virtuele machine:

setsebool -P use_nfs_home_dirs 1

Als u de bovenstaande opdrachten wilt uitvoeren, worden sommige pakketten geïnstalleerd als ze nog niet op het besturingssysteem zijn geïnstalleerd: policycoreutils biedt de restorecon en setsebool opdrachten terwijl policycoreutils-python of policycoreutils-python-utils levert de semanage opdracht, afhankelijk van de versie van het besturingssysteem.

Opmerking

De meeste Azure CycleCloud-clusters gebruiken /shared/home als basismap van het cluster, maar sommige configuraties kunnen een ander pad gebruiken. Als dit het geval is, worden dezelfde opdrachten uitgevoerd met behulp van het alternatieve pad in plaats van /shared/home.

SELinux uitschakelen

In sommige gevallen werkt een toepassing mogelijk niet correct vanwege SELinux. Om eenvoudiger fouten op te sporen, kan CycleCloud een clusterbeheerder toestaan om de SELinux-modus in te stellen op permissive of disabled via de configuratieoptie.

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

Als u het SELinux-beleid op besturingssysteemniveau wilt wijzigen, wordt een setenforce 0 opdracht uitgegeven om SELinux tijdelijk in te stellen op permissive de modus en wordt het bestand /etc/selinux/config gewijzigd om de SELinux-modus permanent te wijzigen.

Om setenforce uit te voeren, wordt het pakket libselinux-utils geïnstalleerd als het nog niet op het besturingssysteem is geïnstalleerd.

Belangrijk

Nadat SELinux is uitgeschakeld, is een herstart van de VM vereist om SELinux volledig uit te schakelen. De virtuele machine blijft in de permissieve modus totdat deze opnieuw is opgestart.