Recherche de site Web

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 mono-utilisateur sur CentOS 7. Il est également connu sous le nom de « mode de maintenance », dans lequel 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 superutilisateur) effectue 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 dans lequel vous pouvez exécuter des commandes sans aucun identifiant 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 mono-utilisateur sur CentOS 7 comme expliqué ci-dessous.

Dans CentOS/RHEL 7, les sauvetage et les cibles d'urgence (qui sont également des modes mono-utilisateur) sont des mots de passe. protégé par défaut.

Par exemple, lorsque vous essayez de modifier la cible (runlevel) via systemd en rescue.target (également emergency.target), il vous sera demandé un mot de passe root, 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 pour démarrer à partir de l'élément du 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 peut changer l'argument ro en “rw init=/sysroot/bin/sh ” et démarrez en mode mono-utilisateur sur CentOS 7 sans que le système ne demande de mot de passe root, même si la ligne SINGLE=/sbin/sushell est remplacée par 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 crypté fort à l'aide de l'utilitaire grub2-setpassword comme indiqué.

grub2-setpassword

Le Hash du mot de passe est stocké dans /boot/grub2/user.cfg et l'utilisateur, c'est-à-dire ”root ” est défini dans / boot/grub2/grub.cfg, vous pouvez afficher le mot de passe à l'aide de la commande cat comme indiqué.

cat /boot/grub2/user.cfg

Maintenant, ouvrez le fichier /boot/grub2/grub.cfg et recherchez l'entrée de démarrage que vous souhaitez protéger par mot de passe, elle commence par menuentry. Une fois l'entrée localisée, supprimez-en le paramètre --unrestricted.

Enregistrez le fichier et fermez, 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é.

C'est ça. Vous avez protégé avec succès par mot de passe votre menu GRUB CentOS 7.