GNU/Linux >> Tutoriels Linux >  >> Linux

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

La racine compte est le compte ultime sur Linux et d'autres systèmes d'exploitation de type Unix. Ce compte a accès à toutes les commandes et tous les 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.

Parce que la racine l'utilisateur a des pouvoirs absolus, toutes les actions qu'il effectue sont critiques sur un système. À cet égard, toute erreur de la racine l'utilisateur 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, 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, à la place, créez un compte administratif qui doit être configuré pour obtenir des privilèges d'utilisateur root à l'aide de la commande sudo, pour effectuer des tâches critiques sur le serveur.

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

Attention  : Avant de bloquer l'accès à la racine compte, assurez-vous que vous avez créé un compte administratif, capable d'utiliser la commande sudo pour obtenir les privilèges d'utilisateur root, avec la commande useradd et donnez à ce compte d'utilisateur un mot de passe fort. Le drapeau -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 dans lequel ajouter l'utilisateur (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 permettant la connexion de l'utilisateur) à /sbin/nologin , dans /etc/passwd fichier, 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.

Désormais, lorsque root l'utilisateur se connecte, il recevra le message "Ce compte n'est actuellement pas disponible. "Ceci est le message par défaut, mais vous pouvez le modifier et définir 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, sudo , ftp et e-mail les clients peuvent accéder au compte root.

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

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

Le fichier ci-dessus vous permet de spécifier quel TTY périphériques sur lesquels l'utilisateur root est autorisé à se connecter, vider ce fichier empêche la connexion root sur tous les périphériques 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 lancent un TTY. Des programmes tels que su, sudo, ssh et d'autres outils opensh associés auront accès au compte root.

3. Désactiver 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 /etc/ssh/sshd_config fichier.

$ sudo vim /etc/ssh/sshd_config

Puis décommentez (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 sshd service pour appliquer la modification récente 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 seront bloqués pour accéder au compte root.

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

Modules d'authentification enfichables (PAM en bref) est une méthode d'authentification centralisée, enfichable, modulaire et flexible sur les systèmes Linux. PAM, via /lib/security/pam_listfile.so module, permet une grande flexibilité en limitant les 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 login, ssh et tout programme compatible PAM.

Dans ce cas, nous voulons désactiver l'accès de l'utilisateur root à un système, en restreignant l'accès aux services de connexion et sshd. Commencez par ouvrir et modifier le fichier du service cible dans /etc/pam.d/ répertoire 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 brut /etc/ssh/deniedusers qui doit contenir un élément par ligne et non lisible par tout le monde.

Ajoutez-y le nom root, 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 prenant en charge PAM. Vous pouvez bloquer l'accès root au système via des clients ftp et e-mail et plus encore.

Pour plus d'informations, consultez les pages de manuel correspondantes.

$ 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.


Linux
  1. Une introduction à la surveillance des comptes utilisateur Linux

  2. Comment personnaliser les environnements utilisateur Linux

  3. UNIX / Linux :Comment verrouiller ou désactiver un compte utilisateur

  4. Impossible de déverrouiller le compte utilisateur Linux

  5. Comment créer un utilisateur root supplémentaire ?

Comment activer et désactiver le compte d'utilisateur root dans Ubuntu

Comment lister tous les utilisateurs sous Linux

Méthodes pour désactiver le compte root sous Linux

Linux - Ajouter un utilisateur à la liste des Sudoers

Comment désactiver la connexion SSH pour l'utilisateur root sous Linux ?

Comment créer un utilisateur sur Ubuntu Linux de plusieurs façons