Recherche de site Web

4 façons de désactiver le compte root sous Linux


Le compte root est le compte ultime sur Linux et autres systèmes d'exploitation de type Unix. Ce compte a accès à toutes les commandes et fichiers d'un système avec des autorisations complètes de lecture, d'écriture et d'exécution. Il est utilisé pour effectuer tout type de tâche sur un système ; pour créer/mettre à jour/accéder/supprimer les comptes d’autres utilisateurs, installer/supprimer/mettre à niveau des packages logiciels et bien plus encore.

Étant donné que l'utilisateur root dispose de pouvoirs absolus, toutes les actions qu'il effectue sont critiques sur un système. À cet égard, toute erreur commise par l'utilisateur root peut avoir d'énormes implications sur le fonctionnement normal d'un système. En outre, ce compte peut également faire l'objet d'abus en l'utilisant de manière inappropriée ou inappropriée, soit accidentellement, par malveillance, ou par ignorance artificielle des politiques.

Par conséquent, il est conseillé de désactiver l'accès root sur votre serveur Linux, mais de créer un compte administratif qui doit être configuré pour obtenir les privilèges d'utilisateur root à l'aide de la commande sudo, afin d'effectuer des tâches critiques sur le serveur.

Dans cet article, nous expliquerons quatre façons de désactiver la connexion au compte utilisateur root sous Linux.

Attention : Avant de bloquer l'accès au compte root, assurez-vous d'avoir créé un compte administratif, capable d'utiliser la commande sudo pour obtenir le root. privilèges utilisateur, avec la commande useradd et donnez à ce compte utilisateur un mot de passe fort. Le flag -m signifie créer le répertoire personnel de l'utilisateur et -c permet de spécifier un commentaire :

useradd -m -c "Admin User" admin
passwd admin

Ensuite, ajoutez cet utilisateur au groupe approprié d'administrateurs système à l'aide de la commande usermod, où le commutateur -a signifie ajouter un compte utilisateur et -G spécifie un groupe pour ajouter l'utilisateur. dans (wheel ou sudo selon votre distribution Linux) :

usermod -aG wheel admin    #CentOS/RHEL
usermod -aG sudo admin     #Debian/Ubuntu 

Une fois que vous avez créé un utilisateur avec des privilèges administratifs, passez à ce compte afin de bloquer l'accès root.

su admin

1. Changer le shell de l'utilisateur root

La méthode la plus simple pour désactiver la connexion de l'utilisateur root consiste à changer son shell de /bin/bash ou /bin/bash (ou tout autre shell autorisant la connexion de l'utilisateur) à /sbin/nologin, dans le fichier /etc/passwd, que vous pouvez ouvrir pour le modifier à l'aide de l'un de vos éditeurs de ligne de commande préférés, comme indiqué.

  
sudo vim /etc/passwd

Changez la ligne :

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

Enregistrez le fichier et fermez-le.

À partir de maintenant, lorsque l'utilisateur root se connectera, il recevra le message « Ce compte n'est actuellement pas disponible. ». Il s'agit du message par défaut, mais vous pouvez modifiez-le et définissez un message personnalisé dans le fichier /etc/nologin.txt.

Cette méthode n'est efficace qu'avec les programmes qui nécessitent un shell pour la connexion de l'utilisateur, sinon les clients sudo, ftp et e-mail peuvent accéder au compte root.

2. Désactivez la connexion root via le périphérique console (TTY)

La deuxième méthode utilise un module PAM appelé pam_securetty, qui autorise l'accès root uniquement si l'utilisateur se connecte sur un TTY « sécurisé », comme défini par la liste dans /etc/securetty.

Le fichier ci-dessus vous permet de spécifier sur quels appareils TTY l'utilisateur root est autorisé à se connecter, vider ce fichier empêche la connexion root sur tous les appareils connectés au système informatique.

Pour créer un fichier vide, exécutez.

sudo mv /etc/securetty /etc/securetty.orig
sudo touch /etc/securetty
sudo chmod 600 /etc/securetty

Cette méthode a certaines limites, elle n'affecte que les programmes tels que la connexion, les gestionnaires d'affichage (c'est-à-dire gdm, kdm et xdm) et d'autres services réseau qui lancez un ATS. Des programmes tels que su, sudo, ssh et d'autres outils openssh associés auront accès au compte root.

3. Désactivez la connexion racine SSH

Le moyen le plus courant d'accéder aux serveurs distants ou aux VPS est via SSH et pour bloquer la connexion de l'utilisateur root sous celui-ci, vous devez modifier le fichier /etc/ssh/sshd_config.

sudo vim /etc/ssh/sshd_config

Décommentez ensuite (si elle est commentée) la directive PermitRootLogin et définissez sa valeur sur no comme indiqué dans la capture d'écran.

Une fois que vous avez terminé, enregistrez et fermez le fichier. Redémarrez ensuite le service sshd pour appliquer la récente modification des configurations.

sudo systemctl restart sshd 
OR
sudo service sshd restart 

Comme vous le savez peut-être déjà, cette méthode n'affecte que l'ensemble d'outils openssh, les programmes tels que ssh, scp, sftp ne pourront pas accéder au compte root.

4. Restreindre l'accès root aux services via PAM

Les Pluggable Authentication Modules (PAM en abrégé) sont une méthode d'authentification centralisée, enfichable, modulaire et flexible sur les systèmes Linux. PAM, via le module /lib/security/pam_listfile.so, permet une grande flexibilité dans la limitation des privilèges de comptes spécifiques.

Le module ci-dessus peut être utilisé pour référencer une liste d'utilisateurs qui ne sont pas autorisés à se connecter via certains services cibles tels que la connexion, ssh et tout programme compatible PAM.

Dans ce cas, nous souhaitons désactiver l'accès de l'utilisateur root à un système, en limitant l'accès aux services de connexion et sshd. Commencez par ouvrir et modifier le fichier du service cible dans le répertoire /etc/pam.d/ comme indiqué.


sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

Ensuite, ajoutez la configuration ci-dessous dans les deux fichiers.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

Lorsque vous avez terminé, enregistrez et fermez chaque fichier. Créez ensuite le fichier simple /etc/ssh/deniedusers qui doit contenir un élément par ligne et non lisible par tout le monde.

Ajoutez-y le nom racine, puis enregistrez-le et fermez-le.

sudo vim /etc/ssh/deniedusers

Définissez également les autorisations requises à ce sujet.

sudo chmod 600 /etc/ssh/deniedusers

Cette méthode n'affecte que les programmes et services compatibles PAM. Vous pouvez bloquer l'accès root au système via les clients FTP et de messagerie et plus encore.

Pour plus d’informations, consultez les pages de manuel pertinentes.

man pam_securetty
man sshd_config
man pam

C'est tout! Dans cet article, nous avons expliqué quatre façons de désactiver la connexion (ou le compte) de l'utilisateur root sous Linux. Avez-vous des commentaires, des suggestions ou des questions, n'hésitez pas à nous contacter via le formulaire de commentaires ci-dessous.