Comment protéger par mot de passe le mode mono-utilisateur dans CentOS 7
Dans l’un de nos articles précédents, nous avons décrit comment démarrer en mode monoposte sur CentOS 7. Il est également connu sous le nom de « mode maintenance », où Linux ne démarre qu’une poignée de services pour les fonctionnalités de base afin de permettre à un seul utilisateur (généralement un super-utilisateur) d’effectuer certaines tâches administratives telles que l’utilisation de fsck pour réparer les systèmes de fichiers corrompus.
En mode mono-utilisateur, le système exécute un shell mono-utilisateur où vous pouvez exécuter des commandes sans aucune identification de connexion (nom d’utilisateur et mot de passe), vous atterrissez directement dans un shell limité avec accès à l’ensemble du système de fichiers.
Il s’agit d’une faille de sécurité massive car elle donne aux intrus un accès direct à un shell (et un accès possible à l’ensemble du système de fichiers). Par conséquent, il est important de protéger par mot de passe le mode monoposte sur CentOS 7, comme expliqué ci-dessous.
Dans CentOS/RHEL 7, les cibles de secours et d’urgence (qui sont également des modes mono-utilisateur) sont protégées par un mot de passe par défaut.
Par exemple, lorsque vous essayez de changer la cible (niveau d’exécution) via systemd en rescue.target (également emergency.target), un mot de passe root vous sera demandé, comme indiqué dans la capture d’écran suivante.
# systemctl isolate rescue.target
OR
systemctl isolate emergency.target
Cependant, si un intrus a un accès physique à un serveur, il peut sélectionner un noyau à démarrer à partir de l’élément de menu grub en appuyant sur la touche e pour modifier la première option de démarrage.
Sur la ligne du noyau qui commence par « linux16 », il/elle peut changer l’argument ro en « rw init=/sysroot/bin/sh " et démarrer en mode mono-utilisateur sur CentOS 7 sans que le système ne demande un mot de passe root, même si la ligne SINGLE=/sbin/sushell est changée en SINGLE=/sbin/sulogin dans le fichier /etc/sysconfig/init.
Ainsi, la seule façon de protéger par mot de passe le mode mono-utilisateur dans CentOS 7 est de protéger GRUB avec un mot de passe en suivant les instructions suivantes.
Comment protéger par mot de passe Grub dans CentOS 7
Créez d’abord un mot de passe chiffré fort à l’aide de l’utilitaire grub2-setpassword, comme indiqué.
# grub2-setpassword
Le hachage du mot de passe est stocké dans /boot/grub2/user.cfg & user, c’est-à-dire que « root » est défini dans le fichier /boot/grub2/grub.cfg, vous pouvez afficher le mot de passe à l’aide de la commande cat comme indiqué.
# cat /boot/grub2/user.cfg
Ouvrez maintenant le fichier /boot/grub2/grub.cfg et recherchez l’entrée de démarrage que vous souhaitez protéger par mot de passe, cela commence par menuentry. Une fois l’entrée localisée, supprimez-en le paramètre --unrestricted.
Enregistrez le fichier et fermez-le, essayez maintenant de redémarrer le système CentOS 7 et modifiez les entrées de démarrage en appuyant sur la touche e, il vous sera demandé de fournir les informations d’identification comme indiqué.
Voilà. Vous avez réussi à protéger par mot de passe votre menu GRUB CentOS 7.






