Partager via


Échec de la connexion SSH aux machines virtuelles Linux Azure en raison d’une configuration incorrecte de SELinux

S’applique à : ✔️ Machines virtuelles Linux

Note

CentOS référencé dans cet article est une distribution Linux et atteint la fin de vie (EOL). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez les conseils sur la fin de vie centOS.

Cet article fournit une solution à un problème où la connexion SSH (Secure Shell) à une machine virtuelle Azure échoue en raison de la configuration incorrecte de SELinux.

Background

Le modèle de sécurité Unix est basé sur le contrôle d’accès discrétionnaire (DAC). Security-Enhanced Linux (SELinux) implémente le contrôle d’accès obligatoire (MAC) pour Linux à l’aide de modules noyau et d’outils d’espace utilisateur. MAC fournit un environnement plus contrôlé pour l’accès aux ressources et supprime la capacité de l’utilisateur racine à accéder à toutes les ressources sur le système d’exploitation sans restrictions. Il atténue également plusieurs types de risques de sécurité en utilisant le modèle de sécurité Unix traditionnel.

Différentes distributions incluent SELinux out of the box ou fournissent un moyen simple d’activer la prise en charge du noyau et d’installer des outils d’espace utilisateur. Pour plus d’informations, consultez les articles SELinux suivants de certains des principaux fournisseurs Linux :

Les images basées sur Red Hat sur Azure sont activées avec SELinux ; d’autres distributions ne le sont pas. Lorsque vous utilisez SELinux dans Ubuntu, il existe un avertissement concernant son état non maintenu sur cette distribution. Ubuntu implémente une autre solution pour MAC, appelée AppArmor.

Conditions préalables

Vérifiez que la console série est activée et fonctionnelle dans la machine virtuelle Linux.

Symptômes

Une configuration incorrecte de SELinux peut entraîner l’incapacité du système d’exploitation à charger la stratégie SELinux, ce qui empêche le système d’exploitation de terminer le démarrage.

Vérifiez la console série à partir du Portail Azure ou via Azure CLI. Le message suivant s’affiche à la fin de la sortie :

Capture d’écran montrant l’erreur « Échec de chargement de la stratégie SELinux » dans le journal de la console série.

La configuration SELinux est gérée par l’administrateur système. L’administrateur système peut résoudre ce problème à l’aide de l’une des méthodes suivantes.

Solution 1 : Démarrer la machine virtuelle avec SELinux désactivée à l’aide de la console série

  1. Déclenchez le redémarrage de la machine virtuelle (dur) à partir de la console série Azure.

  2. Interrompez votre machine virtuelle dans le menu GRUB avec la touche ÉCHAP .

  3. Sélectionnez E pour modifier la première entrée du noyau dans le menu GRUB.

  4. Accédez à la linux16 ligne et ajoutez-y selinux=0 pour désactiver temporairement SELinux.

    GIF animé qui montre le processus d’interruption du démarrage au niveau du menu GRUB pour désactiver temporairement SELinux.

  5. Validez et corrigez la configuration SELinux dans /etc/selinux/config.

    Par exemple, une erreur courante consiste à définir la SELINUXTYPE clé sur l’une des valeurs utilisées pour la SELINUX clé. Consultez la capture d’écran suivante comme exemple :

    Capture d’écran montrant que la clé SELINUXTYPE est incorrectement définie sur désactivée.

    Notez la dernière ligne. SELINUXTYPE=disabled La SELINUXTYPE clé doit être définie sur targeted, minimumou mls plutôt que disabledsur . La capture d’écran suivante montre la configuration correcte :

    Capture d’écran montrant la configuration correcte de /etc/selinux/config.

Solution 2 : Réparer la configuration incorrecte de SELinux à l’aide d’une machine virtuelle de secours

Conseil

Si vous avez une sauvegarde récente de la machine virtuelle, restaurez la machine virtuelle à partir de la sauvegarde pour résoudre le problème de configuration.

  1. Si la console série Azure ne fonctionne pas dans la machine virtuelle spécifique ou n’est pas une option dans votre abonnement, résolvez ce problème à l’aide d’une machine virtuelle de secours/réparation. Utilisez les commandes de réparation de machine virtuelle pour créer une machine virtuelle de réparation qui a une copie du disque de système d’exploitation de la machine virtuelle affectée attachée. Montez la copie des systèmes de fichiers du système d’exploitation dans la machine virtuelle de réparation à l’aide de chroot.

    Note

    Vous pouvez également créer une machine virtuelle de secours manuellement à l’aide du portail Azure. Pour plus d’informations, consultez l’article Résoudre les problèmes d’une machine virtuelle Linux en attachant le disque du système d’exploitation à une machine virtuelle de récupération à l’aide du portail Azure.

  2. Validez et corrigez la configuration SELinux dans /etc/selinux/config. Pour ce faire, suivez l’étape 5 dans la solution 1 : démarrer la machine virtuelle avec SELinux désactivée à partir de la console série.

  3. Une fois la configuration SELinux corrigée, effectuez les actions suivantes :

    1. Quittez chroot.
    2. Démontez la copie des systèmes de fichiers à partir de la machine virtuelle de secours/réparation.
    3. Exécutez la az vm repair restore commande pour échanger le disque du système d’exploitation réparé avec le disque de système d’exploitation d’origine de la machine virtuelle. Pour plus d’informations, consultez l’étape 5 de la réparation d’une machine virtuelle Linux à l’aide des commandes de réparation de machine virtuelle Azure.
    4. Vérifiez si la machine virtuelle est en mesure de démarrer en examinant la console série Azure ou en essayant de se connecter à la machine virtuelle.

Étapes suivantes

Si le problème n’est pas dû à une configuration incorrecte de SELinux, consultez Résoudre les erreurs de démarrage d’Azure Linux Machines Virtuelles pour obtenir d’autres options de résolution des problèmes.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.