Aller au contenu

TP – Construire une matrice de droits et l'appliquer sous Linux et Windows

BTS SIO SISR 1re année – Bloc 3 – S04

Note

But. Situation : Comment donner à chacun exactement l'accès dont il a besoin, et pas un de plus ?

Comment ce TP fonctionne. Avant de manipuler, tu écris ce que tu anticipes (« J'anticipe »). Puis tu testes et tu notes ce que tu constates. Tu comprends ce que fait chaque commande (« Je comprends »). Un bilan de compétences clôt la séance. Les manipulations se font sur des machines virtuelles de laboratoire, isolées du réseau de l'établissement. Les identifiants communs d'un TP sont des identifiants de laboratoire : ils ne se réutilisent jamais ailleurs.

Objectif

À partir du cas InnoTech, construire une matrice de droits justifiée, l'appliquer sous Linux avec des groupes et des ACL, vérifier les accès effectifs, puis repérer et corriger un droit excessif sous Windows.

Contraintes

  • Binôme, durée : 3 h 15. VM Debian et VM Windows de laboratoire.
  • Les accès se donnent par des groupes, jamais directement à une personne.
  • Tout écart entre la matrice et la réalité se documente.

Partie A. Construire la matrice de droits (30 min)

Lis l'annexe InnoTech, puis remplis la matrice (légende : — aucun, L lecture, L+E lecture et écriture, L+E+S avec suppression, A administration).

Groupe Clients Projets RH Compta Direction IT Archives
G_Commercial
G_Comptable
G_DRH
G_Dev
G_Chef_Projet
G_Direction
G_Admin_IT
G_Stagiaire

J'anticipe. Le groupe G_Admin_IT administre le serveur. Doit-il pour autant pouvoir lire le dossier RH ? Que se passe-t-il quand il fait la sauvegarde de ce dossier ? ______________________

Éléments de réponse

Administrer le serveur ne signifie pas lire les contrats et les évaluations des salariés : le besoin d'en connaître n'est pas le même que le besoin d'administrer. Pour la sauvegarde, on utilise un compte de service dédié à la sauvegarde, dont l'usage est tracé, et le contenu sauvegardé est chiffré (voir S05 et S10).

Questions.

  1. Un développeur doit consulter temporairement le dossier Comptabilité pour corriger un bogue dans le module de facturation. Comment procèdes-tu pour respecter le moindre privilège ? ______________________
  2. La direction « lit tout » : est-ce justifié pour le dossier RH ? Que proposes-tu ? ______________________
  3. Quelles lignes de ta matrice pourraient poser un problème de conformité au RGPD (S06) ? ______________________

Partie B. Appliquer la matrice sous Linux (60 min)

On met en œuvre un sous-ensemble : Clients, Compta, RH et Direction, avec quatre utilisateurs de laboratoire (créés sans mot de passe : on les utilise avec sudo -u).

sudo apt install acl
sudo groupadd g_commercial; sudo groupadd g_compta; sudo groupadd g_rh; sudo groupadd g_direction
sudo useradd -m -s /bin/bash -G g_commercial sophie
sudo useradd -m -s /bin/bash -G g_compta marc
sudo useradd -m -s /bin/bash -G g_rh julie
sudo useradd -m -s /bin/bash -G g_direction paul
sudo mkdir -p /srv/data/clients /srv/data/compta /srv/data/rh /srv/data/direction

Je comprends.

Commande Ce qu'elle fait
groupadd g_... Crée un groupe : c'est le rôle (RBAC)
useradd -m -s /bin/bash -G g_x nom Crée un utilisateur avec son dossier personnel et l'ajoute au groupe g_x
mkdir -p /srv/data/... Crée les dossiers de données du serveur de fichiers

Applique ensuite les droits de base (un groupe propriétaire par dossier, accès réservé au groupe) :

sudo chgrp g_commercial /srv/data/clients; sudo chmod 2770 /srv/data/clients
sudo chgrp g_compta     /srv/data/compta;  sudo chmod 2770 /srv/data/compta
sudo chgrp g_rh         /srv/data/rh;      sudo chmod 2770 /srv/data/rh
sudo chgrp g_direction  /srv/data/direction; sudo chmod 2770 /srv/data/direction

Je comprends. chgrp change le groupe propriétaire du dossier. chmod 2770 donne rwx au propriétaire et au groupe, rien aux autres (le dernier 0), et le 2 active le bit setgid : un fichier créé dans le dossier hérite du groupe du dossier au lieu du groupe principal de son auteur.

J'anticipe. Après ces commandes, marc (g_compta) peut-il lire /srv/data/clients ? ______________________

Éléments de réponse

Non : marc n'est pas dans g_commercial et les « autres » n'ont aucun droit (770). Il faut un droit supplémentaire pour la comptabilité : c'est le rôle des ACL ci-dessous.

La comptabilité doit consulter Clients (facturation). On ajoute un droit de lecture par ACL, y compris pour les fichiers futurs :

sudo setfacl -m g:g_compta:rx /srv/data/clients
sudo setfacl -d -m g:g_compta:rx /srv/data/clients
getfacl /srv/data/clients

Je comprends. setfacl -m g:g_compta:rx ajoute une entrée pour le groupe g_compta : lecture et traversée (rx). L'option -d définit l'ACL par défaut appliquée aux fichiers créés ensuite.

Teste maintenant les accès avec chaque utilisateur et remplis le tableau.

sudo -u sophie touch /srv/data/clients/devis1.txt
sudo -u sophie ls /srv/data/rh
sudo -u marc ls /srv/data/clients
sudo -u marc touch /srv/data/clients/essai.txt
sudo -u julie ls /srv/data/compta
sudo -u paul ls /srv/data/direction
Utilisateur Action Résultat attendu Résultat observé
sophie Créer un fichier dans clients
sophie Lister rh
marc Lister clients
marc Créer un fichier dans clients
julie Lister compta
paul Lister direction

Questions.

  1. Un des tests ne donne pas le résultat attendu d'après ta matrice : lequel, et pourquoi ? Corrige-le avec une ACL. ______________________
  2. À quoi sert id marc ? Qu'indique sudo -l -U marc ? ______________________
  3. Pourquoi a-t-on utilisé sudo -u pour tester, plutôt que de se connecter en root ? ______________________
Éléments de réponse
  1. id marc liste les groupes de l'utilisateur ; sudo -l -U marc liste les commandes sudo autorisées pour lui (par défaut, aucune).
  2. root contourne les permissions : un test fait en root réussit toujours et ne prouve rien. On teste avec l'identité de l'utilisateur concerné.

Traiter un départ

Marc quitte l'entreprise vendredi. Désactive son compte sans le supprimer, puis contrôle :

sudo usermod -L -e 1 marc
sudo passwd -S marc
sudo chage -l marc

Je comprends. -L verrouille le mot de passe ; -e 1 fixe la date d'expiration du compte au 2 janvier 1970, donc expiré ; passwd -S indique l'état (L pour verrouillé) ; chage -l affiche les dates de validité.

Question. Pourquoi ne supprime-t-on pas tout de suite le compte et ses fichiers ? Qui doit récupérer les fichiers de Marc ? ______________________

Partie C. Auditer des droits sous Windows (45 min)

Sur la VM Windows (PowerShell en administrateur) :

New-Item -ItemType Directory -Path C:\Data\RH -Force
icacls C:\Data\RH /grant "*S-1-1-0:(OI)(CI)F"
icacls C:\Data\RH

Je comprends. *S-1-1-0 est l'identifiant (SID) du groupe « Tout le monde », valable quelle que soit la langue de Windows. (OI)(CI) fait hériter les fichiers et sous-dossiers ; F signifie contrôle total.

J'anticipe. Un salarié du service commercial peut-il maintenant lire et modifier les données RH ? ______________________

Tu viens de créer un écart : corrige-le en construisant l'accès par groupe.

net localgroup G_RH /add
icacls C:\Data\RH /inheritance:r
icacls C:\Data\RH /grant "BUILTIN\Administrators:(OI)(CI)F" "NT AUTHORITY\SYSTEM:(OI)(CI)F" "G_RH:(OI)(CI)M"
icacls C:\Data\RH

Je comprends. /inheritance:r retire les droits hérités du dossier parent ; on redonne ensuite uniquement ce qui est nécessaire : administrateurs et système (pour l'exploitation), et le groupe G_RH en modification (M).

Questions.

  1. L'entrée « Tout le monde » a-t-elle disparu après ces commandes ? Pourquoi ? Quelle commande faut-il ajouter pour la retirer ? ______________________
  2. Retire-t-on les droits des administrateurs ? Pourquoi les avoir laissés ? Que signifie « modification » (M) par rapport au « contrôle total » (F) ? ______________________
  3. Quelle est la différence, pour la sécurité, entre accorder M à un groupe et à un utilisateur ? ______________________

Le départ sous Active Directory (lecture)

Dans un domaine, les commandes de départ d'un salarié (m.durand) seraient :

Disable-ADAccount -Identity m.durand
Move-ADObject -Identity (Get-ADUser m.durand).DistinguishedName -TargetPath "OU=Comptes_Desactives,DC=innotech,DC=local"

Question. Quelles autres actions de départ ne sont pas couvertes par cette commande (accès externes, messagerie, matériel) ? ______________________

Retour en entreprise

Si ta situation le permet : observe comment ton entreprise traite ce sujet, note en quelques lignes l'écart avec le TP, et, avec l'accord de ton tuteur, réalise une partie sur une situation réelle. Anonymise tes captures. Voir Transfert en entreprise.

Prolongement dans InfraLab (facultatif)

Le simulateur applique des profils : changer d'identité change ce que l'on voit et fait. Tu y expérimentes le moindre privilège, la séparation des tâches et la gestion du cycle de vie d'un compte.

Le simulateur InfraLab propose des TP guidés sur ce thème : vue TP, choisis le TP. Ils s'ajoutent à la séance (en classe si le temps le permet, sinon en autonomie) ; ils ne remplacent pas la manipulation sur machine réelle ci-dessus.

TP Titre Durée
33 Qui peut faire quoi ? 40 min
34 Accueillir un nouveau technicien 35 min
35 Séparation des tâches 45 min
39 Revue des habilitations 40 min

Note

InfraLab simule : le score ne valide aucune compétence. Exporte le rapport du TP (HTML) et joins-le à ton compte rendu.

Bilan de la séance

Remplis ce bilan seul, honnêtement : il sert à décider ce qu'il faut reprendre. Niveau : Non maîtrisé, Maîtrise partielle, Bonne maîtrise ou Excellente maîtrise (le vocabulaire des grilles nationales d'évaluation) ; Non évalué si tu n'as pas travaillé la compétence aujourd'hui.

Compétence du référentiel Ce que j'ai fait dans cette séance Niveau
B3.3 – Sécuriser les équipements et les usages des utilisateurs
B3.4 – Garantir la disponibilité, l'intégrité et la confidentialité des services informatiques et des données de l'organisation face à des cyberattaques

Note

Les codes sont ceux du référentiel (l'arrêté numérote des activités : les codes « B… » sont un usage courant).

Je sais faire, sans aide :

  • Construire une matrice de droits justifiée par les besoins métier ;
  • Appliquer des droits par groupes sous Linux (permissions, setgid, ACL) ;
  • Vérifier les accès effectifs d'un utilisateur ;
  • Repérer un droit excessif dans une ACL Windows et le corriger ;
  • Décrire la procédure d'arrivée, de changement de poste et de départ d'un salarié.

Ce que je dois reprendre : ______________________

Ma question à poser à l'enseignant : ______________________