Attribution de privilèges Linux

LinuxBeginner
Pratiquer maintenant

Introduction

Dans les systèmes Linux, la gestion des autorisations utilisateur et du contrôle d'accès est un aspect fondamental de l'administration système et de la sécurité. La commande sudo, abréviation de "superuser do" (exécuter en tant que superutilisateur), permet aux utilisateurs autorisés d'exécuter des commandes avec des privilèges élevés, généralement ceux de l'utilisateur super ou du compte root.

Ce laboratoire (LabEx) vous guidera tout au long du processus d'octroi et de restriction de privilèges aux utilisateurs dans un environnement Linux. Vous apprendrez à ajouter des utilisateurs au groupe sudo, leur permettant ainsi d'effectuer des tâches administratives, et à limiter leurs autorisations à des commandes spécifiques. Ces compétences sont essentielles pour maintenir des systèmes sécurisés où l'accès aux opérations sensibles doit être soigneusement contrôlé.

Comprendre la gestion des utilisateurs et les bases de sudo

Dans cette étape, vous allez apprendre à gérer les utilisateurs dans Linux et les bases de la commande sudo. Vous allez créer un nouvel utilisateur et comprendre comment lui accorder des privilèges administratifs.

Qu'est-ce que sudo ?

La commande sudo permet aux utilisateurs autorisés d'exécuter des commandes avec les privilèges de sécurité d'un autre utilisateur, généralement l'utilisateur super (root). Cela offre un moyen d'effectuer des tâches administratives sans se connecter en tant qu'utilisateur root, ce qui est considéré comme une bonne pratique en matière de sécurité.

Création d'un nouvel utilisateur

Commençons par créer un nouveau compte utilisateur. Ouvrez votre terminal et exécutez la commande suivante :

sudo adduser trusted_advisor

Vous serez invité à entrer un mot de passe et des informations facultatives pour le nouvel utilisateur. Pour ce laboratoire (LabEx), vous pouvez définir un mot de passe simple comme password123 et laisser les autres champs vides en appuyant sur Entrée.

La sortie devrait ressembler à ceci :

Adding user `trusted_advisor' ...
Adding new group `trusted_advisor' (1001) ...
Adding new user `trusted_advisor' (1001) with group `trusted_advisor' ...
Creating home directory `/home/trusted_advisor' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for trusted_advisor
Enter the new value, or press ENTER for the default
 Full Name []:
 Room Number []:
 Work Phone []:
 Home Phone []:
 Other []:
Is the information correct? [Y/n] Y

Vérification des informations utilisateur

Pour vérifier que l'utilisateur a été créé avec succès, vous pouvez examiner le contenu du fichier /etc/passwd :

grep trusted_advisor /etc/passwd

Cela devrait afficher une ligne contenant les informations de l'utilisateur.

Octroi de privilèges sudo

Pour accorder à un utilisateur des privilèges sudo, vous devez l'ajouter au groupe sudo. Dans Ubuntu, les membres du groupe sudo sont autorisés à utiliser la commande sudo. Exécutez la commande suivante :

sudo usermod -aG sudo trusted_advisor

Cette commande ajoute (-a) l'utilisateur trusted_advisor au groupe sudo (-G sudo). L'utilisateur pourra désormais exécuter des commandes avec des privilèges administratifs.

Vérification de l'accès sudo

Pour vérifier que le nouvel utilisateur a accès à sudo, vous pouvez basculer sur ce compte utilisateur et essayer de lister le contenu du répertoire /root, qui n'est normalement accessible qu'à l'utilisateur root :

su - trusted_advisor

Lorsque vous y êtes invité, entrez le mot de passe que vous avez défini pour cet utilisateur. Ensuite, exécutez :

sudo ls /root

Vous serez invité à entrer le mot de passe à nouveau (première utilisation de sudo). Après avoir entré le mot de passe, vous devriez voir le contenu du répertoire /root, ce qui confirme que l'utilisateur a des privilèges sudo.

Enfin, quittez la session de l'utilisateur trusted_advisor pour revenir à votre utilisateur d'origine :

exit

Limitation de l'accès sudo avec le fichier sudoers

Dans cette étape, vous allez apprendre à restreindre les privilèges sudo d'un utilisateur à des commandes spécifiques en utilisant le fichier sudoers. Cela met en œuvre le principe du moindre privilège, qui stipule que les utilisateurs ne devraient avoir que les privilèges minimums nécessaires pour effectuer leurs tâches.

Comprendre le fichier sudoers

Le fichier /etc/sudoers contrôle qui peut utiliser la commande sudo et quelles commandes ils peuvent exécuter. Ce fichier ne devrait jamais être édité directement avec un éditeur de texte classique, car des erreurs de syntaxe pourraient vous empêcher d'accéder au système. Au lieu de cela, utilisez toujours la commande visudo, qui vérifie les erreurs de syntaxe avant d'enregistrer.

Éditer le fichier sudoers

Pour éditer le fichier sudoers en toute sécurité, utilisez la commande visudo :

sudo visudo

Cela ouvrira le fichier sudoers dans l'éditeur par défaut (généralement nano ou vi).

Comprendre la syntaxe du fichier sudoers

La syntaxe de base pour une entrée sudo dans le fichier sudoers est la suivante :

user_or_group    host=(run_as_user:run_as_group)    NOPASSWD: commands

Où :

  • user_or_group : L'utilisateur ou le groupe auquel cette règle s'applique
  • host : Le nom d'hôte où cette règle s'applique (généralement ALL)
  • run_as_user : L'utilisateur sous lequel les commandes seront exécutées (généralement ALL, ce qui signifie root)
  • run_as_group : Le groupe sous lequel les commandes seront exécutées (peut être omis)
  • NOPASSWD : Étiquette optionnelle qui permet d'exécuter les commandes sans entrer de mot de passe
  • commands : Les commandes spécifiques qui peuvent être exécutées avec sudo

Ajouter un accès sudo restreint

Faites défiler jusqu'à la fin du fichier et ajoutez la ligne suivante pour accorder à trusted_advisor la permission d'exécuter uniquement les commandes cp et mv sans mot de passe :

trusted_advisor ALL=(ALL) NOPASSWD: /bin/cp, /bin/mv

Pour enregistrer le fichier dans nano, appuyez sur Ctrl+O, puis sur Entrée, et pour quitter, appuyez sur Ctrl+X.

Tester l'accès sudo restreint

Maintenant, testons si l'accès sudo restreint fonctionne comme prévu. Tout d'abord, créons un fichier de test dans le répertoire actuel :

echo "This is a test file" > important_file.txt

Maintenant, basculez sur l'utilisateur trusted_advisor :

su - trusted_advisor

Entrez le mot de passe lorsque vous y êtes invité.

Essayez de copier le fichier dans le répertoire racine, ce qui devrait être autorisé :

sudo cp /home/labex/project/important_file.txt /root/

Cela devrait réussir sans demander de mot de passe.

Maintenant, essayez d'exécuter une commande qui n'est pas dans la liste autorisée, comme cat :

sudo cat /root/important_file.txt

Vous devriez recevoir une erreur de permission refusée car cat n'est pas dans la liste des commandes autorisées.

Enfin, vérifiez que le fichier a été copié dans le répertoire racine :

sudo ls /root/

Vous devriez voir important_file.txt dans la sortie.

Quittez la session de l'utilisateur trusted_advisor :

exit

Supprimer le fichier de test

Pour nettoyer, supprimez le fichier de test :

sudo rm important_file.txt

Comprendre les journaux sudo et les considérations de sécurité

Dans cette étape, vous allez apprendre à gérer les journaux sudo et les meilleures pratiques en matière de sécurité. Surveiller l'utilisation de sudo est important pour des raisons de sécurité et d'audit.

Journalisation sudo

Lorsque les utilisateurs exécutent des commandes avec sudo, ces actions sont enregistrées dans des journaux. Cela fournit une trace d'audit qui peut être utile pour la surveillance de la sécurité et la résolution de problèmes.

Sur Ubuntu, les journaux sudo sont généralement stockés dans le journal d'authentification du système à l'emplacement /var/log/auth.log. Examinons les activités sudo récentes :

sudo grep sudo /var/log/auth.log | tail -n 10

Cette commande affiche les 10 dernières entrées de journal liées à sudo. La sortie devrait inclure des horodatages, des noms d'utilisateur et les commandes qui ont été exécutées avec sudo.

Meilleures pratiques de sécurité pour sudo

Voici quelques meilleures pratiques pour gérer les privilèges sudo :

  1. Principe du moindre privilège : Les utilisateurs ne devraient avoir que les privilèges minimums nécessaires pour effectuer leurs tâches.

  2. Utilisation de commandes spécifiques : Au lieu d'accorder un accès sudo complet, spécifiez exactement quelles commandes un utilisateur peut exécuter.

  3. Définition de contraintes de mot de passe : Pour les opérations sensibles, assurez-vous que les utilisateurs doivent entrer leur mot de passe lorsqu'ils utilisent sudo.

  4. Audit régulier : Vérifiez périodiquement les journaux sudo et le fichier sudoers pour vous assurer d'une configuration appropriée.

  5. Suppression d'accès inutiles : Lorsque les utilisateurs n'ont plus besoin de privilèges élevés, retirez-les immédiatement du groupe sudo.

Suppression de l'accès sudo

Si un utilisateur n'a plus besoin de privilèges sudo, vous pouvez le retirer du groupe sudo :

sudo deluser trusted_advisor sudo

Vérifiez que l'utilisateur n'est plus dans le groupe sudo :

groups trusted_advisor

La sortie ne devrait plus inclure "sudo" dans la liste des groupes.

Test de l'accès sudo révoqué

Vérifions que l'utilisateur ne peut plus exécuter de commandes avec sudo :

su - trusted_advisor

Entrez le mot de passe lorsque vous y êtes invité.

Essayez d'exécuter une commande avec sudo :

sudo ls /root

Vous devriez maintenant recevoir une erreur de permission refusée.

Quittez la session de l'utilisateur trusted_advisor :

exit

Rétablissement de l'accès sudo

Dans le cadre de ce laboratoire (LabEx), ajoutons l'utilisateur de nouveau au groupe sudo :

sudo usermod -aG sudo trusted_advisor

Vérifiez que l'utilisateur est maintenant de nouveau dans le groupe sudo :

groups trusted_advisor

La sortie devrait maintenant inclure "sudo" dans la liste des groupes.

Résumé

Dans ce laboratoire (LabEx), vous avez appris des techniques essentielles de gestion des utilisateurs Linux et de contrôle des privilèges. Vous avez acquis une expérience pratique avec les concepts et les opérations suivants :

  1. Création d'utilisateurs : Vous avez appris à créer de nouveaux comptes utilisateur en utilisant la commande adduser.

  2. Octroi de privilèges sudo : Vous avez découvert comment accorder aux utilisateurs des capacités administratives en les ajoutant au groupe sudo.

  3. Restriction de l'accès sudo : Vous avez pratiqué la mise en œuvre du principe du moindre privilège en limitant l'accès sudo d'un utilisateur à des commandes spécifiques en utilisant le fichier sudoers.

  4. Journalisation et surveillance sudo : Vous avez exploré la manière dont les activités sudo sont enregistrées dans les journaux et l'importance de surveiller ces journaux à des fins de sécurité.

  5. Gestion de l'accès sudo : Vous avez appris à ajouter et à supprimer les privilèges sudo des utilisateurs selon les besoins.

Ces compétences sont fondamentales pour l'administration système Linux et la sécurité. En gérant correctement les privilèges des utilisateurs, vous pouvez maintenir un système sécurisé où les utilisateurs ont accès aux ressources dont ils ont besoin sans compromettre l'intégrité ou la sécurité du système.