Académique Documents
Professionnel Documents
Culture Documents
(2019 - 2020) Systèmes D'exploitation Open Source - Théorie Q1
(2019 - 2020) Systèmes D'exploitation Open Source - Théorie Q1
1
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
2
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Login :
➢ Un système multi-utilisateurs va identifier & authentifier les utilisateurs
o → Login / Mot de passe
➢ Une fois connecté, l’utilisateur arrive dans le shell défini dans son environnement.
o Ce dernier exécute le fichier de configuration personnelle (.bash_profile & .bashrc)
puis attend les instructions de l’utilisateur.
Arrêt / démarrage :
➢ Eteindre tout système informatique via une phase d’arrêt des programmes et du système
o Sinon → Risque de perte de données, ...
➢ Si le système s’arrête de manière brutal, il va, lors de son redémarrage, vérifier et tenter de
réparer les systèmes de fichier
➢ En général seul root peut arrêter le système
o shutdown <options> [<minutes>|now]
▪ halt == option -h
▪ poweroff == option -h
▪ reboot == option -r
Consoles :
Linux étant multi-tâches et multi-utilisateurs, plusieurs utilisateurs doivent pouvoir se connecter en
même temps. Sur les gros systèmes, une console était composée d'un écran, un clavier, le tout relié
via un câble série (COM). Il existe également des consoles virtuelles, qui permettent plusieurs
consoles simultanées sur un même écran.
Shell :
➢ == Coquille qui entoure l’OS et qui lui permet de communiquer avec l’utilsateur
o Commande → set :
3
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Commandes :
➢ Ligne de commande très répandu dans les systèmes de type UNIX.
o Windows → PowerShell, …
➢ + rapide que l’interface graphique
➢ Permet une automatisation avancée via des scripts des diverses tâches administratives sur un
système (maintenance, création des comptes utilisateurs, …)
4
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Le serveur X :
➢ Fonctionnement comparable à VNC / Terminal Server
o Architecture client-serveur
o Un serveur X qui est en communication avec un ou plusieurs clients
o Mais dans ce cas-ci, contrairement à ce que l’on pourrait croire, c’est le serveur qui
est l’application locale :
▪ Le client X est l’application qui va demander d’effectuer diverses opérations
de sortie d’affichage
▪ Le serveur X est à l’écoute des clients et leur renvois les informations clavier
et souris de l’utilisateur. C’est lui qui communique avec le matériel de dessiner
à l’écran.
➢ Une conséquence de cette architecture d’affichage est que le client peut être sur la même
machine, mais aussi sur une autre.
o Le client peut être une application demandant une certaine puissance de calcul, le
serveur étant sur une petite configuration ne servant que l’affichage, qui ferait office
de terminal graphique.
➢ Serveur X utilisé était Xfree86 mais suite aux désaccords de certains programmeurs
o → Xorg
➢ Même si au départ le support de matériel graphique récent était quasi inexistant, les cartes
graphiques sont de mieux en mieux supportées (Drivers propriétaires + module kernel
opensource) avec des fonctionnalités de plus en plus avancées (AIGLX chez Nvidia).
➢ XGL, le plus récent des serveurs X permet de gérer directement un bureau en 3D avec
transparance, … mais nécessite une carte Opengl performante.
5
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Quelques astuces :
➢ Faire du copier-coller sous X
o CTRL-C / CTRL-V
o Ou
▪ Sélectionnez le texte à copier
▪ Placer le curseur là ou vous voulez le coller
▪ Collez le texte en cliquant sur le bouton du milieu de la souris ou, s’il elle n’a
que deux boutons, en cliquant sur les 2 simultanément (A condition que
l’options Emulate3Buttons dans le fichier de configuration du serveur
graphique soit activée)
➢ Tuer une application graphique
o → xkill
o Cliquer sur la fenêtre du logiciel à fermer
o Méthode à n’utiliser qu’avec les logiciels que l’on ne sait plus fermer normalement
➢ Changer la résolution à la volée
o CTRL ALT +
o CTRL ALT –
o Sinon, ajuster le fichier de configuration de X afin d’y préciser manuellement les
résolutions supportées
6
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
V. Installation
Etapes:
➢ Se procurer une distribution Linux (CD, DVD, WWW, …)
➢ Vérifier la compatibilité
➢ Lancer le processus d’installation
o Démarrage de l’ordinateur sur le support d’installation
o Le support d’installation fournit généralement, avec chaque distribution, un CD-ROM,
démarre en général un utilitaire d’installation pas à pas.
➢ Mettre en place les systèmes de fichiers
o Si un autre OS est déjà installé et occupe toute la place disponible du disque dur, il
est nécessaire de redimensionner (parted)
o Création des partitions Linux. L’espace libre doit être partitionné afin d’installer Linux.
Il en faut minimum une, mais il en vaut mieux une deuxième pour la swap. Il existe
différents utilitaires comme fdisk, Diskdruid, cfdisk, … selon la distribution
o Création des systèmes et de la zone d’échange. Sur chaque nouvelle partition créée à
l’étape précédente, il est possible de créer un système de fichier indépendant. De
plus, il est souvent utile de définir une zone d’échange (SWAP). Elle permet, lorsque
la mémoire vive est pleine, de la « décharger » sur le disque dur
▪ Il est conseillé de prendre 2 fois la taille de la RAM pour la swap, avec un
maximum de 1GB
o Enfin, il est souvent conseillé de mettre le répertoire /boot, qui contient les éléments
nécessaires au démarrage du système sur une autre partition
➢ Installer les fichiers
o Installation du système proprement dit : les fichiers vont être copiés sur le disque dur
en fonction des paquets sélectionnés.
Partitions :
➢ Un disque dur est une unité de stockage physique. Afin de pouvoir utiliser un disque dur, on
définira une ou plusieurs partitions qui peuvent être destinées à un OS, ou à des données.
o Ex. : 1 pour Windows / 1 pour Linux / 1 pour les données
➢ Lorsque plusieurs systèmes d’exploitation sont installés sur le disque dur, il est nécessaire de
créer une partition par OS
➢ La définition des partitions se trouve au niveau du secteur maître d’amorçage (master boot
record) qui, comme son nom l’indique est utilisé pour démarrer le système
o Dans ce secteur est maintenu la table des partitions, qui contient les informations
concernant la localisation et la taille de chaque partition sur l’espace global du disque.
o Le MBR occupe les 512 premiers octets du disque. Il est important d’en faire une
copie de sauvegarde.
o L’autre partie du MBR est occupée éventuellement par un boot manager (grub / lilo),
qui va gérer le démarrage du système.
o Si une partition est marquée comme active, le système démarre directement sur celle-
ci, qui devra alors contenir son propre gestionnaire de démarrage. Cela signifie
également que le boot manager du MBR peux lancer celui d’une autre partition
➢ Trois types de partitions peuvent coexister
o Primaire
▪ Une ou plusieurs (Max. 4 en raison de la taille de la table des partitions qui
doit tenir dans le MBR)
o Etendue
▪ Partition créé si le nombre de 4 partitions primaires est atteint.
▪ Dans celle-ci on pourra créer des partitions logiques
▪ == Conteneur == Unique
o Logique
▪ Ces partitions sont chaînées afin d’optimiser la place prise dans le MBR
➢ Attention à ce que certains BIOS ne sont pas capables d’accéder au-delà du 1024ème cylindre
du disque dur. Le boot loader doit donc se trouver avec cette limite
7
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
8
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Les règles sémantiques des systèmes de fichiers Unix et différences avec Windows :
➢ Windows == \
➢ Linux == /
➢ Noms des fichiers et répertoires sensibles à la casse
➢ Windows impose des règles très restrictives sur les caractères qui peuvent apparaître dans un
nom de fichier.
➢ Linux, seulement le / est interdit
➢ Tout répertoire contient des entrées . et .. faisant respectivement référence au répertoire lui-
même et au répertoire supérieur.
➢ Tous les fichiers commençant par un point sont par défaut cachés.
➢ Sous Linux, les extensions (suffixes) aux noms des fichiers jouent un rôle beaucoup moins
important que sous Windows
➢ Sous Linux, les fichiers exécutables ne sont pas identifiés par leur extension. L’exécution est
considérée comme un droit d’accès au fichier, tout comme lecture et écriture
9
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
o /etc
▪ Fichiers de configuration du système et les principaux scripts de démarrage
• /etc/rc.d → Script du démarrage du système
• /etc/x11 → Script de configuration du serveur X
• /etc/sysconfig → Configuration des périphériques
• /etc/cron → Description de la planification de tâches
• /etc/skel → Répertoire squelette recopié dans le répertoire des
nouveaux utilisateurs lors de leur création
o /home
▪ Contient tous les répertoires personnels des utilisateurs
o /lib
▪ Contient les bibliothèques et les modules du noyau Linux
o /mnt
▪ Racine des points de montage des fichiers périphériques et extérieurs
o /opt
▪ Répertoire d’installation d’application supplémentaires (StarOffice, Java, …)
o /proc
▪ Pseudo-répertoire (créé lors du démarrage de la machine) qui contient une
image du système et permet de dialoguer avec le noyau
o /root
▪ Répertoire du super-utilisateur
o /sbin
▪ Contient les fichiers exécutables utiles pour l’administration du système
o /tmp
▪ Lieu de stockages des fichiers temporaires
o /user
▪ Programmes accessibles à tous les utilisateurs. Sa structure reproduit celle de
la racine /
• /usr/x11R6 → Le système X Window
• /usr/bin → Fichiers exécutables accessibles par tous
• /usr/doc → Documentation
• /usr/share → Fichiers de données partagés
• /usr/src → Code source de certains logiciels, comme le noyau
o /var
▪ Données variables liées à la machine
• /var/spool → Contient le spool, c’est-à-dire tout ce qui est de passage
sur le système, comme les courriers électroniques, les fichiers en
attente d’impression, …
• /var/log → Contient les fichiers journaux du système
10
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Le shell :
➢ Introduction
o Le shell est le programme qui va interpréter les commandes entrées dans un terminal
avant de les exécuter.
o Shell = Interface entre le noyau et l’utilisateur.
▪ Le noyau se compose généralement de pilotes de périphériques et d’autres
fichiers spécifiques au matériel. Le shell a pour rôle d’éviter à l’utilisateur de
devoir agir au niveau du noyau et du matériel lorsqu’il désire éditer un fichier.
C’est le rôle du noyau
o utilisateur@machine:~/docs$
▪ Voilà ce que le shell affiche lorsqu’il est en attente d’instructions
▪ ~/docs = Sous-répertoire docs dans le répertoire personne de l’utilisateur (~)
o Par défaut, le shell utilisateur sur un système Linux est BASH (Bourne Again SHel),
lancé par la commande /bin/bash
o Le shell lancé à chaque connexion d’un utilisateur peut être changé en modifiant le
profil de l’utilisateur. → /etc/passwd
Lors de l'entrée d'une commande sur la ligne de commande, le shell vérifie si cette commande est une
commande interne (pour connaître la liste des commandes internes, utiliser man bash). Ensuite, le
shell vérifie dans sa liste d'alias. La définition d'un alias se fait via la commande alias. Enfin, il
recherche un programme exécutable sur le système de fichiers, portant le nom de la commande, en
se servant des chemins listés dans la variable d'environnement $PATH. S'il trouve un tel programme, il
l'exécute en lui passant les arguments spécifiés sur la ligne de commande. Pour des raisons de
sécurité, le répertoire courant est toujours exclu du path.
➢ Lancer des commandes dans un shell
o Linux == Commandes externes (Simples exécutables)
o Afficher le contenu d’un répertoire → ls
▪ Ls /boot → Listera le contenu du répertoire /boot (Espace indispensable)
o Une commande peut prendre des « options » qui modifie le comportement de la
commande. Ex. : -h ou --help
o <nom-commande> [<option>...] [<argument>...]
o Aide : man <nom-commande> OU <nom-commande> -h
11
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
➢ Scripts d’initialisation
o L’environnement de la ligne de commande est initialisé par une série de script
o De manière générale ceux-ci se trouvent :
▪ /etc
• Fichiers dont les noms sont du genre bash, profile, … qui sont des
scripts exécutés pour tous les utilisateurs
▪ Répertoire personnel
• Fichiers dont les noms sont du genre bash, profile, … qui sont des
scripts exécutés pour un utilisateur particulier
➢ Les caractères spéciaux
Caractères Signification Echappement
*, ?, [ ] Ces caractères sont des jokers
(wildcards). Ils servent à
sélectionner plusieurs fichiers
ou répertoires.
~ Le tilde est remplacée par le
\, " ", ' '
répertoire personnel de
l’utilisateur
>, >>, <, | Ces caractères servent à
rediriger la sortie ou l’entrée
d’une commande
$ Ce caractère sert à substituer \, ' '
la valeur d’une variable
d’environnement
➢ Les wildcards ou Jokers
o * → Signifie n’importe quelle suite d’un nombre quelconque de caractères
o ? → Signifie n’importe quel caractère unique
o ~ → Raccourci pour le répertoire personnel
o [] → Signifie un caractère parmi ceux qui sont entre crochets
▪ [aC] veut dire a ou C
▪ [a-d] veut dire un caractère dans l’interface compris entre a & d
o \ → Permet d’échapper un caractère spécial
o $ → Correspond au début d’une variable d’environnement. Celles-ci sont propres à
l’environnement en cours
➢ Les variables d’environnement
o De plus, le shell maintient l’environnement de chaque utilisateur à l’aide de variables
d’environnement qui peuvent être paramétrées et modifiées par l’utilisateur.
o Afficher ces variables → set
o Pour définir un variable d’environnement → export globalvar
o Pour supprimer une variable d’environnement → unset globalvar
12
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Quelques commandes :
➢ Commandes sur les répertoires
o Mkdir → Permet de créer un répertoire (make directory)
o Rmdir → Permet de supprimer un répertoire vide (remove directory)
o Du → Affiche l’espace occupé par un répertoire en regardant récursivement l’esapce
occupé par tous les sous-répertoires ainsi que la taille de chacun des fichiers
▪ (disk usage)
▪ -s (summary) → Obtenir un résumé
▪ -h (human) → Permet de demander un affichage lisible par un être humain
➢ Manipuler des fichiers
o Touch → Changer l’heure de dernier accès et de dernière modification d’un fichier
▪ Si le fichier n’existe pas, il créera un fichier vide sous ce nom
o Cp → Utilisée pour copier un ou plusieurs fichiers (ou répertoires) (copy)
▪ cp <fichier> <nouveau fichier>
▪ cp <fichier> [<fichier> ...] <répertoire>
• -p → Copier les droits d’accès
• -r → Copier de manière récursive
• -i → Interroge l’utilisateur avant de supprimer quoi que se soit
o Mv → Permet de déplacer des fichiers (move)
▪ mv <fichier> <nouveau fichier>
▪ mv <fichier> [<fichier> ...] <répertoire>
• -u → Ne déplace que les fichiers + récents que les fichiers existants à
l’emplacement de la destination
13
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
14
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
15
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Yum :
➢ Yum est la surcouche à RPM qui a été rajoutée afin d’apporter des fonctionnalités similaires à
APT sur les distributions de la famille RedHat
APT :
➢ APT est le gestionnaire de paquets de distributions de la famille Debian.
➢ Il gère les dépendances et le téléchargement automatiquement à partir de « dépôts »
configurés
➢ Il est possible de mélanger les versions de distributions pour les paquets
➢ Par exemple, la version unstable de samba est nécessaire pour certaines fonctionnalité
uniquement présentes dans cette version du paquet
➢ Il faut créer au besoin le fichier /etc/apt/preferences ou ajouter un fichier dans
/etc/apt/preferences.d
Package: *
Pin: release a=stretch
Pin-Priority: 750
➢ Ici, pour tous les paquets, la version stretch avec une priorité de 750.
o Donc lors du passage à la nouvelle version Debian, la version des paquets de stretch
sera préférée à la nouvelle stable
➢ La priorité de la version pour un paquet va influencer le comportement d’apt lors de
l’installation :
o 0-100 : Installé uniquement si aucune version du paquet ne l’est déjà
o 100-500 : Installé uniquement si pas de version plus récente installée ou disponible
o 500-990 : Installé uniquement si pas de version plus récente installée ou disponible
dans la version choisie
o 990-1000 : Installé uniquement si pas de version plus récente installée
o > 1000 : Installé même si la version installée est plus ancienne (downgrade)
o 100 = Priorité d’un paquet déjà installé
o Valeurs égales : Prends le paquet le plus récent
16
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
17
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Les groupes :
➢ Créer & supprimer des groupes
o Il est possible de modifier directement le fichier groupe
o Ou alors, passer par les commandes : groupadd / groupdel
➢ Changer de groupe principal
o Newgrp permet de changer l’identifiant du groupe principal de l’utilisateur en cours de
session.
o Le groupe en question doit être un des groupes secondaires de l’utilisateur
➢ Mot de passe de groupe
o Gpasswd → Associe un mot de passe à un groupe.
▪ Permet à l’user le connaissant de passer à ce groupe avec newgrp
o Permet également de déléguer l’administration du groupe à des utilisateurs
▪ Gpasswd -A liste,des,administrateurs groupe
Les processus :
➢ Tout programme est exécuté par un compte utilisateur. Il appartient donc à ce compte et à
son groupe. Cet utilisateur est le propriétaire du processus. Le processus a donc les même
droits que son utilisateur et son groupe.
➢ Dans certains cas, le processus reçoit un autre propriétaire.
o Lancées en SUID / SGID (≈ su)
➢ Seul le propriétaire d’un processus a le droit de le tuer. (Excepté root)
18
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
19
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Inodes :
➢ Chaque système de fichiers tient à jour une table des descripteurs de fichiers qui est utilisée
par le système d'exploitation pour accéder aux fichiers.
➢ Cette table se compose, pour chaque fichier, d'une entrée appelée inode, repérée par un
index appelé numéro d'inode.
➢ Un inode représente l'emplacement d'un fichier sur le disque et contient les droits,
propriétaire, etc.
➢ Une fois qu’il n’y a plus d’inodes disponibles, il n’est plus possible de créer de fichiers.
20
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Types de fichiers :
➢ Sous linux, tout est vu comme un fichier. En voici les différents types :
o Fichier normal : un fichier texte, un exécutable, …
o Fichier répertoire : un répertoire est un fichier qui contient des références vers
d’autres fichiers
o Fichier lien symbolique : fichier qui contient un pointeur vers un autre fichier (comme
un raccourci sous windows)
o Fichier spécial (de périphérique) : fichier qui permet l’accès à un périphérique, une
partition. Les fichiers de types périphérique se trouvent dans /dev
➢ Liens
o Permettent d’accéder aux même données sous des noms différents
➢ Liens durs
o Un lien dur associe un ou plusieurs fichiers à un même espace disque sur un système
de fichier
▪ Ln fichier1 fichier2Lien
o → Ces deux fichiers ont le même espaces disque / inodes
▪ Mais ils sont indépendants
o La modification de l’un modifie l’autre.
o Un fichier n’est supprimé que lorsque tous les liens durs qui pointent vers ce dernier
sont supprimés.
o En général un lien dur ne peut pas pointer vers un répertoire
o . & .. sont des liens durs
o Les liens durs permettent
▪ D’avoir un fichier dans un répertoire !
▪ A un programme d’avoir plusieurs nom et de réagir en fonction de son nom
d’appel
▪ A un inode de se trouver dans plusieurs répertoires différentes
▪ De ne pas avoir un fichier en « double » sur le disque
➢ Liens symboliques
o Un lien symbolique est un chemin symbolique pointant vers un autre fichier ou
répertoire.
o La suppression du fichier originel casse donc le lien. Par contre il est indépendant du
système de fichiers et peut pointer vers un répertoire
o Etant donné qu’il s’agit d’une sorte de « raccourci », il faut bien sûr le droit d’accès au
répertoire contenant le fichier et pas seulement au lien symbolique.
▪ Ln -s fichier nomdulien
21
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
➢ Fichiers de périphérique
o Les périphériques sont vu par le système comme des fichiers. Il est donc possible d’y
accéder directement en lecture / écriture avec les droits d’accès appropriés.
o Les types de fichier de périphérique
▪ Les périphériques à accès de type bloc (random access)
• Accessibles par bloc de données avec un accès aléatoire (HDD, …)
▪ Les périphériques à accès de type caractère
• Lues ou écrites un octet à la fois séquentiellement. (Clavier, …)
o Liste des fichiers de périphérique
▪ /dev/hd… → Périphériques IDE selon l’ordre des bus
▪ /dev/cdrom… → Raccourcis vers le lecteur de CD-ROM
▪ /dev/sd… → Périphériqus SCSI, USB, SATA
▪ /dev/scd… (ou sr…) → CD-ROM SCSI
▪ /dev/ttyS… → Ports séries
▪ /dev/tty… → Consoles virtuelles
▪ /dev/psaux → Port PS/2
▪ /dev/mouse → Lien vers la souris
▪ /dev/fd… → Lecteurs disquettes
▪ /dev/par… → Ports parallèles
▪ /dev/lp… → Imprimantes parallèles
▪ /dev/random → Périphérique aléatoire : Génère des valeurs pseudo-random
▪ /dev/zero → Périphérique qui génère des zéros
▪ /dev/null → Périphérique vide. Tout ce qui y rentre disparait
▪ /dev/loop → Périphérique de boucle de montage
o Numéro de périphériques
▪ De nos jours, il existe des mécanismes qui permettent de gérer les
périphériques automatiquement (détection, création du fichier, …).
▪ Udevd est le mécanisme utilisé actuellement.
▪ Le numéro majeur correspond au type de périphérique. (8 pour sd)
• C’est par ce numéro que le système reconnaît le type du fichier de
périphérique et sait par quelle méthode y accéder. Le schéma de
nommage des périphériques n’est donc qu’une convention pour
retenir facilement quel périphérique à quel nom
▪ Le numéro mineur correspond au numéro d’ordre du fichier de périphérique.
• Ex. : sda1, sda2, …
• Ce numéro est interprété par le driver du périphérique
22
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Systèmes de fichiers :
➢ Afin d’être utilisable, un périphérique doit contenir un système de fichiers, qui permet de
savoir comment accéder au contenu des fichiers, définir les droits, …
➢ Mkfs → Création des systèmes de fichiers.
o -c → Recherche les blocs défectueux et de les marquer comme non-utilisables
Montages :
➢ Mount
o Afin d'être accessible, un système de fichier doit être monté. Cette opération permet
de l'intégrer dans l'arborescence via un point de montage. Le système de fichier
monté peut être une partition mais aussi une clef USB, un partage réseau SMB ou
NFS, etc.
o Le montage est donc la mise en relation d'un système de fichier présent sur un fichier
périphérique et d'un nœud dans l'arborescence Linux. Il se fait via la commande
mount, ou automatiquement au démarrage de système.
o /mnt → Dossier dans lequel seront monté les périphériques amovibles
o De + en + souvent → /media pour USB / CD / …
o Un système de fichier monté ne peut être démonté s'il est encore utilisé (ex un
utilisateur encore dans un répertoire sur le périphérique). Un périphérique monté ne
peut-être éjecté. Équipé d'un éjection mécanique, la disquette peut être éjectée, mais
sera considérée comme toujours présente par le système.
o Les données peuvent même rester accessibles, celles-ci étant mises en cache pour
des questions de performance. Tant qu'un périphérique n'est pas démonté, il est
possible que les données du cache n'aient pas encore été enregistrées.
o Lsof → Lister tous les fichiers ouvert
➢ Taille des partitions
o /boot : 100 MB placé sous le 1024ème cylindre
o /var : 2GB ou plus selon les besoins. Permet de séparer les logs qui ainsi ne menacent
pas la stabilité du système
o /tmp : 500 MB. Idem que /var
o /home : 90 GB selon le nombre d’utilisateurs
o SWAP :
▪ <2 GB : 2* la taille de la ram
▪ 2-4 GB : 2G + taille ram
▪ 6-8 GB : taille ram
▪ >8 GB : Moitié de la ram ou moins
➢ Fstab
o Les systèmes de fichiers à monter au démarrage de la machine sont précisés dans la
fichier /etc/fstab
➢ Mtab
o La liste des systèmes de fichiers actuellement montés est stockée dans /etc/mtab.
Lorsque mount monte ou démonte un système de fichier, il met à jour le fichier mtab.
Le fichier /proc/mounts2 peut contenir moins d'informations de montage que mtab
mais est toujours à jour
23
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
24
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Raid :
➢ Synthèse architecure des ordinateurs BA1 Q2 Page 9 à 12
➢ + Sous Linux, le softraid est géré par le Kernel. Son utilisation se fera par le biais de la
création de nouveaux périphériques de type bloc.
➢ Utiliser un raid ne dispense pas des back-ups. Un RAID n’est jamais fiable à 100%.
LVM :
➢ Introduction
o Logical Volume Manager est un outil de gestion de volume logique
o Lors de l’installation de machine, il est important de bien planifier l’utilisation de celle-
ci et l’espace disque maximum nécessaire. Malgré cela, une partition peut devenir
trop petite, ou les disque. Pour avoir suffisamment d’espace libre, que faire ? Il est
compliqué de redimensionner et déplacer des partitions
▪ Dans la plupart des cas, il faudra transférer les données sur un autre disque
ou une autre partition, puis de changer le point de montage.
▪ Une autre solution est de créer des points de montages pour certains
répertoires vers d'autres partitions.
▪ Enfin, il faudra peut-être réinstaller et repartionner.
o Mais que devient l'espace désormais inutilisé de l’ancienne partition? Comment faire si
la taille du disque est insuffisante ?
o Les outils de gestion de volume permettent de s’affranchir de ce genre de problèmes
et sont des outils indispensables. La plupart des Unix en ont un, il fallait donc que
Linux en soit également équipé : LVM. Il s’agit de solution très intéressantes, que ce
soit sur serveur ou station de travail
o Un gestionnaire de volume apporte une vision abstraite du stockage en ajoutant une
couche entre la partition physique et le système de fichier. Il permet de passer outre
la structure physique (disques, partitions), de créer des espaces de stockage logiques
de taille dynamique.
o LVM n'apporte aucune solution de fiabilité, et donc, plus grand est l'espace, plus le
risque de grande pertes de données est important. Il convient donc, comme pour
n'importe quel espace de stockage d'ailleurs, de mettre en place une stratégie de
sauvegarde pertinente et de bâtir son LVM sur un RAID.
➢ Structure de LVM
o LVM intercale entre la couche et bas et de haut niveau 2 couches supplémentaires :
▪ VG (Volumes Groups) qui regroupent les partitions
▪ LV (Volumes Logiques) qui contiendront les systèmes de fichiers
o Il est donc possible de modifier la taille d’un VG en ajoutant ou retirant des partitions
physiques
o Les volumes logiques n’étant pas liés à un emplacement « physique », il est possible
de les redimensionner facilement contrairement aux partitions.
o Un VG est composé d’un ou plusieurs volumes physiques (PV). Un PV est un espace
de stockage correspondant à une partition, un volume RAID, …
o Ces PV sont découpés en plus petites unités, les Physical Extends, dont la taille est
définie lors de la création du PV. Ces PE sont les briques élémentaires de LVM. La
taille d'un volume logique, l'équivalent d'un partition, sera donc un multiple de la taille
des PE. UN VG regroupe donc tous les PV en un grand volume virtuel de la taille de la
somme PV réunis.
o Le VG va pouvoir être découpé en Logical Volumes. Ces LV seront utilisés comme
SWAP, point de montage, etc. une fois formatés. Un LV peut être considéré comme
une « partition virtuelle »
o Chaque LV est composé de Logicals extends (LE) pris dans un ou plusieurs PV. Un LE
est la plus petite unité allouable d’un LV et correspond à un PE des PV
o L’arrivée de systèmes de fichiers nouvelle génération comme ZFS, BTRFS, etc. rendra
à l’avenir LVM moins utile, ces derniers intégrant directement une fonction de gestion
de volumes
25
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
26
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
27
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
28
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
29
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
30
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Le firmware
➢ A connaissance des périphériques de la carte mère comme les contrôleurs SATA, réseaux,
USB, sondes de t° etc., …
➢ gère la configuration matérielle des périphériques
31
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Boot manager :
➢ Avant == bootloader, maintenant comme + de fonctionnalités == boot manager
➢ Plus indispensables avec l’UEFI vu qu’il est capable de charger un kernel directement si ce
dernier est prévu pour
➢ Il existe plusieurs boot manager pour Linux (Grub 2, isolinux, …)
➢ Le boot manager va s’occuper de gérer les différentes actions possibles puis décompresser,
charger en mémoire et lancer l’exécution du kernel. Il va également s’occuper de la ramdisk
➢ Le gestionnaire en passant des options au kernel, permet notamment de choisir entre
plusieurs options de démarrage, de préciser au kernel l’emplacement de la racine, …
Kernel Linux :
➢ Le noyau est exécuté et initialisé avec les options passées en boot manager. Il réserve la
mémoire, détecte et initialise les périphériques, … Pour finir, il monte le système de fichier
racine, libère le ramdisk
➢ Ensuite, il sert lance certains processus "spontanés" qui lui sont propre, repérable par des [],
ainsi que le 1er processus du système (PID=1) : le démon de gestion du système Linux, qui
tourne encore en général sous le nom init, systemd
➢ Une fois le kernel en cours d’exécution, il faut lancer le reste du système, c’est-à-dire les
processus qui tournent dans l’espace utilisateur
32
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
▪ Les démons, … ne sont plus gérés par des scripts mais par des fichiers de
configurations (« Units »)
▪ Systemd est « aware » intégré au système, init ne fait qu’exécuter des scripts
o Les Units
▪ Une unit est n’importe quel élément géré par systemd, comme un service, un
socket, un point de montage, un timer, …
o Les targets
▪ sysVinit utilisait des renlevels statiques. Systemd peut être rétrocompatible
grâce à des targets associées aux anciens runlevels
o Gestion de systemd : systemctl
▪ Systemctl est une commande générique de systemd qui permet de vérifier le
status et modifier sa configuration
▪ L’appel de systemctl est suivi en général d’une sous-commande comme :
• Liste-unit-files / start / stop / restart / …
➢ Init
o Encore utilisé dans certaines distributions, notamment celles qui doivent être les plus
légères possibles
o /sbin/init est le 1er processus lancé. D'ailleur son PID est de 1. c'est lui qui va
s'occuper de lancer le système via le fichier de configuration /etc/inittab
o /etc/inittab configure le nombre consoles, les runlevels, l'interception de certaines
commandes claviers, …
o Runlevels
▪ Un système Linux peut fonctionner sous différents runlevels. Un niveau
d'exécution défini les fonctionnalités disponibles sur le système, ç à d les
services lancés à son démarrage.
o Les différents Runlevels
▪ Ils peuvent varier selon les distributions et être personnalisé, mais par
convention
• 1 → Mode signel user
• 0 → Eteindre le système
• 6 → Redémarrage du système
o Au démarrage le runlevel par défaut est lu dans la configuration d’init
o Les commandes init et telinit permettent de changer de runlvel
o Il est également possible de le préciser au kernel manuellement au démarrage via le
gestionnaire de démarrage
o Les scripts de démarrage de services
▪ Le répertoire /etc/init.d contient tous les scripts de démarrage de service.
Selon les fonctionnalité voulues dans le runlevel concerné, des liens
symboliques sont créés dans les répertoires rc0.d -> rc6.d
▪ Les noms des liens symbolique commencent par S pour un service à
démarrer, par un K pour un service à arrêter, suivi d'un nombre qui
détermine l'ordre de démarrage du service, puis du nom de celui-ci
▪ Fichiers de config des scripts de démarrage de init.d sont dans /etc/default
o Inconvénients d’init
▪ Les scripts rc ne sont pas tous compatibles avec des éléments comme
SELinux, …
▪ Init exécute des scripts, n’a pas « conscience » des tâches liées au mode de
fonctionnement
▪ Nombreux script sur plusieurs niveaux
▪ Difficile de
• Lancer un service suite à un évènement
• Relancer automatiquement un service
▪ Travail dupliqué d’une distribution à l’autre car il doit y être intégré
▪ Compliqué à modifier par l’utilisateur
▪ Pas de gestion des dépendances entre services
▪ Pas de parallèlisme
33
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Modules :
➢ Un module est un morceau de code qui peut être chargé/déchargé du noyau.
o Permet l’ajout de fonctionnalités sans reboot
o Permet d’avoir un noyau + compact
▪ Exemple de module : Supporter un système de fichiers particulier
o Si module impossible à charger, risque amoindri que le système bloque
➢ → /lib/modules/version_kernel/ (extension .ko)
➢ Inconvénients → Légère perte de performances / sécurité
➢ Lsmod → Lister les modules actifs
➢ Modinfo → Avoir les informations sur un module
➢ Insmod → Charger un module
➢ Modprobe → Charger un module gérant les dépendans de celui-ci
➢ Rmmod → Désinstaller un module
Compilation :
➢ Il faut un environnement de compilation complet : Compilateur C (GCC) + Outils pour gérer la
compilation (make)
➢ Intéressant de compiler un kernel afin qu’il supporte au mieux votre architecture. → Gain de
performances / Meilleur fonctionnement du système / … Certains processeurs necessite un
kernel personnalisé
➢ Il existe des patchs pour ajouter des fonctionnalités particulières non intégrées au kernel
➢ Kernel
o Télécharger les sources et les décompresser dans /usr/src
o Make menuconfig
o Make [-j n]
o Make install
➢ Modules → make modules_install
➢ Ramdisk → mkinitramfs
34
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
XVI. PAM
PAM :
➢ PAM == Pluggable Authentification Modules
o Ensemble de librairies qui fournissent un mécanisme d’authentification flexible sur un
système UNIX
o Créé par Sun. Pour linux → Linux-PAM
➢ Avant, chaque application devait gérer son propre système d’authentification (/etc/passwd,
/etc/shadow, …)
➢ PAM résout ce problème.
o Le développeur va pouvoir programmer sans tenir compte du schéma
d’authentification qui sera employé.
o Il est géré par une série de modules extérieurs, les modules PAM
➢ PAM laisse à l’administrateur le choix de la stratégie d’authentification pour les applications
utilisant PAM
➢ BUT DE PAM
o Séparer le développement des applications de celui du mécanisme d’authentification
sécurisé
Principe de fonctionnement :
Exemple avec « login »
➢ Login effectue 2 actions :
o Vérifier que l’utilisateur qui se connecte est bien qui il prétend être
o Ensuite lui fournir un shell tournant sous l’identité de l’utilisateur
➢ En général c’est un mot de passe qui est demandé pour la vérification → Déléguée à PAM
o Il serait possible de demander un vérification par voix, empreinte, … si le module PAM
existe
➢ PAM effectue 4 tâches différentes :
o Gestion de l’authentification, des comptes, des sessions et des mots de passe. Le
comportement de PAM sera déterminé par ses fichiers de configuration
➢ Login va donc appeler PAM. PAM va lire ses fichiers de configuration et ensuite chargera les
modules appropriés. Les modules sont appelés dans l’ordre des fichiers de configuration, et
vont effectuer les différentes tâches demandées. L’échange des messages avec l’utilisateur est
effectué à travers l’application via la fonction conversation(). Une fois la tâche
d’authentification terminée, PAM précisera à login si elle est réussie ou non.
35
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Configuration :
➢ Librairies PAM → /lib/security
➢ Fichiers de config → /etc/pam.d
➢ Fichier unique de config → /etc/pam.conf
➢ En général pour chaque application == un fichier de config
➢ Structure générale d’un fichier PAM :
o [service] type_module contrôle chemin_module arguments_module
➢ Erreur dans le fichier de config == Message d’échec de PAM
➢ Les différents types de modules
o Auth
▪ Authentifier l’utilisateur par diverses méthodes
▪ Ensuite, lui donner l’appartenance aux groupes, … comme recevoir un certif
o Account
▪ S’occupe des tâches qui ne sont pas liées à l’authentification comme
restreindre les heures d’accès, les ressources mise à disposition, …
o Session
▪ Gère tout ce qui est lié à une session. (Répertoire personnel, msg syslog, …)
o Password
▪ Mettre à jour les données d’authentification de l’utilisateur c’est-à-dire en
général son mot de passe. → Mise en place de stratégie de mdp
➢ Les drapeaux de contrôles (Indique à PAM comment réagir en cas de réussite ou d’échec)
o Required
▪ La réussite de ce module est nécessaire
▪ En cas d’échec, cela sera précisé à l’application / l’utilisateur une fois tous ls
autres modules parcourus.
▪ En cas de réussite, le module suivant est testé (Donc ordre important)
o Requisite
▪ En cas d’échec, l’information est retournée directement, les autres modules
ne sont pas parcourus
o Suffcient
▪ En cas de réussite, envoie directement le message de réussite à l’application
sans tester les modules suivant. S’il y a échec, cela n’a pas d’importance sauf
s’il s’agit du dernier module de la pile
o Optionnal
▪ Qu’importe le résultat, cela n’a pas d’importance
➢ Les arguments et les chemins des modules
o Le module PAM par défaut dans /lib/security ou /lib64/security
➢ Les modules
o Pam_console → Permet de donner des droits supplémentaires à un utilisateur
o Pam_access → Permet d’autoriser/interdire l’accès via un username, une IP, …
o Pam_cracklib → Permet de vérifier la force d’un mot de passe
o Pam_deny → Retourne directement un échec
o Pam_ftp → Permet l’accès anonyme sur FTP, via une simple IP
o Pam_issue → Affiche le fichier /etc/issue avant de demander le login
o Pam_limits → Limiter les ressources qu’un utilisateur peut obtenir
o Pam_listfile → Autoriser/interdire un service sur base d’une liste dans une fichier
o Pam_mkhomedir → Permet la création à la volé du répertoire personnel
o Pam_mount → Permet de monter un système de fichier distant ou chiffré lors de la
connexion de l’utilisateur
o Pam_nologin → Permet de n’autoriser que le root à se connecter
o Pam_permit → Retourne automatiquement un succès
o Pam_rootok → Permet à root d’accéder à certains service sans MDP
o Pam_tally → Compte le nombre d’échec d’authentification
o Pam_time → Autoriser/interdire l’accès sur base de la date + heure
o Pam_warn → Enregistre l’username + nom de la machine dans les logs
o Pam_wheel → Resrteint l’accès au statut root (su) aux seuls membres du groupe
wheel
36
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Rappel Domaines :
Le but d'un domaine est de centraliser la gestion des ressources d'un réseau. C'est un ensemble
d'objets partageant un ensemble de règles de sécurité communes. Il permet à un utilisateur de se
connecter sur n'importe quelle machine pour laquelle il en a reçu le droit. Grâce à un profil itinérant, il
peut accéder à son profil et ses documents de n'importe quel endroit.
Solution actuelle :
➢ Combinaison de Samba4 + Winbindd + IDMAP
Samba :
➢ Les modes de sécurité
o Samba peut fonctionner selon plusieurs modes ou niveaux de sécurité. Chaque moi
correspond à une valeur différente du paramètre security de smb.conf. Les deux
premiers modes correspondant à de simples partages Windows
o Security = user
▪ Le client envoie une demande de session, en retour le serveur lui retourne
une demande d'authentification login / mot de passe. Une fois
l'authentification réussie, le client peux accéder aux partages pour lesquels il
a reçu le droit d'accès
o Security = share
▪ Chaque ressource partagée est associée à un ou plusieurs mot de passe. Il
suffit de la connaitre pour pouvoir y accéder. Le serveur Samba doit deviner
le nom d'utilisateur à associer. C'est le seul à niveau qui se base sur les
partages. Les autres se basent sur l'utilisateur.
37
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
o Security = server
▪ identique au niveau de sécurité user, mis à part que l'authentification se
réaliser via un autre serveur. Comme le serveur samba n'est pas intégré à un
domaine, il peut y avoir des problèmes divers de fonctionnement. Il n'est pas
recommandé de l'utiliser.
o Security = domain
▪ Samba fait partie d'un domaine NT4. L'authentification se fait donc auprès
d'un PDC, BDC, DC ou serveur Samba jouant un de ces rôle. L'authentification
fonctionne comme pour le mode user. Les machines doivent également
t'authentifier dans le domaine.
o Security = ads
▪ Ce mode permet cette fois de s'intégrer dans une AD en mode natif. Il y a
donc emploi de LDAP et de kerberos. Il faut donc en plus du paramètre
security préciser de quel "royaume" kerberos le serveur fait partie: realm =
nom.du.royaume.kerberos.
➢ Problèmes lié à l’utilisation de Samba
o L’existence d’un compte local à la machine Samba est nécessaire
o Une solution est de créer une copie de tous les comptes du domaine sur les machines
Samba à l’aide de scripts
o Pour résumer :
▪ A chaque compte samba doit correspondre un compte Linux/unix
▪ Un script peut créer ces comptes
▪ A chaque utilisateur correspondra une entrée dans passwd et dans shadow
sur chaque machine
o → Utilisation de winbindd afin de se passer des comptes locaux
Winbindd :
➢ Présentation
o Winbindd crée des bindings, des liens entre des comptes Unix virtuels créés à la volée
et les comptes Windows. Ces informations sont stockées dans une base de données
qui fait le lien entre les UID/GID et les SID
o Il permet de se connecter à un domaine NT ou AD
o Il s’utilise via un module PAM (authentification) et nsswitch (résolution des noms de
comptes)
o Fourni avec Samba3
➢ Configuration
o Deux fichiers à configurer
▪ Nsswitch.conf → Configuration des services de noms et bdd système
▪ Smb.conf → Configuration proprement dite
▪ Ensuite, configurer PAM pour qu’il utilise WInbindd
➢ Problèmes
o Même s’il n'y a plus besoin de comptes locaux, Winbindd n'est pas la solution parfaite:
en effet, à chaque SID est créé une correspondance en UID ou GID. Or dans une
système Unix, c'est à partir de ce compte qu'est reconnu l'utilisateur. S'il y a plusieurs
serveurs Winbindd, un utilisateur risque d'avoir des numéros de comptes différents,
puisque les correspondances sont créées à la volée dans une base de données locale.
o Lors de l'emploi de services qui utilisent les User ID, comme NFS, cela va poser des
problèmes. Un utilisateur doit avoir le même UID sur tous les systèmes du réseau.
o Par contre, dans le cas d'un serveur fonctionnant seul, Winbindd est une bonne
solution.
38
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
IDMAP :
➢ IDMAP gère la traduction entre les ID Windows et Unix.
➢ RID
o Il existe un première solution qui a l'avantage d'être non centralisée. Elle ne
fonctionne que dans un domaine unique AD, pas de la cas de domaines avec des
trusts. Les ID Unix sont dérivées du RID1
➢ LDAP
o LDAP peut être utilisé dans les domaines de type NT4 ou AD. Les informations
concertants les bindings entre comptes Unix et Windows seront stockée dans un
serveur LDAP.
39
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
XVIII. Radius
Introduction :
➢ Remote Authentication Dial-in User Service → Protocole qui gère l’authentification
➢ Radius est un protocole Client Serveur&PAAA (Authentication / Authorization / Accounting).
o Authorization → Une fois que l’on a prouvé notre ID. Qu’est-ce que l’on peut faire ?
o Accounting → Compter ce qu’il s’est passer sur le réseau
➢ UDP port 1812.
Acteurs :
➢ Serveurs va gérer l’authentification, il va utiliser une DB d’identification (Txt, SQL, LDAP, ...).
➢ Client : NAS (Network Acces Server), n’importe quel service demande une authentification :
o Access Point, Portail Capitf (Hotspot) et Switch (admin, vlan, ...).
➢ Utilisateur va émettre la requête d’identification au RADIUS.
➢ Proxy : serveur radius qui redirige les requêtes vers un autre serveur radius.
Fonctionnement :
➢ Utilisateur (supplicant) : contacte le client Radius pour une demande d’authentification. Il
utilise des protocoles :
o EAP (sert à transporter l’identification) (Extensible Authentication Protocol)
▪ Supporte plein de méthode d’authentification
▪ Mot de passe :
• Natif
o PAP (Password Auth. Protocol) : le login et le mdp sont
transmis en clair sur la ligne, ils sont hachés. (Réponses :
ACK / NACK)
o CHAP (Challenge Auth. Protocol) : Le login et le mdp ne
circule pas sur le réseau.
▪ Je pose une question, si la personne répond bien ==
GOOD
▪ Challenge / Responde / Success / Failure
• Extensions Msft (Mschap, Mschapv2).
➢ Authentification « normale » : client envoie Acces-request au serveur (selon protocole user) et
le serveur répond au client (Acces-Accept ou Acces-Reject).
➢ Authentification par challenge : Le Serveur envoie au client Acces-Challenge, le client répond
au challenge par un paquet de type Acces-Request.
Attributs :
➢ Autres types de messages : Accouting-Request et Accouting-Reponses
➢ Informations transmises dans un paquet : Type, Longueur, Attribut (qui va indiquer le type
d’information Radius).
➢ User-Name
➢ User-Password
➢ CHAP-Password
➢ NAS-IP-Address
➢ Acct-Session-Time
Sécurité :
➢ Authentification Client : PSK : La sécurité entre le serveur et le client est assurée par une clé
partagée qui crypte notamment le mot de passe user, attention cependant à la faiblesse de la
clé. Il faut utiliser sur chaque NAS une clef différente, assez complexe. Basé sur md5 → pas
trop dur à casser.
➢ Authentification utilisateur : Dépend de la solution choisie (pap, chap ,challenge...). Attention
à la façon dont login/mdp sont transférés à l’hôte utilisateur.
40
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
XIX. Kerberos
➢ Protocole relativement ancien
➢ Fourni un système d’authentification unifié en milieu hétérogène
Principes :
➢ Clé : Employée pour chiffrer un message. Clé secrète : Soit symétrique soit asymétrique :
o Clé symétrique : on peut lire le message des 2 cotés car chacun à une clé, mais si on
a 1000 users qu’y veulent l’accès aux données, il faut dont 1000 paires de clés
o Clé asymétrique : 1 Clé privées et une clé publique qui est données à tout le monde.
C’est surtout utilisé dans les transactions bancaires. Mais cela permet de créer qu’une
seule paire de cl ». Néanmoins, cela demande beaucoup de ressources pour générer
tout cela.
➢ Clé de session : clé négociée et demandée seulement à un moment (lors d’une session)
Tierce partie :
➢ Partie de confiance : elle connait les clefs et s’occupe de l’échange entre les parties.
➢ La partie de confiance reçoit une demande d’Alice, elle génère une clef de sessions K ab qu’elle
envoie à Alice et Bob. Ensuite les deux peuvent communiquer.
➢ Pour diminuer le travail de la Tierce Partie, une fois la demande d’Alice reçue, il génère une
clef qu’elle partage avec Alice et Bob, mais seul bob sait déchiffrer la clef, Alice ne fait que
transmettre. (Token kerberos).
➢ Rejeu de message : Essayer de rejouer un message ancien, compromis pour s’authentifier
(utiliser une clef déjà utilisée). Ticketbr ou Une ancienne Kab.
➢ Protéger contre le rejeu : Pour cela, il faut ajouter une valeur unique dans les messages
chiffrés pour rendre invalide d’anciens messages. Ex : un nombre aléatoire, qu’Alice est
incapable de déchiffrer.
Protocol de Needam-Schroeder :
➢ Protocole utilisé sur des réseaux non-sûr,
comme Internet. Ce protocole permet aux
communiquant de prouver leurs identités
respectives à travers le réseau.
Kerberos Rôles :
➢ Client = Alice / Service = Bob.
➢ KDC = Key distribution center (centre de
distribution de clef).
➢ KDC gère un royaume (Realm): Relation
de confiance entre royaume → permet
l’authentification inter-royaume.
➢ Divisés en 2 services :
o TGS : Ticket Granting Server : Service qui fournit les tickets.
o AS : Authentification service : Service auprès duquel les clients s’authentifient
41
Systèmes d’exploitation open source : théorie
Laenen Maximilien SECU – BA2 – Q1
Fonctionnement Kerberos :
➢ Les clé secrètes sont des hashages des mots de passes
➢ Résumé :
o Client demande un TGT auprès de l’AS
o Client demande un TS auprès du TGS avec son TGT
o Client demande une session et s’authentifie avec son TS
o → SSO : Single Sing Out
Faiblesse :
➢ Dépendance au temps
➢ Single point of failure
➢ Compromission d’un mdp
➢ Services doivent supporter kerberos
➢ Algorithme de cryptage
42
Systèmes d’exploitation open source : théorie