0% ont trouvé ce document utile (0 vote)
6 vues267 pages

Aes-256-cbc : Risques et Alternatives

Le document présente le rôle et les missions d'un administrateur système et réseau, ainsi que les compétences nécessaires pour assurer la gestion des systèmes informatiques et des réseaux. Il aborde également la gestion des utilisateurs et des groupes dans un système Linux, en détaillant les fichiers /etc/passwd et /etc/shadow qui contiennent des informations sur les comptes utilisateurs. Enfin, il explique comment manipuler les permissions et les droits d'accès des utilisateurs.

Transféré par

Taha Aboumehdi hassani
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues267 pages

Aes-256-cbc : Risques et Alternatives

Le document présente le rôle et les missions d'un administrateur système et réseau, ainsi que les compétences nécessaires pour assurer la gestion des systèmes informatiques et des réseaux. Il aborde également la gestion des utilisateurs et des groupes dans un système Linux, en détaillant les fichiers /etc/passwd et /etc/shadow qui contiennent des informations sur les comptes utilisateurs. Enfin, il explique comment manipuler les permissions et les droits d'accès des utilisateurs.

Transféré par

Taha Aboumehdi hassani
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ADMINISTRATION SYSTÈME

Pr. Mohammed AIT DAOUD

Année universitaire : 2023/2024


1
PROGRAMME ADMINISTRATION SYSTÈME

Automatisation des tâches avec cron


Configuration réseau avancée

Projet pratique avec intégration continue et déploiement continu


2
 QU’EST-CE QU’UN ADMINISTRATEUR SYSTÈME ET RÉSEAUX ?
• L’administrateur système réseau est un professionnel chargé de la gestion, de l’installation et de la maintenance des
systèmes informatiques et des réseaux de communication d’une entreprise. Il est responsable de la bonne marche de
l’ensemble des équipements et logiciels qui permettent à l’entreprise de communiquer et de travailler efficacement.
 Missions de l’Administrateur système réseau
• Assurer la disponibilité, la stabilité et la sécurité des systèmes et réseaux de l’entreprise
• Installer et configurer les équipements et logiciels nécessaires au fonctionnement de l’entreprise
• Réaliser les mises à jour et les correctifs de sécurité sur les équipements et logiciels
• Gérer les utilisateurs et les droits d’accès aux différents systèmes et réseaux
• Rédiger et mettre à jour la documentation technique
• Former les utilisateurs aux bonnes pratiques et aux outils mis à disposition
 Objectifs
• Faire en sorte que les systèmes et réseaux de l’entreprise soient performants et sécurisés
• Assurer la continuité de service et la disponibilité des équipements et logiciels
• Anticiper et résoudre les problèmes techniques qui peuvent survenir
 Compétence de l’Administrateur système réseau
• Maîtrise des technologies réseau et des protocoles de communication (TCP/IP, DHCP, DNS, etc.)
• Connaissance des systèmes d’exploitation (Windows, Linux, etc.)
• Bonne connaissance des outils de gestion et de monitoring des systèmes et réseaux
• Capacité à travailler en équipe et à communiquer efficacement
• Esprit de synthèse et de méthode 3
• Objectifs : comprendre la gestion des utilisateurs et des
groupes, manipuler les permissions.
• Contenu :
• Commandes avancées : adduser, usermod, deluser
• Gestion des droits et permissions : chmod, chown, chgrp
• Activités :
• Création et modification d'utilisateurs et de groupes.
• Assignation de permissions spécifiques.

4
1. INTRODUCTION

 Dans un système Linux chaque utilisateur possède un compte, ce compte a un aspect sécuritaire puisqu'il définit les
permissions et les autorisations dont dispose l'utilisateur sur les fichiers et les dossiers.
 Les comptes utilisateurs sont aussi organisés en groupe, un compte utilisateur doit appartenir au moins à un groupe, les
groupes sont utilisés pour faciliter la gestions des utilisateurs.
 Les données des comptes et des groupes utilisateurs sont stockés dans des fichiers, il est important de connaître la
structure et le contenu de ces fichiers pour superviser les utilisateurs du système
 Il existe plusieurs commandes permettant de manipuler les comptes et les groupes utilisateurs (affichage, création,
modification et suppression)

5
1. LES UTILISATEURS

 Linux est un système multiutilisateurs :


 Pour préserver la sécurité et la confidentialité des donnée, Linux assure un système d’identification
et de gestion des utilisateurs
 Un utilisateur est donc celui qui s ’ est logué en donnant un nom de login.

 Ce login permet de définir l ’ utilisateur et tracer l ’ activité menée en son nom.

 Types d ’ utilisateurs : Il existe deux types d’utilisateurs

 Le root ou le super utilisateurs a l ’ ensemble des droits sur le système


 Utilisateur ordinaire ayant des droits bien définies sur le système

Année
204
Universi
taire
1. LES COMPTES UTILISATEURS

 Classes d'utilisateurs : Il existe 3 classes d'utilisateurs :


 le propriétaire du fichier (User)
 le groupe dans lequel appartient le propriétaire (Group)
 les autres (Others).

 Dans /etc il existe un ensemble de fichiers textes contenant des informations sur les comptes et les groupes utilisateurs
définies dans le système, par exemple si on veut vérifier si un utilisateur est définie sur le système il faut le chercher dans
le fichier /etc/passwd
 Le fichier /etc/passwd fournit un ensemble d'informations sur les comptes utilisateurs définies sur le système.

 Alors que le fichier /etc/shadow contient les informations sur le mot de passe des comptes utilisateurs.
7
. LES COMPTES UTILISATEURS: LE FICHIER /ETC/PASSWD

 Chaque ligne du fichier /etc/passwd est relative à un utilisateur, la figure suivante montre les 10 lignes du fichier
/etc/passwd

 Chaque ligne du fichier /etc/passwd est composée d'un ensemble de champs séparés par deux points
1. LES COMPTES UTILISATEURS: LE FICHIER /ETC/PASSWD

login(nom d'utilisateur):mot de passe:UID:GID:commentaire :répertoire personnel:shell

 Le fichier /etc/passwd contient les champs suivants:


champ exemple Description

login root C'est le nom utilisé par l'utilisateur pour ouvrir une
session sur le système,ce nom est affiché aussi pour
indiquer l’appartenance d'un fichier à un utilisateur
(avec ls -l)
root est le compte administrateur qui possède des
privilège d'administration sur le système

 Le tableau suivant décrit les différents champs du fichier /etc/passwd en prenant comme exemple la première ligne
(root:x:0:0:root:/root:/bin/bash)
1. LES COMPTES UTILISATEURS: LE FICHIER /ETC/PASSWD
Mot de passe x Anciennement les mot de passe était enregistrés dans
/etc/passwd mais pour des raisons de sécurité ils sont
maintenant enregistrés dans /etc/shadow
Le x indique que le mot de passe ne se trouve pas ici mais
dans /etc/shadow
UID (identifiant 0 Chaque compte utilisateur est identifié d'une façon unique
de l'utilisateur) dans le système par un identifiant appelé UID
L'UID est le paramètre qui définit réellement un utilisateur dans
le système
Certain UID sont spécial :0 définit le compte administrateur les
UID inférieurs à 500 (ou à 1000 dans certaine distributions)
identifie les comptes systèmes spéciaux
GID:identifiant 0
du groupe C'est l'identifiant du groupe principal auquel appartient le
primaire compte utilisatur,les groupes sont aussi identifiés par un
identifiant numérique appelé GID
Lorsqu'un utilisateur crée un fichier ce fichier appartient à
l'utilisateur (UID) et aussi à son groupe principal (GID)
1. LES COMPTES UTILISATEURS: LE FICHIER /ETC/PASSWD

commentaire Root Ce champ peut contenir des informations supplémentaire sur l'utilisateur comme son nom
réel ou toute autre information.
Ce champ est appelé aussi le champ GECOS (General Electric Comprehensive Operating
System ) il contient un ensemble de champ séparés par virgule représentant des
informations sur l'utilisateur comme son nom,son numéro de téléphone ou autre informations.
L'administrateur peut changer ces informations contenues dans GECOS avec la commande
chfn et les utilisateurs peuvent afficher ces informations avec la commande finger.
Répertoire /root Ce champ indique l'emplacement de répertoire personnel de l'utilisateur un utilisateur régulier
personnel aura comme répertoire personnel /home/username (avec username le nom de l'utilisateur
ex:/home/bob).
L’utilisateur root possède un emplacement différent pour son répertoire personnel:/root.
Les comptes systèmes n'ont pas souvent de répertoires personnels car ils n'ont pas besoin
de stocker des données ou des fichiers.
Shell /bin/bash Définit le shell qui sera utilisé par l'utilisateur lors de l'ouverture d'une session en ligne de
commande ou lorsqu'il ouvre un terminal.
L'utilisateur peut changer de shell en tapant le nom du shell qu'il souhaite utiliser par
exemple:/bin/tcsh
1. LES COMPTES UTILISATEURS: LE FICHIER /ETC/SHADOW

 Le fichier /etc/shadow contient les informations relatives aux mots de passes des comptes utilisateurs

 Le fichier /etc/shadow à la forme suivantes:

nom:mot de passe:dernier changement:min:max:avertissement:inactive:expire:réservé


1. LES COMPTES UTILISATEURS: LE FICHIER /ETC/SHADOW

Sysadmin:$6$….I1:15020:5:30:7:60:15050:

 Le tableau suivant décrit ces différents champs en prenant comme exemple la première ligne:

champ exemple Description

nom(login) sysadmin Le nom du compte utilisateur tel qu’il figure dans


/etc/passwd

Mot de passe $6$….I1 C'est le mot de passe crypté du compte,Le cryptage est
irréversible c’est à dire on ne peut pas trouver le mot de
passe à partir de la valeur crypté
Les comptes systèmes on comme valeur dans ce champ *
(les comptes systèmes seront discutés par la suite dans ce
chapitre)
1. LES COMPTES UTILISATEURS: LE FICHIER /ETC/SHADOW

Dernier 15020 Ce champ indique le nombre de jours écoulé depuis le dernier changement du mot de passe.
changement 15020 est le nombre de jours depuis 1 janvier 1970 jusqu'au jours ou le mot de passe a été changé.
Lorsque l'utilisateur change son mot de passe cette valeur est générée automatiquement.

min 5 Ce champ est relatif à la durée de validité du mot de passe.


Il indique pour un utilisateur ayant changer son mot de passe après combien de jours il peut le
changer de nouveau(valeur non nulle).
Une valeur nulle indique que l'utilisateur peut changer toujours son mot de passe
max 5 Ce champ est utilisé pour forcer l'utilisateur à changer régulièrement son mot de passe ,par exemple
une valeur de 30 dans ce champ impose à l'utilisateur de changer son mot de passe tout les 30 jours.
La valeur maximale pour ce champ est 99999 qui signifie que l'utilisateur peut ne jamais changer son
mot de passe car 99999 jours vaut 274 ans !!

avertissement 7 Ce champ indique le nombre de jours avant l'expiration du mot de passe provoquant l'avertissement
de l'utilisateur qu'il doit changer son mot de passe.
Par exemple si ce champ vaut 7 et max vaut 30 alors durant les 7 jours qui précédent le délai max
l'utilisateur va etre avertit à l'ouverture de session qu'il doit chnager son mot de passe
1. LES COMPTES UTILISATEURS: LE FICHIER /ETC/SHADOW

inactif 60 C'est un délai supplémentaire après le dépassement de nombre de jours mentionné dans le
champ max durant lequel l'utilisateur peut changer son mot de passe avant que son compte ne
soit bloqué.
Avec une valeur de 60 l'utilisateur a 60 jours de délai pour changer son mot de passe avant que
son compte ne soit bloqué
expire 15050 C'est le nombre de jour depuis le 1 janvier 1970 jusqu'au jour ou le compte sera désactivé.
Un compte déactivé ne sera supprimé l'administrateur peut le réactiver.
Les comptes avec une date d'expiration sont fournies à des employeurs temporaires

réservé Champ réservé pour une utilisation ultérieure

Les utilisateurs ne peuvent pas voir le contenu de /etc/shadow pour des raisons de Sécurité pour cela il faut
ouvrir une session en tant qu’administrateur
1. LES COMPTES UTILISATEURS: AFFICHER LES INFORMATIONS D'UN COMPTE UTILISATEUR

 Pour visualiser les informations concernant un compte utilisateur à partir du fichier /etc/passwd ou /etc/shadow on peut
utiliser la commande grep et afficher uniquement la ligne relative à l'utilisateur cherché
 Exemple : si on veut afficher les informations sur l'utilisateur sysadmin on écrit grep 'sysadmin' /etc/passwd

 getent est une autre commande qui permet d’afficher les informations d'un compte utilisateur à partir des fichiers
/etc/passwd ou /etc/shadow, l'avantage de getent est qu'elle peut afficher les comptes utilisateurs locaux ou ceux définit sur
un serveur réseau

 La syntaxe générale de getent est:getent base-donnée enregistrement


 Exemple: getent passwd sysadmin
1. LES COMPTES UTILISATEURS: AFFICHER LES INFORMATIONS D'OUVERTURE DE SESSION

 Si on utilise plusieurs comptes pour ouvrir une session, on peut vérifier le compte utilisé actuellement
pour l'ouverture de session en utilisant la commande id
 La commande id sans argument affiche:le nom du compte, son ID et aussi les groupes auquel appartient
le compte courant.
 Si on passe un nom d'utilisateur comme argument à la commande id celle-ci va afficher les informations
sur ce compte utilisateur.
1. LES COMPTES UTILISATEURS: LES COMPTES SYSTÈME

 En plus des comptes utilisateurs réguliers on trouve un ensemble de comptes système permettant de définir
des comptes pour les services s’exécutant sur le système
 Les comptes système ont un UID entre 1 et 499,alors que les comptes normaux ont un UID supérieur à
500(ou à 1000 dans certain système)
 Les informations sur les comptes systèmes sont aussi stockées dans les fichiers /etc/passwd et
/etc/shadow mais certain champ relatifs aux comptes systèmes diffèrent de ceux des comptes utilisateurs
normaux
 Par exemple :

• les comptes système ont la valeur /sbin/nologin dans le champ Shell du fichier /etc/passwd
• bin:x:1:1:bin:/bin:/sbin:/sbin/nologin
• Les comptes systèmes ont la valeur * dans le champ mot de passe du fichier /etc/shadow
• bin:*:15513:0:99999:7:::
2. LES GROUPS
 Les privilèges d'accès au système n'est pas définit uniquement par le compte utilisateur mais aussi par
l'appartenance à un groupe.
 Chaque utilisateur doit appartenir au moins à un groupe

 Le fichier /etc/passwd indique le groupe principal auquel appartient un compte utilisateur pour voir les
autres groupes secondaires il faut consulter le fichier /etc/group
 Le fichier /etc/group contient la liste de tous les groupes définies sur le système

 Pour afficher les informations relatives à un groupe particulier on utilise la commande grep ou
getent
• [sysadmin@localhost ~]$ grep mail /etc/group
• mail:x:12:mail,postfix
• [sysadmin@localhost ~]$ getent group mail
• mail:x:12:mail,postfix 28/03/2025
2. LES GROUPES: LE FICHIER /ETC/GROUP

 Le fichier /etc/group contient 4 champs qui sont délimité par deux points décrivant
les groupe du système
 Le fichier /etc/group a la structure suivante:

Nom du groupe:mot de passe:GID:liste des membres

 Exemple :
mail:x:12:mail,postfix

 Le tableau suivant décrit ces 4 champs


2. LES GROUPES: LE FICHIER /ETC/GROUP

champ exemple description

Nom du groupe mail Ce champ contient le nom du groupe

Mot de passe x Le mot de passe du groupe est enregistré


dans le fichier /etc/gshadow il est remplacé
ici par x

GID 12 Chaque groupe est identifié d'une façon


unique avec un GID (Group IDentifer)

Liste des Mail,postfix Ce champ indique les membres du groupe.


membres Il faut noter que le groupe principal d'un
compte utilisateur figure dans /etc/passwd,si
un utilisateur possède d'autres groupes
secondaires son nom d'utilisateur va
apparaître dans ce champ de /etc/group
pour tous les groupes secondaires auxquels
appartient.
2. LES GROUPES: CHANGER L'APPARTENANCE D'UN FICHIER À UN GROUPE
 On peut changer le groupe propriétaire d'un fichier en utilisant la commande chgrp

 Syntaxe: chgrp nom_du_groupe fichier


 Les utilisateurs peuvent appliquer cette commande uniquement sur leur fichiers propriétaires et sur les
groupes auxquels appartiennent.

 On peut changer le groupe propriétaire pour une arborescence de fichiers et de répertoires en utilisant
l'option -R de chgrp

 Exemple: chgrp -R games test_dir


 Définir le groupe games comme propriétaire du répertoire test_dir et de tout ces sous répertoires et fichiers.

 Il existe aussi la commande chown qui permet de changer l'utilisateur propriétaire d'un fichier, mais cette
commande peut-être utilisée uniquement par le root

 Synatxe: chown utilisateur fichier


3. OUVRIR UNE SESSION EN TANT QUE ROOT

 Parfois on a besoin d'un certain privilège pour exécuter des commandes ou pour modifier des fichiers, il
faut alors ouvrir une session en tant qu'administrateur ou root.

 L'Ouverture de session directement en tant que root reste dangereux car ça peut causer des problèmes et
des dysfonctionnement pour le système en exécutant certaine commandes dont on ne sait pas le résultat.
C'est pour cette raison que le compte root est désactivé sur certaine distribution comme Ubuntu
 La solution est d’exécuter uniquement des commandes en tant que root lorsque les privilèges
d'administrateur sont demandés.

 Si le compte root est désactivé(comme pour Ubuntu) on utilise la commande sudo pour exécuter des
commandes en tant que root

 Si le compte root est activé on utilise la commande su pour basculer un compte régulier vers le compte
root et exécuter des commandes demandant les privilèges root.

28/03/2025
3. L'UTILISATION DE LA COMMANDE SU

 La commande su permet d’exécuter le Shell en tant qu'un autre utilisateur, par défaut si le compte
utilisateur n'est pas spécifié alors su permet d’exécuter le Shell en tant que root.
 L'option -l de su ou – permet d'ouvrir le Shell comme si l'utilisateur est directement connecté en tant que
root
 Les commandes suivantes sont équivalentes et permettent exécuter le Shell en tant que root

 su -l root
 su -
 su –l
 Le mot de passe root vous sera demandé une fois l'une de ces commandes entrées

 Pour revenir à votre shell par défaut(compte utilisateur original) il faut utiliser la commande exit.
3. L'UTILISATION DE LA COMMANDE SUDO (SUBSTITUTE USER DO)

 La commande sudo permet à un utilisateur d’exécuter une commandes en tant qu'administrateur

 SYNTAXE: sudo <commande>


 Sudo demande à l'utilisateur de fournir son propre mot de passe et non pas celui du root.

 Exemple:pour afficher le fichier /etc/shadow il faut avoir les privilège du root on doit alors faire appel à
la commande sudo pour afficher ce fichier en tant qu'administrateur

 sudo head /etc/shadow


3. L'UTILISATION DE LA COMMANDE WHO

 La commande who affiche la liste des utilisateurs actuellement connectés au système


[sysadmin@localhost ~]$ who
root tty2 2013-10-11 10:00
sysadmin tty1 2013-10-11 09:58 (:0)
sysadmin pts/0 2013-10-11 09:59 (:0.0)
sysadmin pts/1 2013-10-11 10:00 ([Link])

 Le tableau suivant décrit l'affichage de la commande who

colonne exemple description


Nom de root Ce champ indique le nom de l'utilisateur qui a ouvert une session sur le système
l'utilisateur ou qui a lancer un terminal

terminal tty2 Indique sur quel terminal l'utilisateur travail actuellement.


Si le nom du terminal commence par tty cela indique que l'utilisateur utilise le
terminal local pour ouvrir la session.
Si le nom commence par pts cela indique que l'utilisateur a utilisé un émulateur
de terminal pour ouvrir unes session comme gnome-terminal ou xterm
date 2013-10-11 10:00 Indique la date et l'emplacement de la connexion
([Link])
3. L'UTILISATION DE LA COMMANDE W

 La commande w offre plus de détaille sur les utilisateurs connecté au système par rapport à la commande
who
[sysadmin@localhost ~]$ w
10:44:03 up 50 min, 4 users, load average: 0.78, 0.44, 0.19
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 - 10:00 43:44 0.01s 0.01s -bash
sysadmin tty1 :0 09:58 50:02 5.68s 0.16s pam: gdm-password
sysadmin pts/0 :0.0 09:59 0.00s 0.14s 0.13s ssh [Link]
sysadmin pts/1 [Link] 10:00 0.00s 0.03s 0.01s w

 La première ligne du résultat de la commande w donne le temps écoulé depuis le démarrage du système ,le
nombre d'utilisateurs connecté et la charge moyenne (charge CPU).

28/03/2025
3. L'UTILISATION DE LA COMMANDE W

 Le tableau suivant décrit l'affichage de la commande w

colonne exemple Description


USER root Indique le nom de l'utilisateur
TTY tty2 Indique le nom du terminal
FROM [Link] Indique d'où l'utilisateur est connecté
LOGIN@ 10:00 L'heure où l'utilisateur a ouvert une session
IDLE 43:44 Durée d'inactivité après la dernière commande exécutée par
l'utilisateur
JCPU 0,01s Le temps cpu total de tous les programmes exécutés à partir
du moment où l'utilisateur ait ouvert une session

PCPU 0,01s Le temps cpu pour le processus courant


WHAT -bash Le nom du processus qui exécuté maintenant par l'utilisateur
4. CRÉATION DE NOUVEAUX GROUPES ET UTILISATEURS: INTRODUCTION

 Nous avons vu que les données des comptes utilisateurs sont stockées dans le fichier /etc/passwd et les mots de passe
dans /etc/shadow, créer un nouveau utilisateur revient à ajouter une nouvelle ligne à ces deux fichiers, mais cette
technique n'est pas recommandée car on risque de commettre une erreur et empêcher par conséquence tous les
utilisateurs d’accéder au système.
 En utilisant les commandes appropriées pour ajouter un nouveau utilisateur ces fichiers vont être modifie d'une façon
automatique et sure.
 Dans certaine distribution lorsqu'on crée un nouveau utilisateur un groupe nommé groupe privé d'utilisateur (User
Private Group UPG) est créé automatiquement ce groupe aura le même nom que celui du nouveau utilisateur et aura un
seul membre qui est le nouveau utilisateur.
 Pour les distributions qui ne créent pas d'UPG les nouveaux utilisateurs auront comme groupe principal le groupe
« users »,l’administrateur peut alors créer des groupes qui seront privé pour le nouveau utilisateur, mais le plus souvent
on a besoin de créer des groupes contenant plusieurs utilisateurs qui ont besoin de collaborer.
 Les comptes utilisateurs peuvent être modifier à tout moment (les ajouter ou les retirer d'un groupe) mais un compte
utilisateur doit appartenir au moins un groupe (le groupe principal)
 Avant de créer de nouveaux utilisateurs il faut tout d'abord planifier quel utilisateur doit appartenir à quel groupe, il est
recommandé de créer les groupes en premier puis les utilisateurs car c'est plus simple côté gestion.
. CRÉATION D'UN GROUPE
 La raison principale pour créer des groupes est de permettre aux utilisateurs de partager des fichiers, par
exemple ça peut être le cas de personnes qui travaillent ensemble sur un projet et qui ont besoin de partager
les documents relatifs à ce projet
 Après la création ou la modification d'un groupe on peut vérifier sa configuration en consultant le fichier
/etc/group

 getent group nom_du_group


 grep nom_du_group /etc/group
 La commande groupadd est exécutée par le root pour créer un nouveau groupe, elle admet comme
paramètre le nom du groupe qu'on souhaite créer, l'option -g de groupadd permet de spécifier un GID pour
le groupe qu'on souhaite créer.
 [root@localhost ~]# groupadd -g 506 research

 [root@localhost ~]# grep research /etc/group

 research:x:506:
. CRÉATION D'UN GROUPE

❑ Si l'option -g n'est pas utilisée la commande groupadd fournit automatiquement un GID dont la valeur sera
supérieur au plus grand GID courant se trouvant dans /etc/group.

[root@localhost ~]# grep research /etc/group


research:x:506:
[root@localhost ~]# groupadd development
[root@localhost ~]# grep development /etc/group
development:x:507:
. CRÉATION D'UN GROUPE

 On vient de voir que dans certain système un groupe UPG est créé automatiquement lors de la création
d'un nouveau utilisateur, groupe aura un GID supérieur à 500.
 Pour éviter les conflits entre les groupes créer manuellement et les groupes UPG on peut attribuer un
GID inférieur à 500 aux groupes qu'on va créer manuellement en utilisant l'option -r de :

groupadd
 Il faut noter que les GID inférieurs à 500 sont réservé pour les comptes systèmes
[root@localhost ~]# groupadd -r sales
[root@localhost ~]# getent group sales
sales:x:491:
. CRÉATION D'UN GROUPE: CONSIDÉRATIONS POUR LES NOMS DE GROUPES

 Pour nommer un groupe il faut respecter les points suivant pour que le groupe puissent
fonctionner correctement avec les autres systèmes ou services
– Le premier caractère doit être une lettre minuscule(a-z) ou le caractère sous-ligné(_)
– Le nom ne doit pas dépasser 32 caractères ou 16 pour certain systèmes)
– Après le premiers caractères les autres caractères peuvent être alphanumérique, sous-ligné(_) ou
tiret(-)
– Le dernier caractère ne doit pas être un tiret (-)
. MODIFICATION D'UN GROUPE

 La commande groupmod peut être utilisée pour modifier le nom d'un groupe (option -n) ou son GID
(option -g).
 Le changement du nom d'un groupe n'affecte en rien appartenance des fichiers au groupes car le système
utilise le GID pour définir l'accès aux fichiers.
[root@localhost ~]# ls -l [Link]
-rw-r-----. 1 root sales 0 Aug 1 13:21 [Link]
[root@localhost ~]# groupmod -n clerks sales
[root@localhost ~]# ls -l [Link]
-rw-r-----. 1 root clerks 0 Aug 1 13:21 [Link]
. MODIFICATION D'UN GROUPE

❑ D'autre part si on modifie le GID du groupe tous les fichiers associé au groupe ne le seront plus et ne seront
associé à aucun nom du groupe, ils seront associé à un GID uniquement
❑ Ces fichiers qui ne sont pas associé à un nom de groupe sont appelé fichier « orphelin »
[root@localhost ~]# groupmod -g 10003 clerks
[root@localhost ~]# ls -l [Link]
-rw-r-----. 1 root 491 13370 Aug 1 13:21 [Link]
 On peut chercher ces fichiers avec find en utilisant l'option -nogroup
[root@localhost ~]# find / -nogroup
/root/[Link]
. SUPPRESSION D'UN GROUPE

❑ Pour supprimer un groupe on utilise la commande groupdel,les fichiers appartenant


au groupe vont devenir des fichiers “orphelins.
❑ On peut uniquement supprimer les groupes secondaires d'un utilisateur avec groupdel
et non pas le groupe principal.
❑ Pour supprimer un groupe on le donne comme argument pour la commande groupdel

[root@localhost ~]# groupdel clerks


. CRÉATION D'UN UTILISATEUR: LE FICHIER /ETC/DEFAULT/USERADD

● Avant de créer un nouveau utilisateur avec la commande useradd on peut définir ou modifier certaine
valeur qui vont être appliquées par défaut par la commande useradd au nouveau utilisateur
● Ceci peut être fait on modifiant le fichier de configuration /etc/default/useradd ou en utilisant l'option -D
de la commande useradd.
● Vérifier si ces valeurs sont « raisonnables » avant de créer l'utilisateur vont permettre de garantir que le
compte utilisateur qu'on va créer sera configuré correctement.

[root@localhost ~]# useradd -D


GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
8. CRÉATION D'UN UTILISATEUR:LE FICHIER /ETC/DEFAULT/USERADD

Paramètre exemple description


GROUP 100 Pour les distributions qui n'utilise pas d'UPG c'est le GID du groupe principal par défaut de
l'utilisateur(s'il n'est pas spécifié par useradd)
Normalement c'est le groupe « users ».
L'option -g de useradd permet de spécifier un GID différent de celui donné par défaut.
Ce paramètre affecte le champ suivant de /etc/passwd :
bob:x:600:600:bob:/home/bob:/bin/bash
HOME /home /home est le répertoire de base par défaut où les répertoires personnels des nouveaux utilisateurs vont
être créer.
Par exemple un utilisateur bob aura comme répertoire personnel /home/bob.
L'option -b de useradd permet de spécifier un répertoire de base (différent de celui par défaut )où le
répertoire personnel de l'utilisateur sera créé.
Ce paramètre affecte le champ suivant de /etc/passwd :
bob:x:600:600:bob:/home/bob:/bin/bash
INACTIVE -1 Cette valeur représente le nombre de jour restant après l'expiration du mot de passe avant que le
compte soit désactivé.
La valeur -1 signifie que ce champ n'est pas activé.
L'option -f de useradd permet de modifier ce paramètre
Ce paramètre affecte le champ suivant du fichier /etc/shadow
bob:pw:15020:5:30:7:60:15050:
28/03/2025
8. CRÉATION D'UN UTILISATEUR:LE FICHIER /ETC/DEFAULT/USERADD

EXPIRE Cette valeur indique la date d'expiration du compte,par défaut cette valeur n'est pas
définie
Pour définir une date d'expiration on utilise l'option -e de [Link] paramètre
affecte le champ suivant de /etc/shadow :
bob:pw:15020:5:30:7:60:15050:
SHELL /bin/bash Ce paramètre définit le shell par défaut que le nouveau utilisateur va utiliser
Pour changer le shell par défaut on utilise l'option -s de [Link] paramètre
affecte le champ suivant dans /etc/passwd :bob:x:600:600:bob:/home/bob:/bin/bash

SKEL /etc/skel Définit le répertoire « squelette » dont le contenu sera copié dans le répertoire
personnel du nouveau utilisateur,cela permet de définir des fichiers de configuration
intiale pour le compte nouvellement créé.Pour changer la valeur par défaut de ce
paramètre on utilise l'option -k de useradd
CREATE_MAI yes « spool » est un fichier où les e-mail reçu par l'utilisateur vont être stockés
L_SPOOL Pour ne pas créer ce fichier on place dans ce paramètre la valeur « no »
8. CRÉATION D'UN UTILISATEUR:LE FICHIER /ETC/DEFAULT/USERADD

 Pour modifier les paramètres par défaut de la commande useradd on édite directement le fichier
/etc/default/useradd ou bien une façon plus sur est d'utiliser la commande useradd -D.
 Exemple :on veut modifier le paramètre INACTIVE pour que les utilisateurs puissent utiliser leur
compte expiré durant 30 jours supplémentaires.

[root@localhost ~]# useradd -D -f 30


[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=30
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
28/03/2025
9. CRÉATION D'UN UTILISATEUR:LE FICHIER /ETC/[Link]

 Le fichier /etc/[Link] contient aussi des valeurs par défaut qui vont être appliquées aux nouveaux
utilisateurs qui vont être créer avec useradd.
 Ce fichier peut être éditer avec n'importe quel éditeur de texte pour modifier les valeurs par défaut qu'il
contient.
[root@localhost ~]# grep -Ev '^#|^$' /etc/[Link]
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 500
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
MD5_CRYPT_ENAB no 28/03/2025
9. CRÉATION D'UN UTILISATEUR:LE FICHIER /ETC/[Link]

Voici la description des différents paramètres de /etc/[Link]


 MAIL_DIR:définit où va être créé le fichier spool(file d'attente) pour les emails
 PASS_MAX_DAYS:ce champ concerne la durée en jours durant laquelle l'utilisateur continue à
utiliser le même mot de passe,ce paramètre concerne le champ max de /etc/shadow
bob:pw:15020:5:30:7:60:15050:
 PASS_MIN_DAYS:c'est la durée en jours qu'il faut attendre avant de changer le mot de passe,ce
paramètres concerne le champ min de /etc/shadow bob:pw:15020:3:30:7:60:15050:
 PASS_MIN_LEN:définit le nombre de caractères minimum que le mot de passe doit contenir
 PASS_WARN_AGE:ce paramètre concerne le champ avertissement de l'approche d'expiration du mot
de passe contenu dans /etc/shadow bob:pw:15020:3:30:7:60:15050:
9. CRÉATION D'UN UTILISATEUR:LE FICHIER /ETC/[Link]

 UID_MIN:ce champ indique UID minimal qu'on peut attribuer à un utilisateur régulier

 UID_MAX:définit l'UID maximal qu'on peut attribuer à un utilisateur régulier

 GID _MIN:définit le GID minimale qu'on peut affecter à un groupe ordinaire

 GID_MAX:définit le GID maximal qu'on peut affecter à un groupe ordinaire

 CREATE_HOME:indique si le répertoire personnel de l'utilisateur va être créé (yes ou no)

 UMASK:spécifie les permissions par défaut sur le répertoire personnel

 USERGROUPS_ENAB:si l'UPG est utilisé ce paramètre aura la valeur yes

 ENCRYPT_METHOD:définit la méthode de cryptage du mot de passe dans /etc/shadow ce paramètre remplace le dernier
paramètre MD5_CRYPT_ENAB
9. CRÉATION D'UN GROUPE

 groupe : ensemble de personnes ou de groupes.

 les groupes sont utilisés pour contrôler les accès au sein du système.

 le changement de groupe est (éventuellement) contrôlé par un mot de passe.

 il est géré par un administrateur spécifique au groupe (ou par défaut le super-utilisateur).

 il est identité par un numéro unique ou GID (Group IDentication number).


Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Les utilisateurs et les groupes

Fichiers de description des utilisateurs et


des groupes
❖ /etc/passwd pour les utilisateurs
❖ /etc/group pour les groupes

[Link]
208
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Les droits d ’ accés

Sous Linux chaque fichier (ou répertoire) possède un ensemble


d'attributs définissant les droits d'accès à ce fichier pour tous les
utilisateurs du système.

➢ A sa création, un fichier appartient à son auteur.


➢ Le propriétaire du fichier peut ensuite distribuer ou restreindre
les droits d'accès sur ce fichier

➢ Pour chaque classe d'utilisateurs, il y a 3 types d'accès à un


fichier donné :
▪ r : en lecture (Read).
▪ w : en écriture (Write).
▪ x : en exécution (eXecute).
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Les droits d ’ accés

Les modes d’autorisation:

Propriétaire
✓ autorisation d’écriture (w)

✓ autorisation de lecture (r)

Membres du groupe propriétaire ✓ autorisation d’exécution (x)

210

Autres utilisateurs
Chapitre 3 :Gestion des
Module : Système d ’ exploitation 1
utilisateurs
Les Droits d’accès des fichiers et des répertoires

 Un droit d’accès est un modèle qui décrit pour


chaque fichier ou chaque répertoire, qui a le
droit de lire, d’exécuter ou de modifier.

Année
211
Universi
taire
Chapitre 3 :Gestion des
Module : Système d ’ exploitation 1
utilisateurs
Afficher les droits d’accès d’un fichier ou d’un répertoire

d rwx r-x r-x

Année
212
Universi
taire
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Droits d’ accés

Année
213
Universi
taire
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Droit d ’ accés à un répertoire

Accès Fichier Répertoire

R lirelecontenudufichier affichercontenudurépertoire

W modifierlecontenudu ajouteretsupprimerfichier
fichier
X lancerunfichierexécutable rendrelerépertoirecourant

Année
214
Universi
taire
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
D’une façon générale
La commande ls -l en console permet d'afficher les détails d'un répertoire ou
d'un fichier. On y découvre alors une somme importante d'information.

Exemple d'affichage après la commande ls-l

38
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Modification des droits d’ accés aux fichiers

chmod (CHange MODe)

Propriétaire

Description des protections Mode symbolique


par un nombre octal
216
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

Modification des droits d’ accés aux fichiers : le mode octal


 Les droits sont représentés par un nombre octal
(Base 8)
▪ De 1 à 7
 La représentation binaire (base 2) donne le détail des
droits Propriétaire : Lecture, écriture
▪ Groupe : Lecture et exécution
Autres : Lecture seulement

110 101 100


rw- r-x r--
 Ce mode permet de modifier tous les droits en même
temps
▪ A utiliser avec précaution
▪ Très efficace pour s’assurer que tous les fichiers ont les
mêmes droits
▪ Utilisé pour sécuriser les accès des utilisateurs aux
fichiers [Link]
217
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Modification des droits d’ accés aux fichiers : le mode octal

Exemple:
On veut modifier la protection du fichier toto de la manière suivante :
rx rw rwx
1. autorisant un accès lecture et exécution au propriétaire,
2. lecture et écriture au groupe
3. un accès sans restriction aux autres (cas très rare).

$ chmod 567 toto


$ ls -l toto
218
rx rw rwx Jul 20 17:01 toto
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Modification des droits d’ accés aux fichiers : mode symbolique

Le deuxième mode:
le mode symbolique, permet une description absolue ou relative
des droits d’accès, comme suit :
chmod [qui]op[permission] fich/rep
combinaison de lettre
u (user), g (groupe), o permission :
(other=autre) ou a r (read=lecture),
(all=tous) pour ugo w (write=écriture),
x (exécution).

+ permet d’ajouter un droit d’accès,


- de supprimer un droit d’accès 219
= d’affecter un droit de manière absolue
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Modification des droits d’ accés aux fichiers : mode symbolique

$ chmod u -w file
Supprime le droit d’écriture au propriétaire.

$ chmod g+r file


Ajoute le droit de lecture pour le groupe.

$ chmod ug=x file


Accès uniquement en exécution pour le propriétaire et
le groupe, pas de modification pour les autres.
220
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

Modification des droits d’ accés aux fichiers : mode symbolique


Exemple :
chmod ugo+x monRep
Ajoute l'exécution (ouverture) du répertoire monRep à tous
(propriétaire, groupe, autres)

chmod go-wx monRep


Supprime l'autorisation d'écriture et l'exécution de
monRep au groupe et aux autres

chmod u=rw, go=r MonFichier 221


Fixe l'autorisation de lecture et d'écriture au propriétaire
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

Modification des droits d’ accés aux fichiers : mode octal

Exemple:

chmod 644 MonFichier


Exactement la même chose , mais en utilisant les valeurs
octales (Nota : 6 = 4+2 = lecture + écriture)

chmod u=rw, g=r, o= MonFichier


Fixe l'autorisation d'ouverture et de lecture au propriétaire,
uniquement la lecture au groupe et interdit tout accès aux
autres.

chmod 640 MonFichier


222

les valeurs octales


Chapitre 3 :Gestion des
Module : Système d ’ exploitation 1
utilisateurs
Modification des propriétaire et du groupe

▪ chown permet de changer le propriétaire d’un fichier, seul


l’administrateur peut modifier le propriétaire d’un fichier
ou d’un répertoire.
▪ chgrp permet le changement de groupe, à condition que
l’utilisateur fasse partie du nouveau groupe et soit
propriétaire de ces fichiers ou répertoires
Exemple
$ chgrp info f1
§ possible si j’appartiens au groupe info
$ chown soline f1
chown: f1: Operation not permitted 223
§ possible seulement pour root
$ sudo chown soline fichier1
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Modification des droits par défauts : umask

Quand vous créer un fichier, par exemple avec la commande touch,


ce fichier par défaut possède certains droits.

Ce sont 666 pour un fichier (-rw-rw-rw-) et 777 pour un répertoire


(-rwxrwxrwx), ce sont les droits maximum.

Vous pouvez faire en sorte de changer ces paramètres par défaut. La


commande umask est là pour ça, elle définit les permissions par
défaut d'un répertoire ou d'un fichier créé.

Syntaxe : umask x
Où x est un nombre exprimé sous forme octale qui déterminera les
permissions
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

Modification des droits par défauts : umask


Pour un fichier :

➢ Si vous tapez umask 022


➢ vous partez des droits maximum 666 et vous
retranchez 022
➢ on obtient donc 644
➢ par défaut les fichiers auront comme droit ( rw-r--
r-- ).
➢ Si vous tapez umask 244
➢ vous partez des droits maximum 666 et vous
retranchez 244
➢ on obtient donc 422
➢ par défaut les fichiers auront comme droit ( r---w--
w- ).
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Modification des droits par défauts : umask

Pour un répertoire :

➢ Si vous tapez umask 022


➢ vous partez des droits maximum 777 et vous retranchez
022
➢ on obtient donc 755
➢ par défaut ils auront comme droit (-rwxr-xr-x).

➢ Si vous tapez umask 244


➢ vous partez des droits maximum 777 et vous retranchez
244
➢ on obtient donc 533
➢ par défaut ils auront comme droit (-rwx-wx-wx).
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

A UTRES COMMANDE DE GESTION DES


UTILISATEURS ET DU SYSTÈME

Année
227
Universi
taire
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

Autres commandes de gestions des utilisateurs


 who (affiche la liste des utilisateurs connectés)
 whoami (indique le « login » de l’utilisateur)
 id (identité de l’utilisateur actif, UID, GID)
 finger (affiche des informations sur les utilisateurs)
 chsh : changer le shell ;

 id : affiche l’identifiant de l’utilisateur ;

 last : afficher la liste des connexions utilisateurs;


 chfn (change les informations de finger dans « /etc/passwd »: nom +
mot de passe (ou « x » si « /etc/shadow ») + UID + GID + commentaire
+ répertoire de base + shell)
 Passwd (changer de mot de passe)
 uptime (temps de connexion de l’utilisateur)
 su (switch user ou substitute user, ouvrir un shell avec un autre 228
compte utilisateur)
 Sudo : obtenir des droits étendus du root
Chapitre 3 :Gestion des
Module : Système d ’ exploitation 1
utilisateurs
Administration des utilisateurs
Création
Suppression
Modification
Consultation

Administration des utilisateurs

Il faut évidemment être


229
connecté en root
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Administration des utilisateurs
Principales commandes
Gestion des comptes utilisateurs :
adduser : ajouter un utilisateur ;
usermod : modifier un utilisateur.;
deluser : supprimer un utilisateur.
Users : liste des utilisateurs

Gestion des groupes :


addgroup : ajouter un groupe ;
groupmod : modifier la définition d’un groupe;
delgroup : supprimer un groupe ; 230

groups : afficher le groupe de l ’utilisateur.


Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Administration des utilisateurs

$ adduser login_utilisateur
Notons :
▪ la création du répertoire personnel dans
/home/login_utilisateur

▪ la gestion et l ’authentification des utilisateurs est


inscrit dans un seul fichier /etc/passwd

▪ la gestion des groupes est assurée par /etc/group

▪ les mots de passe cryptés sont placé s dans /etc/shadow


231
Chapitre 3 :Gestion des
Module : Système d ’ exploitation 1
utilisateurs
Administration des utilisateurs
Les options de adduser :
-c : saisie du commentaire.
-d : le répertoire personnel
-g : le groupe de base
-G : groupes supplémentaires pour utilisation avec la commande newgrp
-m : recopie du /etc/skel dans le répertoire personnel.
-s : le shell
-u : choix d'un UID spécifique > 99
-o : l'UID n'est pas unique
-r : UID privilégié système <= 99
-e : date d'expiration du login
-f : délai avant verrouillage si mot de passe non changé
-p : mot de passe déjà crypté avec crypt

Exemples :
1. useradd -m user
2. useradd -c "login de test" -d /home/logtest -s /bin/bash -g users -u 123
Chapitre 3 :Gestion des
Module : Système d ’ exploitation 1
utilisateurs
Administration des utilisateurs

La commande de modification d’un compte


utilisateur s’applique en fonction des options
désirées. ajouter utilisateur
dans un groupe
Exemples : (existant bien sûr !).
$ usermod -G nom_groupe login_utilisateur
bloquer le compte de
$ usermod -L login_utilisateur l’utilisateur

$ usermod -e MM/JJ/AA login_utilisateur


233
changer la date
d’expiration du compte
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

Administration des utilisateurs


La commande usermod modifie les paramètres d’un compte et permet aussi de le
verrouiller. Les options sont:

[-c commentaire] [-d rép_perso [ -m]]

234
[-e date_expiration] [-f inactivité]
[-g groupe_initial] [-G groupe[,...]]
[-l nom_connexion] [-p mot_de_passe]
[-s shell] [-u uid [ -o]] [-L|-U] login

Remarque :
usermod ne permet pas de modifier le nom d'un utilisateur qui est actuellement connecté. (
s’assurer avant d’exécuter cette commande que l'utilisateur nommé n'est pas en train
d'exécuter un quelconque programme ).
il faut modifier le nom du propriétaire de tous les fichiers crontab ainsi le nom du propriétaire
de n'importe quel travail at manuellement

Pour changer les informations personnels de l’utilistaeur il faut utiliser la commande :


chfn [-f full_name ] [-r room_no ] [-w work_ph ] [-h home_ph ] [-o other ]
[ user ]
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Administration des utilisateurs

Supprimer le compte d’un utilisateur comporte


l’obligation que celui-ci ne soit pas connecté :

userdel [ - r] login_utilisateur

▪ L’option -r supprime aussi le répertoire


personnel (non effacé par dé faut).

235
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Administration des utilisateurs

$ passwd login_utilisateur

À noter :
▪ l’option -d pour supprimer le mot de passe
▪ l’option – l pour le verrouiller
▪ l’option -u pour le déverrouiller
236
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

Administration des utilisateurs

passwd permet de changer le mot de passe, et dispose de plusieurs


options.
passwd [-k] [-l] [-u [-f]] [-d] [-S] [ nom_utilisateur ]

237
-f : Force le changement de mot de passe à la prochaine connexion
-d : Désactiver un mot de passe en supprimant la saisie du mot de
passe pour un compte donné. Disponible uniquement pour root.
-k : Indique que la mise à jour ne devrait être effectuée que pour
les mots de passe expirés; un utilisateur conserve son mot de
passe non expirés.
-l : Verrouille le compte spécifié, elle n'est disponible que pour root.
Le verrouillage est effectué en rendant le mot de passe crypté
invalide (en le préfixant par un !).
-u : L'inverse de l'option précédente - il déverrouillera le mot de
passe du compte. disponible uniquement pour root.
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs

Administration des
Changement régulié du mot de passe
Cette fonctionnalité vous permet de gérer le nombre maximum de
jours pendant lesquels un utilisateur peut utiliser le même mot de
passe.

238
La commande passwd a quatre options pour gérer les expirations :
-n min : (rarement utilisée) est appliquée pour définir le nombre
minimum de jours requis pour qu’un utilisateur change son mot de
passe.
-x max : Définit le nombre maximal de jours pendant lesquels
l'utilisateur peut utiliser son mot de passe sans le changer.
-c garde : pour envoyer un avertissement à l'utilisateur lorsque son
mot de passe est sur le point d’expirer. L'argument de cette option
spécifie combien de jours l'utilisateur sera avant que son mot de
passe expire.
– i inact : Cette option permet la gestion de l’expiration du mot de
Chapitre 3 :Gestion des
Module : Système d’exploitation 1
utilisateurs
Administration des groupes
Gestion des groupes
▪ Pour créer un nouveau groupe :
$ addgroup nom_du_groupe

▪ Pour lister tous les groupes d’un utilisateur :


$ groups nom_du_Utilisateur

▪ Pour supprimer un groupe :


$ delgroup nom_du_groupe

▪ Pour ajouter un utilisateur à un groupe :


$ usermod user nom_du_groupe
(ou groupmod avec l’option -n ).

239
• Objectifs : Gérer les services système avec systemd, créer des
services personnalisés.
• Contenu :
• Gestion des services : systemctl start, stop, restart, enable, disable
• Création de services : fichiers de configuration .service
• Activités :
• Gestion de services existants.
• Création d'un service personnalisé.
77
1. PROCESSUS DE DÉMARAGE

78
2. LE BIOS ET L’UEFI

79
2. LE BIOS ET L’UEFI

80
2. LE BIOS ET L’UEFI

81
3. LE GRUB GRAND UNIFIED BOOTLOADER

82
3 . LE GRUB GRAND UNIFIED BOOTLOADER

83
3.1. LE GRUB GRAND UNIFIED BOOTLOADER

84
3.2. INITRAMFS

85
. INITRAMFS

86
.3. MODIFIER DES PARAMÈTRES DE DÉMARRAGE

87
4. SYSTEMD

88
. SYSTEMD

89
4. SYSTEMD

90
4. SYSTEMD

91
4. SYSTEMD

92
4.1. LES UNITS SYSTEMD

93
4.1. LES UNITS SYSTEMD

94
4.2. GESTION DES SERVICES

95
4.2. GESTION DES SERVICES

 Démarrage et arrêt des services :  Redémarrage et rechargement des


 systemctl start <service> services :
 systemctl stop <service>  systemctl restart <service>
 systemctl reload <service>
 Activation et désactivation des
services :  Vérification de l'état des services :
 systemctl enable <service>  systemctl status <service>

 systemctl disable <service>  Journalisation :


 journalctl -u <service>

96
4.2. GESTION DES SERVICES

97
4.3. GESTION DES CIBLES (TARGET)

98
4.3. GESTION DES CIBLES (TARGET)

99
4.4. LES FICHIERS DE CONFIGURATION SYSTEMD

100
4.5. CREER UN SERVICE SYSTEMD

101
4.5. EXERCICE

102
4.5. CREER UN SERVICE SYSTEMD

103
4.5. CREER UN SERVICE SYSTEMD

❑ Saisir le texte ci-dessus dans le fichier my-script avec l’éditeur vi ou bien l’éditeur
nano

104
4.5. CREER UN SERVICE SYSTEMD

105
4.5. CREER UN SERVICE SYSTEMD

❑ Saisir le texte ci-dessus dans le fichier


my-script avec l’éditeur vi ou bien
l’éditeur nano

106
4.5. CREER UN SERVICE SYSTEMD

107
4.5. CREER UN SERVICE SYSTEMD

108
4.5. CREER UN SERVICE SYSTEMD

109
4.5. CREER UN SERVICE SYSTEMD

110
4.5. CREER UN SERVICE SYSTEMD

111
4.5. CREER UN SERVICE SYSTEMD

112
4.5. CREER UN SERVICE SYSTEMD

113
• Objectifs : Automatiser les tâches répétitives avec cron.
• Contenu :
• Syntaxe de cron : crontab -e, format des tâches
• Planification de scripts : tâches de maintenance, sauvegardes
• Activités :
• Création de tâches cron pour divers scénarios.
• Évaluation : Exercice pratique sur la planification de tâches.

114
1. INTRODUCTION

 Que répondre à la question « Qu’est-ce qu’un cron job ? » ? Premièrement : un


« daemon ». Deuxièmement : un dieu. Tout du moins, si l’on s’en tient uniquement à
la connotation du nom de cette fonction. À proprement parler, le terme « Cron » est
une abréviation de « command run on notice », c’est-à-dire une « commande
exécutée à date ». Mais l’abréviation peut tout autant évoquer Chronos, le dieu du
temps des Grecs anciens. Sur les systèmes d’exploitation Linux ou macOS, cette
commande s’appelle « Cron-Daemon » (parfois aussi Cron-system).
 Le jeu de mot sur le dieu grec du temps est d’ailleurs un excellent moyen
mnémotechnique pour se souvenir de l’objet et de la fonction d’une tâche cron.
Le système cron s’exécute en arrière-plan d’un système d’exploitation et peut
effectuer automatiquement des tâches (jobs) planifiées à des moments définis. Si l’on
associe le nom de système cron et le principe de tâches planifiées, on obtient donc le
terme de cron jobs, ou tâches cron.
115
2. QU’EST-CE QU’UN CRON JOB ?

 Une tâche cron est une tâche exécutée automatiquement dans un système
d’exploitation. Afin d’exécuter ces tâches, le système fournit régulièrement des
commandes. Il peut parfaitement s’agir d’une simple tâche, mais, en règle générale,
on utilise plusieurs tâches complexes, donc plusieurs cron jobs. Ces tâches ont le
grand avantage de permettre un degré de personnalisation élevé.
 Chaque tâche cron est composée de trois éléments :
• Un script à exécuter ;
• Une commande qui exécute régulièrement le script ;
• Une action ou le log du script.

116
2. QU’EST-CE QU’UN CRON JOB ?

 Un exemple concret d’utilisation de cette fonction ? Les tâches régulières d’un serveur. Ainsi,
on peut, entre autres, lancer automatiquement l’envoi d’une newsletter, la collecte de
statistiques ou le nettoyage de banques de données avec des tâches cron.
 Tous les systèmes d’exploitation disposant d’un système cron, et donc d’un daemon cron,
peuvent exécuter des cron jobs. C’est le cas de tous les systèmes Unix et BSD (Berkeley
Software Distribution) comme macOS ou Linux.
 Les systèmes d’exploitation peuvent exécuter des tâches selon la planification définie au
préalable, exactement comme le prévoit leur dénomination « Command run on notice »
(commande exécutée à date). Les tâches de routine peuvent ainsi se lancer de manière
parfaitement automatisée. Outre la condition d’utiliser un système d’exploitation avec un
daemon cron, il faut respecter d’autres prérequis pour pouvoir mettre en place des cron jobs :
• Un serveur dédié ;
• Un Secure Shell (SSH) ou, pour l’accès, un client Telnet ;
• Un client FTP pour transférer des fichiers et télécharger les fichiers cron.
117
3. QUELLES TÂCHES PEUT-ON EXÉCUTER AVEC DES CRON JOBS ?

 Les tâches planifiées sont le plus souvent utilisées pour sauvegarder des données, et
de loin. Par exemple, si vous souhaitez mettre en place une sauvegarde avec tar pour
archiver vos données, les tâches cron seront parfaitement adaptées. Généralement, on
les utilise aussi pour nettoyer des bases de données et exploiter les statistiques de
visite des sites Web.
 Les tâches cron peuvent être associées à un système de gestion de contenus pour
envoyer automatiquement une newsletter ou surveiller les stocks des boutiques en
ligne. Ces tâches permettent de contrôler le remplissage des serveurs et peuvent
adapter automatiquement de nouvelles informations dans la description des
produits, comme la moyenne des évaluations client.

118
3. QUELLES TÂCHES PEUT-ON EXÉCUTER AVEC DES CRON JOBS ?

 Aperçu des tâches les plus importantes :


• Nettoyage de banques de données : les entrées obsolètes sont supprimées, par exemple des commentaires
datés ou des identifiants de connexion ayant expiré.
• Création de statistiques : les tâches cron peuvent mettre à jour quotidiennement le nombre de visites sur une
page, par exemple.
• Actualisation du flux RSS : une tâche cron peut générer régulièrement un nouveau fichier XML.
• Planification et publication de nouveaux contenus.
• Envoi d’une newsletter : il est possible d’envoyer des emails à un instant précis.
• Création de factures : à l’aide d’un cron job, on peut créer et envoyer automatiquement des factures
(regroupées et à intervalles spécifiques).
• Sauvegarde d’une base de données : la plupart du temps, pour des bases de données de petite taille
n’excédant pas 20 MO.
• Apprentissage automatique : les tâches cron peuvent alimenter une intelligence artificielle à un moment
précis avec de nouvelles entrées.
• Mises à jour : on peut planifier les mises à jour logicielles à un moment précis.
119
4. QUELLE EST LA STRUCTURE STANDARD D’UNE COMMANDE CRON ?

 Les possibilités de personnalisation sont le grand avantage des cron jobs. Pour adapter
une tâche planifiée cron, l’utilisateur dispose d’une base de trois variables qui
doivent être systématiquement renseignées :
1. PATH : affiche le chemin d’accès à la commande ou au script ;
2. SHELL : indique l’interpréteur de commandes à utiliser pour exécuter le script ;
3. MAILTO : renseigne l’utilisateur à qui il faut envoyer les résultats de la tâche cron ; en règle générale,
l’abonné.

 Avec ces trois variables fixes, auxquelles peuvent venir s’ajouter d’autres, les
utilisateurs peuvent définir eux-mêmes leurs propres cron jobs. Généralement, on
utilise des scripts SHELL, PHP et PERP pour ces commandes.

120
5. COMMENT FONCTIONNE UN CRON JOB ?

 Pour qu’une tâche cron puisse exécuter ce qu’on attend d’elle, il faut tout d’abord fournir une
commande. Ensuite, le daemon cron s’exécute en arrière-plan et effectue des tâches non
interactives. Sous Windows, c’est ce qu’on appelle en général un « service ».
 Les tâches cron sont, par principe, au repos, et attendent de recevoir une commande : ou
bien directement du système d’exploitation, ou bien d’un autre ordinateur en réseau. La
commande est transmise par le biais d’un fichier cron (un simple fichier texte), qui planifie la
tâche pour un instant donné.
 Les tâches cron sont définies et configurées dans un tableau appelé crontab. Ce tableau liste
les temps à respecter et la suite de commandes à exécuter.
 Le fichier système standard Crontab « crontab » est placé dans le répertoire /etc/cron.*/.
121
6. EXEMPLES DE CRON JOBS SIMPLES

 Avec le logiciel crontab, on peut éditer des crontabs. Voici la commande correspondante :
[root@localhost ~]# crontab -e

 Lister les tâches cron de l'utilisateur courant.


[root@localhost ~]# crontab -l

 Supprimer le fichier crontab de l'utilisateur courant.


[root@localhost ~]# crontab -r

 Gérer les tâches cron d'un autre utilisateur (nécessite des privilèges).
[root@localhost ~]# crontab -u <user>
122
6. EXEMPLES DE CRON JOBS SIMPLES

 La syntaxe est relativement claire. Ainsi, chaque cron job respecte le format suivant :

* * * * * Commande à exécuter
- - - - -
| | | | |
| | | | +----- Jour de la semaine (0 - 7) (Dimanche correspond à 0 et 7)
| | | +------- Mois (1 - 12)
| | +--------- Jour (1 - 31)
| +----------- Heure (0 - 23)
+------------- Minute (0 - 59)

 Structure d'une ligne de crontab : minute, heure, jour du mois, mois, jour de la semaine,  Caractères spéciaux :
commande.
• * : Tous les valeurs possibles.
 0 5 * * * /path/to/command : Exécuter une commande tous les jours à 5h00.
• , : Séparation des valeurs.
 */15 * * * * /path/to/command : Exécuter une commande toutes les 15 minutes.
• - : Intervalle de valeurs.
 0 0 1 * * /path/to/command : Exécuter une commande le premier jour de chaque mois à minuit.
 / : Incrément des valeurs • / : Incrément des valeurs.
123
6. EXEMPLES DE CRON JOBS SIMPLES
 Exemple 1 : cron job pour exécuter une sauvegarde : Pour exécuter une sauvegarde tous
les matins à 6 heures, rédigez la commande suivante : [root@localhost ~]# 0 6 * * * /usr/bin/[Link]

 Exemple 2 : jouer un son toutes les 30 minutes : On peut aussi utiliser les tâches cron
pour jouer un son à intervalles réguliers : [root@localhost ~]# */30 * * * * /usr/bin/play_sound.sh

 Exemple 3 : email de rappel : Le cron job suivant envoie un email de rappel à 8 heures et
18 heures :
[root@localhost ~]# 0 8,18 * * * /usr/bin/send_reminder_mail.sh

 Exemple 4 : Merci, Admin On peut aussi utiliser une tâche cron pour ne jamais oublier le
jour de présence de l’administrateur système :
[root@localhost ~]# 0 0 30 07 * (echo "Merci à tous les admins système" | mail -s "Un admin ne dort pas, il root." user@[Link])

124
6. EXEMPLES DE CRON JOBS SIMPLES
 Exemple 1 : cron job pour exécuter une sauvegarde : Pour exécuter une sauvegarde tous
les matins à 6 heures, rédigez la commande suivante : [root@localhost ~]# 0 6 * * * /usr/bin/[Link]

 Exemple 2 : jouer un son toutes les 30 minutes : On peut aussi utiliser les tâches cron
pour jouer un son à intervalles réguliers : [root@localhost ~]# */30 * * * * /usr/bin/play_sound.sh

 Exemple 3 : email de rappel : Le cron job suivant envoie un email de rappel à 8 heures et
18 heures :
[root@localhost ~]# 0 8,18 * * * /usr/bin/send_reminder_mail.sh

 Exemple 4 : Merci, Admin On peut aussi utiliser une tâche cron pour ne jamais oublier le
jour de présence de l’administrateur système :
[root@localhost ~]# 0 0 30 07 * (echo "Merci à tous les admins système" | mail -s "Un admin ne dort pas, il root." user@[Link])

125
CONFIGURATION RÉSEAU AVANCÉE

• Objectifs : Configurer le réseau, sécuriser et diagnostiquer des problèmes


réseau.
• Contenu :
• Configuration réseau : netplan configurations YAML
• Sécurité réseau : ufw (Uncomplicated Firewall)
• Outils de diagnostic : ping, traceroute, netstat
• Activités :
• Configuration réseau pour divers scénarios.
• Configuration et gestion du pare-feu.
• Diagnostic et résolution de problèmes réseau.

126
CONFIGURATION RÉSEAU AVANCÉE
Introduction

Qu’est que ça veut dire Mettre une machine en réseau?

Mettre une machine en réseau: c’est donner à une machine la


configuration des paramètres IP, notamment en lui affectant
une adresse IP et un masque de sous-réseau. On peut aussi
configurer l’adresse de la passerelle par défaut et des serveurs de
noms DNS
CONFIGURATION RÉSEAU AVANCÉE
INTRODUCTION

Deux manières de le faire:

Statique

Dynamique
CONFIGURATION RÉSEAU AVANCÉE

 Qu'est-ce que Netplan ?


 Netplan est un outil de gestion de la configuration réseau pour les distributions
Linux basées sur Debian, comme Ubuntu.
 Il permet de configurer les interfaces réseau en utilisant des fichiers YAML,
simplifiant ainsi la gestion des configurations complexes.
 Pourquoi l'utiliser ?
 Simplicité : Utilisation de fichiers YAML pour définir les configurations réseau.
 Uniformité : Centralisation de la configuration réseau dans un seul fichier.
 Flexibilité : Prise en charge de plusieurs backends de configuration réseau, tels que
NetworkManager et networkd.
 Automatisation : Facilite l'automatisation des configurations réseau pour des
environnements à grande échelle.
129
CONFIGURATION RÉSEAU AVANCÉE
 YAML : Qu'est-ce que c'est ?

 YAML (YAML Ain't Markup Language) est un format de sérialisation de données lisible par
l'homme.
 Utilisé pour écrire des configurations de manière claire et structurée.
 Couramment utilisé dans les outils de gestion de la configuration et d'automatisation (comme
Netplan, Ansible, Docker Compose).
 Avantages de YAML :

 Lisibilité : Format simple et facile à lire, même pour les non-techniciens.


 Flexibilité : Prise en charge de diverses structures de données (listes, dictionnaires).
 Compatibilité : Bien supporté par de nombreux outils et langages de programmation.
 Structure de base d'un fichier YAML :

 Indentation : Utilise des espaces pour indenter les niveaux de hiérarchie (pas de tabulations).
 Clés et valeurs : Utilisation de paires clé-valeur.
 Listes : Définies par des tirets (-).
130
CONFIGURATION RÉSEAU AVANCÉE

 network : Racine de la configuration réseau.


 version : Version de Netplan (généralement 2).
 ethernets : Définition des interfaces Ethernet.
 eth0 : Nom de l'interface réseau.
 dhcp4 : Utilisation ou non de DHCP (ici, non).
 addresses : Liste des adresses IP statiques.
 gateway4 : Adresse de la passerelle.
 nameservers : Serveurs DNS utilisés.

 Comment écrire une configuration YAML :


 Utiliser des espaces pour indenter.
 Séparer les clés et les valeurs par un deux-points suivi d'un espace.
 Utiliser des listes pour définir plusieurs valeurs pour une clé 131
CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau

Uncomplicated Firewall UFW

UFW, abréviation de Uncomplicated Firewall , a été créé en 2006 par Canonical Ltd. Il a
été développé pour faciliter la configuration des pare-feu sur les systèmes Linux en
simplifiant la sécurisation des systèmes en offrant une interface convaincante pour
contrôler le trafic réseau.

UFW permet aux utilisateurs de mettre en place desrègles de pare-feu rapidement et


efficacement, renforçant ainsi la sécurité de leurs systèmes contreles menaces réseau.
CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau


 UFW(Uncomplicat ed Firewall ) signifiePare-feu simple, c’est un outil de configuration
simplifié en ligne de commande pour le système Linux.

 Ce pare-feu vise à :

 Contrôler le trafic réseau entrant et sortant en définissant des règlesde pare-feu


Simplifier la configuration et la gestion

 Renforcer la sécurité du systèmes

 Fournir une interface conviviale

 UFW joue un rôle important dans la sécurisation des systèmes Linux en offrant une
solution simple adaptable et efficace pour la gestion des pare-feu.
CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau


 Le mode de fonctionnement de UFW repose sur la définition et l’application de règlesde pare-feu pour contrôler le
trafic réseau. Voici comment cela se déroule :

 Définition des règles: L’utilisateur spécifie les règles de pare-feu à l’aide de la syntaxe de UFW. Ces règles
déterminent quels types de trafics sont autorisés ou bloqués, ainsi que les conditions spécifiques telles que les
adresses, les ports et les protocoles .

 Activation de UFW: une fois que les règles dont définies, l’utilisateur active UFW pour qu’il commence à
appliquer ces règles.

 Traitement du trafic : UFW analyse le trafic réseau entrant et sortant à partir des règles définies. IL autorise et
bloque les paquets en fonction de ces règles

 Journalisation des événements: UFW enregistre des informations détaillées surle trafics réseau et les décisions
prises par le pare-feu.

 UFW fonctionne en appliquant les règles de pare-feu définies par l’utilisateur pour contrôler le trafic réseau et
renforcer la sécurité du système Linux
CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau


CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau


 Pour pouvoir installer et configurer il est utile de connaitre les bases sur le système d’exploitation, comprendre les
règles de pare-feu, avoir une connaissance de base des commandes Linux pour naviguer dans le terminal.

 UFW offre des commandes simples pour définir les règles, autoriser ou bloquer de sports, des protocoles, et des
adresses IP spé[Link] que les commandes peuvent varier légèrement en fonction de la distribution spécifique
que vous utilisez.

 UFW est préinstallé sur la plupart des distributions Linux. Avant de procéder a l’installation il est important de
vérifier si ufw est déjà présent sur votre système en utilisant la commande : Sudo ufw statuts

 Cependant, s’il n’est pas installé sur votre système, vous pouvez l’installer
à l’aide de la commande suivante : Sudo apt-get install ufw

 Pour activer le pare-feu : Sudo ufw enable

 Pour désactiver le pare-feu : Sudo ufw enable


CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau


 la configuration de UFW se fait généralement en utilisant des règles définies par l’utilisateur pour contrôler le
trafic réseau entrant et sortant sur un système Linux. Voici quelques étapes générale pour configurer UFW :

 Etape 1: Mise en place des politiques par défaut

 Si vous commencez tout juste à utiliser votre pare-feu, les premières règles à définir sont vos politiques par
défaut cela signifie que ces politiques sont appliquées automatiquement.

 Ces règles contrôlent la manière de traiter le trafic qui ne correspond pas explicitement à d’autres règles. Par
défaut, Ufw est configuré pour refuser toutes les connexions entrantes et autoriser toutes les connexions
sortantes.

 Sudo ufw default allow outgoing : Commande définit la politique par défaut pour le trafic sortant

 Sudo ufw default deny incoming : Commande définit la politique pardéfaut pour le trafic entrant
CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau


 Etape 2: Autoriser des connexions
 Si nous activons notre pare-feu UFW maintenant, il refuserait toutes les connexions entrantes. Cela
signifie que nous devrons créer des règles qui autorisent les connexions entrantes ( comme les
connexions SSH ou http )
 Pour créer et ajouter des règles d’autorisation :
 Pour autoriser une connexion entrante : On utlise la commande ufw allow pour créer une règle
d’autorisation, en spécifiant le numéro du port avec le protocole :
Sudo ufw allow Port[/Protocol]
 Par exemple pour autoriser une connexion vers le port 22, en spécifant le protocole TCP:
Sudo ufw allow 22/tcp
 Pour autoriser une connexion sortant : Pour autoriser une connexion sortante, on ajoute Out à la
commande allow.
Sudo ufw allow out Port
 Par exemple pour autoriser une connexion sortant vers le port 443: Sudo ufw allow out 443
CONFIGURATION RÉSEAU AVANCÉE


II. Les outils de l'administrateur
Pour créer et ajouter une règle d’interdiction ou rejet :
réseau
 C’est le même principe que précédemment, simplement, on utilise la commande ufw deny
 Par exemple pour interdire les connexions entrantes vers le port SSh, en spécifiant le protocole TCP

Sudo ufw deny ssh/tcp


 Lorsque vous travaillez avec UFW, vous pouvez également spécifier des adresses IP. Par exemple, si
vous souhaitez autoriser les connexions à partir d’une adresse IP [Link] alors :
Sudo ufw allow from [Link]
 Connexion à une interface réseau spécifique :
 Si vous souhaitez créer une règle de pare-feu qui s’applique uniquement à une interface réseau
spécifier :
Sudo ufw allow nom de l’interface
CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau


 Etape 3: Journaux
 Les journaux du pare-feu sont essentiels pour identifier les attaques, remarquer une activité
inhabituelles sur votre réseau . Vous pouvez activez la journalisation avec la commande : Sudo ufw
logging on
 Avantage :
 Simplicité d’utilisation :UFW simplifie la gestion des règles de pare-feu en masquant la complexité
des technologies
 Configuration rapide :La configuration de règles de pare-feu avec UFW est rapide et efficace
 Rapidité : La configuration de règles de pare-feu avec UFW est rapide et efficace
 Inconvénients :
 Interface Graphique Limitée : Bien qu’il propose une interface utlisateur simplifée enligne de
commande, UFW ne dispose pas d’une interface graphique étendue
 Personnalisation Limitée des règles : UFW a été conçu pour simplifer le processus, mais cela peut
entrainer une limitaton dans la personnalisation des règles
CONFIGURATION RÉSEAU AVANCÉE

I. Configuration statique

A- Outil ifconfig

L'utilitaire ifconfig peut être utilisé pour assigner des


adresses IP à une interface. La commande prend la forme suivante
:

# ifconfig <dev> <adresse_ip> [netmask <mask>]


[broadcast <addr>]
CONFIGURATION RÉSEAU AVANCÉE
I. Configuration statique

A- Outil ifconfig

Exemples:

# ifconfig eth0 [Link]

# ifconfig eth0 [Link] netmask [Link]

# ifconfig eth0 [Link] netmask [Link]


broadcast [Link]
CONFIGURATION RÉSEAU AVANCÉE
I. Configuration statique

A- Outil IFCONFIG

Activation de l’interface reseau


# ifconfig <dev> up
Activation de l’interface réseau eth0
# ifconfig eth0 up
Arrêt de l’interface reseau
# ifconfig <dev> down
Arrêt de l’interface reseau eth0
# ifconfig eth0 down
CONFIGURATION RÉSEAU AVANCÉE
I. Configuration statique
A- Outil IFCONFIG

Affichage des informations de l’interface réseau


# ifconfig <dev>
Affichage des informations de l’interface réseau eth0
# ifconfig eth0
eth0 Lien encap:Ethernet HWaddr 00:XX:XX:XX:XX:XX
inet adr:[Link] Bcast:[Link]
Masque:[Link]
adr inet6: fe80::21b:fcff:fec9:f81d/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16522 errors:0 dropped:0 overruns:0 frame:0
TX packets:13631 errors:0 dropped:0 overruns:0 carrier:2
collisions:0 lg file transmission:1000
RX bytes:17732221 (16.9 Mb) TX bytes:1648879 (1.5 Mb)
CONFIGURATION RÉSEAU AVANCÉE

I. Configuration statique

A- Outil IFCONFIG

Affichage des informations de toutes les interfaces réseau actives

# ifconfig

Affichage des informations de toutes les interfaces réseau actives et non


actives
# ifconfig -a
CONFIGURATION RÉSEAU AVANCÉE

I. Configuration statique

A- Outil ip

L'utilitaire ip peut être utilisé pour assigner des adresses IP à


une interface. La commande prend la forme suivante :

ip addr [ add | del ] <address> dev <ifname>

Exemples:

ip address add [Link]/24 dev eth0


CONFIGURATION RÉSEAU AVANCÉE

I. Configuration statique

A- Outil ip

Affichage des informations de l’interface réseau

Exemple: ip addr show dev


ip a show eth0
enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP qlen 1000
link/ether 08:00:27:b2:73:09 brd ff:ff:ff:ff:ff:ff
inet [Link]/24 brd [Link] scope global dynamic enp0s3
valid_lft 604708sec preferred_lft 604708sec
CONFIGURATION RÉSEAU AVANCÉE
II. Les outils de l'administrateur réseau

La commande arp

La commande arp permet de visualiser ou modifier la table du cache arp de


l'interface. Cette table peut être statique et (ou) dynamique. Elle donne la
correspondance entre une adresse IP et une adresse MAC (Ethernet).

Voici un exemple de cache ARP obtenu avec la commande arp -va :


? ([Link]) at 00:40:33:2D:B5:DD [ether] on eth0
>Entries: 1 Skipped: 0 Found: 1
CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau

La commande arp

Voici les principales options de la commande arp :

arp -s (ajouter une entrée statique), exemple : arp -s [Link]


00:40:33:2D:B5:DD
arp -d (supprimer une entrée), exemple : arp -d [Link]
CONFIGURATION RÉSEAU AVANCÉE
II. Les outils de l'administrateur réseau

La commande netstat

La commande netstat, permet de tester la configuration du réseau, visualiser


l'état des connexions, établir des statistiques, notamment pour surveiller les
serveurs.
CONFIGURATION RÉSEAU AVANCÉE
II. Les outils de l'administrateur réseau

La commande netstat
Sans argument, donne l'état des connexions,
-a afficher toutes les informations sur l'état des connexions,
-i affichage des statistiques,
-c rafraîchissement périodique de l'état du réseau,
-n affichage des informations en mode numérique sur l'état des connexions,
-r affichage des tables de routage,
-t informations sur les sockets TCP
-u informations sur les sockets UDP.
CONFIGURATION RÉSEAU AVANCÉE

La commande netstat

Etat des connexions réseau avec netstat, dont voici un exemple :


Proto Recv-Q Send-Q Local Address Foreign Address State
Tcp 0 126 [Link].n:telnet [Link]:1037 ESTABLISHED
Udp 0 0 [Link]:netbios-dgm *:*
Udp 0 0 [Link]:netbios-ns *:*

Affichage et état des tables de routage avec netstat : netstat -nr ou netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
[Link] * [Link] U 1500 0 0 eth0
[Link] * [Link] U 3584 0 0 lo
CONFIGURATION RÉSEAU AVANCÉE
II. Les outils de l'administrateur réseau

La commande netstat

Affichage de statistiques avec netstat -i


Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags
Lo 3584 0 89 0 0 0 89 0 0 0 BLRU
Eth0 1500 0 215 0 0 0 210 0 0 0 BRU
CONFIGURATION RÉSEAU AVANCÉE

II. Les outils de l'administrateur réseau

La commande traceroute

La commande traceroute permet d'afficher le chemin parcouru par un paquet


pour arriver à destination. Cette commande est importante, car elle permet
d'équilibrer la charge d'un réseau, en optimisant les routes.
CONFIGURATION RÉSEAU AVANCÉE
II. Les outils de l'administrateur réseau

La commande traceroute

Voici le résultat de la commande traceroute [Link] :


traceroute to [Link] ([Link]), 30 hops max, 40 byte packets
1 [Link] ([Link]) 1.363 ms 1.259 ms 1.270 ms
2 [Link] ([Link]) 25.078 ms 25.120 ms 25.085 ms
3 [Link] ([Link]) 88.915 ms 101.191 ms 88.571 ms
4 [Link] ([Link]) 124.796 ms[]
5 [Link] ([Link]) 100.180 ms[]
6 [Link] ([Link]) 98.471 ms []
7 [Link] ([Link]) 137.196 ms[]
8 [Link] ([Link]) 101.129 ms[]
9 [Link] ([Link]) 105.110 ms []
10 [Link] ([Link]) 175.933 ms 152.779 ms 128.618 ms[]
11 [Link] ([Link]) 211.387 ms 162.559 ms 151.385 ms[]
CONFIGURATION RÉSEAU AVANCÉE
II. Les outils de l'administrateur réseau

La commande dig

La commande dig remplace ce qui était la commande nslookup. Cette


commande sert à diagnostiquer des dysfonctionnements dans la résolution de
noms (Service DNS).
CONFIGURATION RÉSEAU AVANCÉE
II. Les outils de l'administrateur réseau

La commande route

La commande route définit le chemin emprunté par les paquets entre son point
de départ et son point d'arrivée.

Exemple de table de routage :


Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
[Link] * [Link] U 0 0 2 eth0
[Link] * [Link] U 0 0 2 lo
default [Link] [Link] UG 0 0 10 eth0
CONFIGURATION RÉSEAU AVANCÉE
II. Les outils de l'administrateur réseau
La commande route

Ajout d'une route :


route add [net | host] addr [gw passerelle] [métric coût] [
netmask masque] [dev interface]
Exemple :

route add -net [Link] eth0

Suppression d’une route:

route del -net [Link]


• Objectifs : Installer et configurer Apache pour des environnements
de développement et production.
• Contenu :
• Installation : sudo apt install apache2
• Configuration avancée : fichiers [Link], sites-available
• Intégration : avec bases de données MySQL/MariaDB

• Activités :
• Installation et configuration d'Apache.
• Configuration pour différents environnements.
159
 Le devops — ou DevOps — est un mouvement en ingénierie informatique et une pratique
technique visant à l'unification du développement logiciel et de l'administration des
infrastructures informatiques, notamment l'administration système.
 DevOps repose sur une culture de la collaboration entre développeurs et équipes
opérationnelles, qui partagent les responsabilités et combinent le travail. Il améliore l'efficacité
des équipes et permet d'accélérer les transferts de tâches et la création de code conçu pour un
environnement d'exécution spécifique.

160
01 – Présentation de Serveur HTTP Apache
Introduction

• La puissance d'Internet est le transfert libre et ouvert d'informations. Au


début de l’Internet, l'accès aux fichiers de données sur des systèmes
distants nécessitait d'avoir un compte de connexion d'utilisateur ainsi que
l'utilisation de programmes de transfert de fichiers compliqués. Pour
faciliter le partage ouvert et rapide des données, une nouvelle méthode de
partage de fichiers devait être développée.
• Hypertext Transfer Protocol (HTTP) a été développé pour faciliter le
transfert anonyme de données entre les systèmes.
• Pour les données publiques qui n'ont pas besoin d'être protégées, HTTP
permet à un client de se connecter à un serveur de manière anonyme, de
récupérer des fichiers de données, puis de se déconnecter.
• Ce processus a grandement contribué à accélérer la récupération des
données des systèmes distants connectés à Internet, et c'est ce qui a fait
d'Internet un lieu populaire pour le partage de données.
01 – Présentation de Serveur HTTP Apache
Un serveur WEB
Serveurs Web
• Un serveur web est un logiciel permettant à des clients d'accéder
à des pages web, c'est-à-dire en réalité des fichiers au format Google
ListeSpeed
Servers
2%
HTML à partir d'un navigateur installé sur leur ordinateur distant. IIS 2%
12%
• Un serveur web est donc un « simple » logiciel capable
d'interpréter les requêtes HTTP arrivant sur le port associé au
Apache
protocole HTTP (par défaut le port 80 et le port 443 pour un 42.5
HTTP sécurisé), et de fournir une réponse avec ce même 43%

protocole.
• Les principaux serveur web dans le marché sont:
Nginx
✓ Apache 41%

✓ Nginx
✓ IIS
✓ ListeSpeed Apache Nginx IIS ListeSpeed Google Servers

✓ Google servers
01 – Présentation de Serveur HTTP Apache
Apache

• Apache est un logiciel libre de serveur web gratuit et open-


source qui alimente environ 46% des sites web à travers le
monde. Le nom officiel est Serveur Apache HTTP et il est
maintenu et développé par Apache Software Foundation.
• Il permet aux propriétaires de sites web de servir du
contenu sur le web – d’où le nom « serveur web » -. C’est
l’un des serveurs web les plus anciens et les plus fiables
avec une première version sortie il y a plus de 20 ans, en
1995.
• Le serveur apache regroupe les applications suivantes:
❑ le serveur web Apache
❑ le serveur de bases de données MySQL/MariaDB
❑ le serveur d'application PHP
❑ l'outil phpMyAdmin permettant de gérer des bases
MySQL
02 – Fonctions du Serveur HTTP Apache
Session HTTP

• Les développeurs qui ont créé HTTP ont décidé d'utiliser un protocole
client/serveur basé sur du texte pour fournir un moyen simple de
transférer des données entre le serveur et les clients.
• Étant donné que HTTP est basé sur du texte, toutes les commandes sont
envoyées par le client sous forme de texte et toutes les réponses du
serveur sont renvoyées sous forme de texte.
• La figure montre une session de base entre un navigateur client et un
serveur Web pour récupérer un fichier de page Web.
• Le navigateur envoie une requête HTTP au serveur Web, en entamant au
préalable une connexion TCP, demandant une ressource spécifique sur le
serveur. À son tour, le serveur Web renvoie une réponse HTTP
spécialement formatée avec le fichier de données.
• Il est utile de connaître les demandes et les réponses de base, en
particulier si vous devez résoudre des problèmes liés à une connexion
Web.
02 – Fonctions du Serveur HTTP Apache
Requêtes clients

• Une fois qu'une connexion HTTP est établie avec un serveur distant, le client doit envoyer des requêtes sur
lesquelles le serveur peut agir.
• Les requêtes HTTP se composent d'un mot-clé, éventuellement suivi d'informations supplémentaires dont
le serveur peut avoir besoin pour traiter la requête (comme le nom d'un fichier à renvoyer).

• Comme le montre le tableau,


REQUETE DESCRIPTION
lorsque vous demandez à afficher
CONNECT Convertie la connexion en un tunnel sécurisé une page Web, le navigateur
DELETE Supprimer la ressource spécifiée envoie une requête HTTP GET au
GET Demander la ressource spécifiée serveur, en spécifiant le nom de
HEAD Demander le titre de la ressource spécifiée fichier de la page Web.
OPTIONS Récupérer les requêtes HTTP que le serveur prend en charge • Le serveur répond alors avec un
PATCH Appliquer une modification à une ressource code de réponse avec les
POST Envoyer les données spécifiées au serveur pour traitement données demandées. Si le client
PUT Stocker les données spécifiées à un emplacement spécifié ne spécifie pas de nom de fichier
TRACE Renvoyez la demande reçue au client dans la requête GET, le serveur
répond par une page par défaut.
03 – Configuration du serveur HTTP
Installation du service HTTPD
NB: Avant de commencer l’installation, n’oubliez pas de fixer une adresse IP à votre serveur
• pour commencer, on télécharge le package adéquat avec sa documentation
Dnf install httpd*
03 – Configuration du serveur HTTP
Installation du service HTTPD

• le système ne démarre pas automatiquement le serveur Web Apache. Pour ce faire, vous
devrez utiliser la commande systemctl :
#systemctl enable httpd
#systemctl start httpd
03 – Configuration du serveur HTTP
Installation du service HTTPD

• Une fois le serveur apache démarre on vérifie par le navigateur en saisissant l’adresse IP
du serveur dans la barre des URL, le server répond par une page par défaut :
03 – Configuration du serveur HTTP
Installation du service HTTPD

• Les répertoires et fichiers de base du serveur apache HTTP sont:


o /etc/httpd : dossier contenant l'ensemble des fichiers de configuration
o /etc/httpd/conf/[Link] : fichier principal de configuration
o /etc/httpd/conf.d : dossier contenant les fichiers secondaires de
configuration
o /var/log/httpd : dossier contenant les journaux
o /var/log/httpd/access_log : journal retraçant toutes les pages traitées par
le serveur
o /var/log/httpd/error_log : journal des erreurs
o /var/www : dossier contenant les données du site par défaut
o /var/www/cgi-bin : dossier (vide) contenant les scripts
o /var/www/html : dossier (vide) contenant les pages du site par défaut
04 – Directives de configuration dans [Link]
Explication et exemples
• En parcourant le fichier de configuration, vous verrez de nombreuses directives définissant les fonctionnalités de
base du serveur. Ce tableau décrira quelques unes:

DIRECTIVES DESCRIPTION
Listen Le port TCP (et l'adresse IP facultative)
pour écouter les demandes des clients
User/Group Le compte utilisateur/groupe utilisé pour
démarrer le démon du serveur Apache
ServerAdmin Adresse e-mail de l'administrateur du
serveur
ServerName Le nom de domaine du serveur
ServerRoot L'emplacement des fichiers de
configuration de base
DocumentRoot L'emplacement du dossier de données
par défaut
Include Inclure les paramètres de configuration
définis dans un fichier externe
LoadModule Charger et activer le module de
fonctionnalités spécifié dans le serveur
… …
04 – Directives de configuration dans [Link]
Explication et exemples
• Par défaut, les paramètres que vous définissez • Vous pouvez également définir des paramètres
dans la zone de configuration principale sont conditionnels, qui s'appliquent uniquement
appelés paramètres globaux. Ils s'appliquent au lorsque des conditions spécifiques sont
serveur Web Apache principal lors de son remplies, par exemple si TEST est vrai, les
démarrage. Vous définissez les paramètres directives situées à l'intérieur vont être
conditionnels sous la forme d'un bloc de appliquées. Si TEST est faux, tout ce qui se
directives. Le bloc utilise le format suivant trouve entre les balises de début et de fin est
ignoré.
<IfDefine variable>
Directive • La section <IfModule test>...</IfModule>
permet de conférer à des directives un
</IfDefine> caractère conditionnel basé sur la présence
• Exemple: d'un module spécifique. Les directives situées
dans une section <IfModule> ne s'appliquent
<IfDefine TEST> que si test est vrai. Si test est faux, tout ce qui
Define servername [Link] se trouve entre les balises de début et de fin est
ignoré.
</IfDefine>
• Exemple:
<IfModule dir_module>
DirectoryIndex [Link]
</IfModule>
04 – Directives de configuration dans [Link]
Explication et exemples
• Vous pouvez utiliser les paramètres de répertoire, qui s'appliquent uniquement à des
répertoires spécifiques sur le serveur.
• La condition <Directory> spécifie les directives qui s'appliquent uniquement au chemin de
répertoire spécifié dans le paramètre :
<Directory "/">
AllowOverride None
</Directory>
• Les directives spécifiées dans ce bloc s'appliquent uniquement lorsque les clients tentent
d'accéder aux fichiers stockés dans ce dossier.
05 – Modules du Serveur HTTP Apache
Exemples et descriptions

• Le serveur HTTP Apache comprend un petit noyau de modules multi-traitements (MPM)


qui répartit les processus de traitement des données. De nombreux modules
supplémentaires sont disponibles pour étendre les fonctionnalités de base à des fins
particulières:
• Exemples:
✓ log_config_module: Journalisation des requêtes envoyées au serveur
✓ alias_module: Permet d'atteindre différentes parties du système de fichiers depuis
l'arborescence des documents du site web, ainsi que la redirection d'URL
✓ mime_module: Associe les extensions des fichiers demandés avec l'action déclenchée
par ces fichiers et avec leur contenu (type MIME, langue, jeu de caractère et codage)
✓ mime_magic_module: Détermine le type MIME d'un fichier à partir de quelques
octets de son contenu
✓ dir_module: Permet la redirection des adresses se terminant par un répertoire sans
slash de fin et la mise à disposition des fichiers index de répertoire
✓ mod_authz_ldap : Permet d'utiliser un annuaire LDAP pour l'authentification HTTP de
base
✓ mod_ssl : Chiffrement de haut niveau basé sur les protocoles Secure Sockets Layer
(SSL) et Transport Layer Security (TLS)
06 – Journalisation Serveur HTTP Apache
Fichiers LOG
• Le serveur Web Apache crée deux types de fichiers journaux par défaut :

Journalisation

ACCESS_LOG est le fichier qui ERROR_LOG est le fichier qui


journalise les accès au serveur web journalise les erreurs de
configuration
07 – Configuration d'hôtes virtuels
Définition et intérêt
• La configuration de base d'un serveur Web Apache
suppose que l'hôte sert des fichiers pour un seul
serveur, à savoir le nom du serveur ou l'adresse IP sur
laquelle le logiciel Apache s'exécute. Cependant,
Apache vous permet également d'héberger des pages
Web pour plusieurs noms de domaine ou adresses IP
sur un seul serveur physique. Ceci est idéal pour les
entreprises qui prennent en charge plusieurs clients,
tels que les fournisseurs de services Internet.
• La possibilité d'héberger plusieurs environnements
Web sur un seul serveur physique est appelée
hébergement Web virtuel. Il existe deux manières
d'implémenter l'hébergement Web virtuel dans
Apache :
❑ Hébergement virtuel basé sur le nom
❑ Hébergement virtuel basé sur IP
• Avec l'hébergement virtuel basé sur le nom, le serveur
physique a plusieurs noms d'hôte qui pointent vers
son adresse IP dans le système DNS. ➔
07 – Configuration d'hôtes virtuels
Création et tests
• Il existe deux types d'hébergement virtuel dans Apache, hôte virtuelle basée sur IP ou Hôte
virtuelle basé sur le nom
<VirtualHost *:80 /NAME>
ServerName [Link]
[...]
DocumentRoot /var/www/app1
[...]
</VirtualHost>
• Pour y faire, on doit créer les dossiers
d’applications ainsi que les log des accès
et des erreurs, dans notre cas on a deux
applications SRV1 et SRV2.
• Dans le fichier [Link] on ajoute la
configuration dont les options sont:
✓ ServerAdmin
✓ DocumentRoot
✓ ServerName
✓ ErrorLog et CustomLog
SERVEURS HTTP
⚫ Un ordinateur sur lequel fonctionne un serveur HTTP est appelé serveur web.
⚫ Indifféremment le terme « serveur web » peut désigner le serveur HTTP (le logiciel) lui-même
⚫ Il est bon de savoir qu'il existe d’autres serveurs http que celui que nous utiliserons
⚫ Liste de quelques serveurs HTTP :
➔ Apache Serveur HTTP de la Fondation Apache Software
➔ Internet Information Services (IIS) de Microsoft
➔ Oracle Java System Web de Oracle (anciennement appartenant à Sun Microsystem)
➔ Zeus Web Server de Zeus Technology
➔ Lighthttpd de Jean Kneschke ;
➔ Nginx d'Igor Sysoev ;
➔ Cherokee de Alvaro Lopez Ortega
➔ …
Outil choisi : APACHE dans sa version 2

177
APACHE & MOD_SSL

• Apache est un serveur HTTP libre, populaire et très apprécié


• mod_ssl est le module permettant d’utiliser SSL dans Apache
• Ce module est inclus dans Apache 2
– et notre cours utilisera Apache 2 sur Ubuntu !

178
COMPARAISON DES SERVEURS HTTP SUR LE MARCHÉ

179
COMPARAISON DES SERVEURS HTTP SUR LE MARCHÉ

180
INSTALLATION D' APACHE (1)

• Le faire sois même


– [Link]
– permet d’être à niveau des versions
– Mais pas conseillé sur les serveurs en production pour
cause de mise à jour automatique non prise en charge.

• Les systèmes d’exploitation


– disponible prêt à l’emploi avec presque tous les systèmes
– pas forcément dans les versions les plus récentes
– il y a des avis de sécurité de temps en temps…

181
INSTALLATION D' APACHE (2)

• OpenSSL doit être installé au préalable !

• Pour le faire sois-même à partir des sources


tar zxvf apache2*[Link]
cd apache*
./configure –enable-mods-shared=’ssl all’
make && make install

• Il ne reste plus qu’à configurer…

182
INSTALLER APACHE (3)
• A partir du dépôt ou des portages des distribution Unix ou
GNU/Linux

• Pour le faire à partir du Dépôt d'Ubuntu


~$ sudo apt-get update
~$ sudo apt-get upgrade
ou
~$ sudo aptitude update
~$ sudo aptitude safe-upgrade
~$ sudo apt-get install apache2
Ou
~$ sudo aptitude install apache2

183
INSTALLER APACHE (4)

• Fichier et commande de démarrage


– /etc/init.d/apache (ou similaire)
– ~$ sudo /etc/init.d/apache2 [start|restart|stop|reload|force-
reload|status]

ou
– ~$ sudo service apache2 [start|restart|stop|reload|force-
reload|status]

Programme apachectl
– avec SSL : apachectl startssl (au-lieu de start)

• Clé & certificat X.509


– si vous utilisez les SSL il faut avoir ces données avant le démarrage d’Apache

184
SITES WEB « VIRTUELS »

• Mots anglais : « virtual hosting »


– utiliser une instance d’Apache pour héberger plusieurs
sites Web
– voire plusieurs centaines ou milliers de sites

• Deux modes avec Apache


– par IP : une adresse IP (ou un numéro de port) par site
– par nom : plusieurs sites se partagent la même IP

185
SITES VIRTUELS PAR NOM

• Très économique, à préférer


– quelques très très anciens clients Web pourraient ne
pas s’en sortir : tant pis pour eux
– facile à configurer et fiable
– une IP, port 80 peut héberger des centaines ou milliers
de sites Web
– chaque site est séparé des autres

• Ne convient pas aux Web sécurisés (HTTPS)

186
SITES VIRTUELS PAR IP

• Nécessite beaucoup de ressources


– un couple IP:port par site

• Indispensable pour les Web SSL


– parce que l’échange des certificats se fait dès le
début de la connexion SSL (avec le HTTP)
– le certificat est lié au nom du serveur, Apache ne
peut donc pas par avance savoir quel certificat
utiliser

187
SI UNE SEULE IP EST DISPONIBLE…

• Utiliser des numéros de ports séparés


– port 80 : tous les serveurs standard
– port 443 : le « privilégié » en https
– port 8443 : un autre site https
– …

• Risque pour l’accès aux sites


– hélas de nombreuses politiques de sécurité d’entreprises
interdisent l’accès aux sites Web ailleurs que sur les
numéros de ports standard (80 et 443)

188
DNS & SITES WEB

• En plus de la configuration Apache il faut un


enregistrement DNS adéquat pour renvoyer le trafic

• Proposition
– utiliser pour chaque site un enregistrement de type A
([Link] IN A [Link]) plutôt qu’un CNAME
– utiliser l’IP du serveur
– il n’y a pas de numéro de port : c’est dans l’URL que cela se
trouve

189
CONFIGURATION D’APACHE (1)

• Sur Ubuntu le fichier de configuration est segmenté


en plusieurs qui sont inclus au fichier
/etc/apache2/[Link]
– /etc/apache2/sites-[avalaible|enable]/nom_du_site.conf
– /etc/apache2/mods-[avalaible|enable]/nom_du_module.conf
– /etc/apache2/conf-[available|enable]/fichier_de_configuration.conf

190
CONFIGURATION D’APACHE (2)

• Structure des fichiers de configuration d'Apache2


/etc/apache2/
|-- [Link]
| `-- [Link]
|-- mods-enabled
| |-- *.load
| `-- *.conf
|-- conf-enabled
| `-- *.conf
`-- sites-enabled
`-- *.conf

191
CONFIGURATION D’APACHE (3)

• Structure des fichiers de configuration d'Apache2


Une structure simple à comprendre avec des sections
<Nom de la section>
 contenu de la section

</Nom de la section>

Un fichier additionnel qui peut être utile : [Link]

192
CONFIGURATION D’APACHE (3)

• Nombre de serveurs à lancer (StartServers,


MinSpareServers, …)
– à adapter en fonction de l’activité du site
– petit site : prendre des valeurs très basses (StartServers = 1
par exemple)

• Listen 80
– indique sur quelle(s) IP et numéros de ports Apache doit
accepter les connexions
– il faut indiquer toutes les combinaisons qui seront utilisées
Listen 80
Listen 443

193
CONFIGURATION D’APACHE (4)

• User / Group
– ne pas oublier de « ne pas faire tourner Apache sous l’identité privilégiée » !

• HostnameLookups Off
– il est conseillé de conserver cette option : sinon délais supplémentaires liés au DNS
significatifs
– les logiciels de statistiques s’occuperont de cela plus tard

194
CONFIGURATION D’APACHE (5)

• NameVirtualHost *:80
– permet de définir les adresses et numéro de ports
utilisés pour de l’hébergement virtuel par nom
– toutes les autres adresses sont par définition
« virtuelles par adresse »
– n’a pas de sens pour HTTPS (c’est à dire *:443
par exemple)

• Il faut ensuite définir les VirtualHost associés

195
CONFIGURATION VIRTUALHOST (1)
• Serveur virtuel basé sur le nom

<VirtualHost *:80>
ServerAdmin admin@[Link]
DocumentRoot /var/www/[Link]/htdocs
ServerName [Link]
ServerAlias [Link]
ErrorLog /var/www/[Link]/logs/error_log
CustomLog /var/www/[Link]/logs/access_log common
</VirtualHost>

• Autant d’entrée que de NameVirtualHost

196
CONFIGURATION VIRTUALHOST (2)

• Choix du VirtualHost « nommé »


– la liste est balayée séquentiellement
– dès que le nom correspond (ServerName ou
ServerAlias) on s’arrête
– si le nom n’est pas trouvé, c’est la 1ère entrée qui sera
utilisée

• Attention au nombre de fichiers ouverts !


– 2 fichiers par site rien que pour les journaux

197
CONFIGURATION VIRTUALHOST (3)

• Serveur virtuel basé sur l’adresse IP


<VirtualHost [Link]:80>
ServerAdmin admin@[Link]
DocumentRoot /var/www/[Link]/htdocs
ServerName [Link]
ServerAlias [Link]
ErrorLog /var/www/[Link]/logs/error_log
CustomLog /var/www/[Link]/logs/access_log common
</VirtualHost>

• Exactement une entrée par adresse IP/Port


– ne pas oublier de mettre le « Listen » qui va bien

198
CONFIGURATION SSL SECURE SOCKETS LAYER
• Un VirtualHost par IP/Port
<VirtualHost [Link]:443>
ServerAdmin admin@[Link]
DocumentRoot /var/www/[Link]/htdocs
ServerName [Link]
ServerAlias [Link]
ErrorLog /var/www/[Link]/logs/error_log
CustomLog /var/www/[Link]/logs/access_log common
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+SSLv2:+EXP:+eNULL
SSLCertificateFile /local/apache/[Link]/[Link]
SSLCertificateKeyFile /local/apache/[Link]/[Link]
</VirtualHost>

• Cf. fichier [Link] d’Apache pour le reste des options


& exercices

199
CRÉATION DES FICHIERS ET RÉPERTOIRES

• Les répertoires doivent exister


– mkdir –p /var/www/[Link]/
– mkdir /var/www/[Link]/logs

• Et avoir les bonnes permissions


– www-data : utilisateur d'Apache
– logs : root ?

• Ne pas oublier de faire « tourner » les fichiers


journaux (logs)
200
DERNIÈRES VÉRIFICATIONS

• apachectl configtest
– permet de vérifier la bonne syntaxe du fichier de configuration
• apachectl graceful
– recharge le fichier de configuration sans interrompre brutalement les
connexions en cours
• apachectl restart
– la même chose en plus violent
• apachectl start / startssl / stop
– arrêt et redémarrage d’Apache
• Il est conseillé d'utiliser les scripts de démarrage et redémarrage fournis
par le système d'exploitation pour une meilleur cohérence des processus
d'Apache : ~$ sudo service apache2 start|restart|reload|stop|status

201
CRÉER SON AUTORITÉ DE CERTIFICATION ?

• Possibilité 1 : non
– les programmes classiques (par exemple Apache +
mod_ssl) savent générer avec OpenSSL un certificat
auto-signé
– c’est facile mais pas homogène

• Possibilité 2 : oui
– assure un minimum d’homogénéité dans votre entité
– c’est rigolo et intéressant de manipuler et comprendre
ces outils

202
EXERCICES AVEC APACHE

• Nous prenons le scénario 2


– installer une autorité de certification locale
– artisanale
– générer son Root CA
– générer ses certificats serveur

• Ne pas oublier de diffuser votre certificat racine

203
• Objectifs : Appliquer les bonnes pratiques de sécurité sur un serveur
Linux.
• Contenu :
• Sécurité SSH : configuration de sshd_config, authentification par clés
• Hardening de serveur : désactivation des services inutiles, configuration de
pare-feu
• Outils de sécurité : audits de sécurité avec Lynis

• Activités :
• Configuration sécurisée de SSH.
• Audit de sécurité du serveur.

204
SÉCURISÉ QUOI.. ?
« SSH, ou Secure Socket Shell, est un protocole réseau qui permet aux
administrateurs d'accéder à distance à un ordinateur, en toute sécurité. »
 Fondée en 1995 par Tatu Ylonen, chercheur à l'Université de technologie d'Helsinki, Finlande

 Il fournit l'authentification et le cryptage pour que les applications critiques de l'entreprise


fonctionnent en toute sécurité sur Internet.
 Initialement introduit pour les terminaux UNIX en remplacement de l'accès à distance non
sécurisé « services Berkeley », à savoir rsh, rlogin, rcp, telnet, etc.
 Il peut également être utilisé pour la redirection de port de connexions TCP/IP ou X11
arbitraires (terminaux interactifs)
 Il s'agit d'une couche sur TCP/IP et fonctionne sur le port 22.

205
POURQUOI SSH ?
 Les trois exigences de sécurité fondamentales pour une technologie d’accès à distance
: confidentialité, intégrité et authentification
 La plupart des technologies antérieures manquent de confidentialité et d’intégrité. Par
exemple, Telnet et FTP transmettent le nom d'utilisateur et les mots de passe en texte
clair.
 Ils sont vulnérables aux attaques telles que l’usurpation d’adresse IP, le DoS, le MITM et
les écoutes clandestines.
 Secure Shell satisfait aux trois exigences en utilisant :
 Cryptage des données pour assurer la confidentialité
 Authentification basée sur l'hôte et (ou) sur le client
 Intégrité des données à l'aide de MAC et de hachages
3/28/2025 206
SAVEURS DE SSH

 Il existe deux versions incompatibles du protocole SSH : SSH-1 et SSH-2

 SSH-2 a été introduit afin de corriger plusieurs bugs dans SSH-1 et inclut également
plusieurs nouvelles fonctionnalités
 Les deux versions présentent des problèmes techniques et sont vulnérables aux
attaques connues (discutées plus tard).
 SSH-1 est plus populaire de nos jours en raison de problèmes de licence avec SSH-2

 OpenSSH est une version gratuite de SSH avec développement de code open source.
Il prend en charge les deux versions et est principalement utilisé dans
l'environnement UNIX.

3/28/2025 207
SCHÉMA DU FONCTIONNEMENT

 SSH sur GNU/Linux est généralement


composé de 3 packages :
 OpenSSH général, (openssh),
 le serveur OpenSSH (openssh-server)
 le client (openssh-clients).
▪ Les packages OpenSSH requièrent le
paquetage OpenSSL (openssl).

3/28/2025 208
LE PROTOCOLE D'ÉCHANGE SSH-1

Opens a TCP connection to port 22

SSH protocol version exchange

e.g ASCII :” SSH-1.2.27”

Server identification {H+S+list of ciphers and


authentication methods+cookie} + session
parameters
Client Server
Selected data cipher +encrypted session key
K(H,S) +cookie

Server acknowledgement encrypted


with K
Secure connection established!
Server authenticated
H – host key ; S- Server Key ; cookie- sequence of 8 random bytes; K- session key
3/28/2025 209
THE SSH-1 PROTOCOL EXCHANGE (CONTD.)

 Une fois la connexion sécurisée établie, le client tente de s'authentifier auprès du


serveur.
 Certaines des méthodes d'authentification utilisées sont :
 Kerberos
 RHosts et RHostsRSA
 Clé publique

 Authentification par mot de passe (OTP)

 La vérification de l'intégrité est assurée au moyen d'un CRC -32 faible

 La compression est assurée à l'aide de l'algorithme « deflate » de l'utilitaire GNU gzip.


Il est bénéfique pour les utilitaires de transfert de fichiers tels que ftp, scp, etc.
210
SSH-2 PROTOCOL
 SSH-1 est monolithique, englobant plusieurs fonctions dans un seul protocole tandis
que SSH-2 a été séparé en modules et se compose de 3 protocoles :
 Protocole de couche transport SSH (SSH-TRANS) : fournit la connexion initiale, le protocole de
paquets, l'authentification du serveur et les services de base de cryptage et d'intégrité.
 Protocole d'authentification SSH (SSH-AUTH) : vérifie l'identité du client au début d'une
session SSH-2, par trois méthodes d'authentification : clé publique, basée sur l'hôte et mot de
passe.
 Protocole de connexion SSH (SSH-CONN) : Il permet à un certain nombre de services
différents d'échanger des données via le canal sécurisé fourni par SSH-TRANS.
 Une quatrième architecture de protocole SSH (SSH-ARCH) décrit l'architecture globale.
 Tous les protocoles sont encore au stade de projet.
 SSH-1 est considéré comme obsolète et non sécurisé. Il ne doit pas être utilisé dans les
nouveaux déploiements.
 SSH-2 est la norme actuelle pour un accès à distance sécurisé. Il est largement pris en
charge et considéré comme très sécurisé.
3/28/2025 211
SSH-1 VS SSH-2
Feature SSH-2 SSH-1
Transport Protocols TCP/IP TCP/IP
Public key, password,
Authentication Protocols Password, public key (limited)
Kerberos, etc.
Connection Protocols SSH-2 transport layer protocol SSH-1 transport layer protocol
Cryptographic Integrity Check SHA-256, SHA-1 (deprecated) CRC-32
Not required due to Diffie- Server key used for session
Server Keys
Hellman key exchange key secrecy
Public Key Certificates Supported Not supported
RSA, DSA, ECDSA, Diffie-
RSA, MD5, CRC-32, DES,
Supported Algorithms Hellman, SHA-1, SHA-256,
IDEA, ARCFOUR
AES, DES, Blowfish, Twofish
Session Key Replacement Periodic Not supported
212
SSH-2 PROTOCOL (CONTD.)
Layering of SSH-2 Protocols
Password
Keyboard-
Interactive
Public- Pass- Challenge- Pseudo- TCP Port X11
Key Exchange key word Response Terminal Forwarding
(eg. Diffie- SSH-USERAUTH SSH-CONN
Hellman)
Authentication Protocol Connection Protocol
Algorithm
Negotiation Negotiated Compression Protocol
(compression,
encryption) Negotiated Encryption Protocol
SSH Version
Identification
Binary Packet Protocol

SSH-TRANS

TCP/IP
[Source: ‘Analysis of Secure shell vulnerability’ – white paper ] 3/28/2025 213
SSH EST-IL VRAIMENT SÉCURISÉ ?

 Secure Shell contrecarre certains types d'attaques telles que :


 Écoute clandestine : Eavesdropping
 Service de noms et usurpation d’adresse IP
 Détournement de connexion : Connection hijacking
 MITM : A Man-in-the-Middle
 Attaque par insertion
 Cependant, il échoue face à ces attaques :
 Craquage de mot de passe
 Attaques IP et TCP
 Inondation SYN : SYN flooding
 TCP RST, faux ICMP
 Désynchronisation et détournement TCP
 Analyse du trafic
 Canaux secrets
3/28/2025 214
QUELQUES VULNÉRABILITÉS CONNUES DANS SSH

 Débordement de tampon d'authentification OpenSSH Challenge-Response : une


modification hostile du client SSH inonde le serveur de réponses d'authentification
et provoque un débordement de tampon. [SSH-2]
 Analyse passive du trafic SSH : elle permet à l'attaquant d'obtenir des informations
sensibles en surveillant passivement les sessions SSH cryptées. Ces informations
peuvent ensuite être utilisées pour accélérer les attaques par force brute sur les
mots de passe, y compris le mot de passe de connexion initial et d'autres mots de
passe apparaissant dans les sessions SSH interactives. [SSH-1 et SSH-2]
 Récupération de clé dans le protocole SSH 1.5 : Cette vulnérabilité peut conduire à
la compromission de la clé de session. Une fois la clé de session déterminée,
l’attaquant peut procéder au déchiffrement de la session stockée en utilisant
n’importe quelle implémentation de l’algorithme de chiffrement utilisé. Cela révélera
toutes les informations sous une forme non cryptée. [SSH-1]
 Vulnérabilité de contrôle d'intégrité CRC-32 : Elle est basée sur la faiblesse de
l'intégrité du CRC-32 qui devient exploitable en raison des modes de rétroaction CBC
et CFB [SSH-1]
3/28/2025 215
ETUDE DE CAS : L'EXPLOIT 'GOBBLES' (SUITE)

 Cela exploite la faiblesse du mécanisme d’authentification défi-réponse


d’OpenSSH.
 SSH_MSG_USERAUTH_REQUEST, SSH_MSG_USERAUTH_INFO_REQUEST ,
216
SSH_MSG_USERAUTH_INFO_RESPONSE
ETUDE DE CAS : L'EXPLOIT 'GOBBLES' (SUITE)

 Au lieu d'envoyer le nombre de réponses demandé, le client envoie un grand nombre


entier
 Le serveur alloue de la mémoire pour ces chaînes de réponse 217
ETUDE DE CAS : L'EXPLOIT 'GOBBLES' (SUITE)

3/28/2025 218
ETUDE DE CAS : L'EXPLOIT 'GOBBLES' (SUITE)

3/28/2025 219
ETUDE DE CAS : L'EXPLOIT 'GOBBLES' (SUITE)

3/28/2025 220
ETUDE DE CAS : L'EXPLOIT 'GOBBLES' (SUITE)

221
SSH TOOLS
 Il existe plusieurs outils SSH commerciaux et gratuits pour les
plateformes UNIX et Windows.
 Windows -
 PuTTY
 TeraTerm
 Bitvise SSH Client
 SecureCRT

 UNIX –
 Le package RedHat Linux et OpenBSD sont accompagnés d'outils tels que ssh,
sshd (démon), scp (copie sécurisée), sftp (ftp sécurisé), etc.
 OpenSSH 3/28/2025 222
MODE DE FONCTIONNEMENT DE SSH
 L'établissement du dialogue entre le client et le serveur suit un protocole particulier :
1. établissement d'une couche transport sécurisée
2. chiffrement des données à l'aide de clefs symétriques pendant la transaction

 Le client peut s'authentifier en toute sécurité, et accéder aux applications conformes aux spécifications du
protocole.
 Mode de fonctionnement de la couche transport SSH
 La couche transport assure le chiffrement et le déchiffrement des données. Elle assure également la
compression pour améliorer le transfert. Le client et le serveur négocient plusieurs éléments afin que la session
puisse s'établir.
1. l'échange des clés
2. l'algorithme de clé publique à utiliser
3. l'algorithme de chiffrement symétrique à utiliser
4. l'algorithme d'authentification de message à utiliser
5. l'algorithme repère (hash) à utiliser
3/28/2025 223
• Objectifs : Comprendre et utiliser Docker pour la conteneurisation
des applications.
• Contenu :
• Concepts de base : images, conteneurs, Dockerfile
• Utilisation de Docker : docker build, docker run, docker-compose
• Gestion de conteneurs : création, déploiement et gestion

• Activités :
• Création et gestion de conteneurs Docker.
• Déploiement d'une application avec Docker.
224
QU’EST-CE QUE DOCKER ?

 Docker est une application autonome open source qui fonctionne comme un moteur utilisé pour
exécuter des applications conteneurisées. Il est installé sur votre système d'exploitation, de
préférence sous Linux, mais peut également être installé sur Windows et macOS.
 Une application exécutée dans un conteneur est isolée du reste du système et des autres conteneurs, mais
donne l'illusion de s'exécuter dans sa propre instance de système d'exploitation.
 Plusieurs conteneurs Docker peuvent être exécutés simultanément sur un seul système d'exploitation, vous
pouvez gérer ces conteneurs avec Docker.
 Les applications Docker s'exécutent dans des conteneurs qui peuvent être utilisés sur n'importe quel
système : un ordinateur portable, sur site ou dans le cloud.
 Nous pouvons simplement dire que Docker est un service de gestion de conteneurs.

225
QU'EST-CE QU'UN CONTENEUR DOCKER ?

 Un conteneur est une unité logicielle standard qui regroupe le


code et toutes ses dépendances afin que l'application s'exécute
rapidement et de manière fiable d'un environnement
informatique à un autre.
 La conteneurisation existe depuis longtemps, mais elle a été
introduite d'une manière différente par Docker.
 Il regroupe les applications sous forme d'images contenant tout ce
dont vous avez besoin pour les exécuter : code, environnement
d'exécution, bibliothèques et configuration.
 Une image de conteneur Docker est un package logiciel léger,
autonome et exécutable qui comprend tout ce dont vous avez
besoin pour exécuter une application : code, runtime, outils
système, bibliothèques système et paramètres.
226
VIRTUALISATION

 La virtualisation est une technologie qui vous permet de créer des services informatiques utiles à l'aide de
ressources traditionnellement liées au matériel. Il vous permet d'utiliser toute la capacité d'une machine
physique en répartissant ses capacités entre de nombreux utilisateurs ou environnements.

227
COMMENT FONCTIONNE LA VIRTUALISATION ?

 Un logiciel appelé hyperviseurs, également connu sous le nom de moniteur de


machine virtuelle (VMM), sépare les ressources physiques des environnements
virtuels.
 Les hyperviseurs peuvent s'asseoir au-dessus d'un système d'exploitation (ordinateur
de bureau ou serveur), les hyperviseurs prennent vos ressources physiques
(processeur, RAM, disque dur) et les divisent afin que les environnements virtuels
puissent les utiliser.

 Hyperviseurs populaires

228
VIRTUALISATION VS CONTENEURISATION

229
VIRTUALISATION VS CONTENEURISATION

230
VIRTUALISATION VS CONTENEURISATION

231
VIRTUALISATION VS CONTENEURISATION

232
À QUI S’ADRESSE DOCKER ?
 Docker est un outil conçu pour profiter à la fois aux développeurs et aux administrateurs système, ce qui
en fait une partie intégrante de nombreux DevOps.

FAUT-IL UTILISER DOCKER POUR UTILISER DES CONTENEURS ?

 Non. Docker n'est qu'un ensemble d'outils qui fonctionnent avec les fonctionnalités de conteneur
fournies par Linux et Windows. La prise en charge des conteneurs fait partie de Linux depuis longtemps
et est devenue une fonctionnalité stable et fiable.

 Le principal concurrent de Docker est rkt, produit par une société appelée CoreOS.

DOCKER EST-IL GRATUIT ?


 Docker Community Edition (CE) est gratuit pour tous. Cette version de Docker est open source et peut
être utilisée sur diverses plates-formes, notamment Windows, Mac et Linux.

233
L'ARCHITECTURE DOCKER
 Image d'architecture Docker
 Une image est un modèle en lecture seule avec des instructions pour créer un conteneur Docker. vous pouvez créer une image basée sur
l'image Ubuntu ou SQL Server.

 Récipient
 Un conteneur est une instance exécutable d'une image. Vous pouvez créer, démarrer, arrêter, déplacer ou supprimer un conteneur à l'aide
de l'API Docker ou de la CLI.

 Enregistrement
 Un registre Docker stocke les images Docker. Docker Hub est un registre public que tout le monde peut utiliser, et Docker est configuré
pour rechercher des images sur Docker Hub par défaut. Vous pouvez même gérer votre propre registre privé.

 Client
 Le client Docker est le principal moyen par lequel de nombreux utilisateurs de Docker interagissent avec Docker. Lorsque vous utilisez des
commandes telles que docker run, le client envoie ces commandes à dockerd, qui les exécute. La commande docker utilise l'API Docker.

 Démon Docker
 Le démon Docker écoute les requêtes de l'API Docker et gère les objets Docker tels que les images, les conteneurs, les réseaux et les
volumes.
234
L'ARCHITECTURE DOCKER

 Espaces de noms
 Docker utilise une technologie appelée espaces de noms pour fournir un espace de travail isolé appelé conteneur.
Lorsque vous exécutez un conteneur, Docker crée un ensemble d'espaces de noms pour ce conteneur. Ces espaces
de noms fournissent une couche d'isolation. Chaque aspect d'un conteneur s'exécute dans un espace de noms
distinct et son accès est limité à cet espace de noms.

235
INSTALLATION

sudo apt-get update


sudo apt install [Link]
sudo docker container run hello-world
docker --version

236
DOCKER - DOCKER COMPOSE - DOCKER SWARM - KUBERNETES
 Docker :
 Docker est une plate-forme de conteneurisation qui crée, déploie et exécute facilement des applications
dans des conteneurs Docker, qui contiennent toutes les dépendances (frameworks, bibliothèques, bacs,
etc.).
 Le conteneur lui-même peut être déplacé très facilement d'un environnement à un autre. Vous pourrez
également garantir que le code testé fonctionnera réellement dans l’environnement de production.

 Docker Compose:
 Docker Compose est utilisé pour configurer et démarrer plusieurs conteneurs Docker sur le même hôte,
une seule machine hôte. Vous n'avez donc pas besoin de démarrer chaque conteneur séparément.
 Docker Compose est utilisé pour exécuter plusieurs conteneurs en tant que service unique. Chacun des
conteneurs fonctionne ici de manière isolée mais peut interagir les uns avec les autres si nécessaire.

237
DOCKER - DOCKER COMPOSE - DOCKER SWARM - KUBERNETES
 Docker Swarm:
 Docker swarm est un outil d'orchestration de conteneurs qui vous permet d'exécuter et de connecter des
conteneurs sur plusieurs hôtes.
 Docker Swarm peut effectuer des tâches telles que la mise à l'échelle, le démarrage d'un nouveau
conteneur en cas de panne, la mise en réseau de conteneurs et bien d'autres encore..

 Kubernetes :
 Kubernetes est un outil d'orchestration de conteneurs similaire à Docker swarm.
 Kubernetes « K8s » orchestre les applications conteneurisées à exécuter sur un cluster d'hôtes. Le
système K8s automatise le déploiement et la gestion d'applications cloud natives à l'aide d'une
infrastructure sur site ou de plateformes de cloud public..

238
DOCKER - DOCKER COMPOSE - DOCKER SWARM - KUBERNETES

 Docker lorsque vous souhaitez déployer un seul conteneur (accessible par le


réseau).
 Docker Compose lorsque vous souhaitez déployer plusieurs conteneurs sur un
seul hôte à partir d'un seul fichier YAML.
 Docker Swarm lorsque vous souhaitez déployer un cluster de nœuds Docker
(plusieurs hôtes) pour une application simple et évolutive.
 Kubernetes lorsque vous devez gérer un déploiement à grande échelle de
conteneurs évolutifs et automatisés.

239
TAGS
Les balises Docker font référence aux images Docker.

240
FICHIER DOCKER : DOCKERFILE
 Docker peut créer des images automatiquement en lisant les instructions d'un Dockerfile. Un
Dockerfile est un document texte qui contient toutes les commandes qu'un utilisateur peut
appeler sur la ligne de commande pour assembler une image.

241
COMMANDE DOCKER MONITORING

Commande Description
docker info Afficher les informations générales de votre Docker
Afficher les containers en cours de fonctionnement (-
docker ps (-a)
a = afficher aussi les containers arrêtés)
docker stats --all Affiche les statistiques des conteneurs
Afficher les images téléchargées et construites sur
docker image ls
votre machine
docker network ls Afficher les réseaux créer sur votre machine
docker inspect <container> Inspecter la configuration d'un conteneur
Visualiser les logs d'un conteneur (--tail = afficher les
docker logs (--tail) <container>
logs en live)
docker exec -it <container> bash Exécuter des commandes dans un conteneur actif

242
COMMANDE DOCKER DÉMARRER
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
Option Description
-i Garder STDIN ouvert, même si pas attaché
-t Allouer un pseudo-terminal
-p Configurer le port
-v Lier un dossier sur le serveur au conteneur
-c Créer un partage
-d Activer le mode daemon. Le conteneur sera actif et en tâche de fond
-e Forcer Docker a utiliser un driver exec spécifique
--name Identifier un conteneur par un nom au lieu d’un ID
--dns Définir un DNS personnalisé
--net="<mode>" Définir le mode réseau entre “Bridge”, “none”, “container:” et “host”
--network Connecter le container à un réseau existant
--add-host Modifier le contenu du fichier “hosts” en y ajoutant les valeurs spécifiées
--link Ajouter un lien vers un autre conteneur 243
COMMANDE DOCKER GESTION DES CONTAINERS

Commande Description
Démarrer un container à partir d'une image avec les
docker run <image> <options>
options configurées
docker ps Afficher tous les containers en cours d'exécutions
docker ps -a Afficher tous les containers
docker stop <container> Arrêter un container
docker stop $(docker ps -aq) Arrêter tous les containers
docker restart <container> Redémarrer un container
docker kill <container> Envoyer la commande kill à un container
docker rm <container> Supprimer un container
docker rm $(docker ps -aq) Supprimer tous les containers
244
COMMANDE DOCKER GESTION DES IMAGES

Commande Description
docker search <mot_clé> Rechercher une image
docker pull <image:tag> Télécharger l'image depuis le repo
docker push <dossier/image> Envoyer l'image au repo
docker image Afficher les images téléchargées sur la machine
docker rmi <image> Supprimer une image
docker rmi $(docker image -q) Supprimer toutes les images
docker build <options> Créer une image (voir /Docker/Image)

245
COMMANDE DOCKER GESTION DES RÉSEAUX

Commande Description

docker network ls Afficher les réseaux existants sur la machine

docker network create --driver <driver_type> Créer un réseau avec un driver


<réseau> spécifique (voir /Docker/Réseau)

docker network inspect <réseau> Afficher les informations d'un réseau

docker network rm <réseau> Supprimer un réseau

246
COMMANDE DOCKER DOCKER-COMPOSE

Commande Description

docker-compose up Lancer la stack

docker-compose up -d Lancer la stack en daemon

docker-compose pull Télécharger les images de la stack

docker-compose stop Arrêter les containers

docker-compose down Supprimer les containers

docker-compose logs Afficher les logs des containers

247
DATA MANAGEMENT

 Les volumes sont stockés dans une partie du système de fichiers hôte gérée par
Docker (/var/lib/docker/volumes/ sous Linux).
 Les processus non Docker ne doivent pas modifier cette partie du système de
fichiers.
 Les volumes constituent le meilleur moyen de conserver les données dans Docker.
 Un volume donné peut être monté simultanément dans plusieurs conteneurs.

 Les supports de liaison peuvent être stockés n'importe où sur le système hôte.
 Les processus non Docker sur l'hôte Docker ou un conteneur Docker peuvent les modifier à tout moment.
 Pour utiliser les montages liés, le fichier ou le répertoire n'a pas besoin d'exister déjà sur votre hôte Docker. S’il n’existe pas,
il sera créé à la demande.

248
DATA MANAGEMENT

249
• Objectifs : Utiliser Ansible pour automatiser la configuration et le
déploiement.
• Contenu :
• Concepts de base : playbooks, roles, inventories
• Utilisation de Ansible : ansible-playbook, création de playbooks

• Activités :
• Création et exécution de playbooks pour diverses tâches.

250
INTRODUCTION

 Qu'est-ce qu'Ansible
 Pourquoi Ansible
 Cas d'utilisation d'Ansible
 Architecture d'Ansible
 Gestion de la configuration avec Ansible

251
QU'EST-CE QU'ANSIBLE

 Ansible est un outil de gestion de configuration et de provisionnement open


source, similaire à Chef, Puppet ou Salt.
 Il utilise SSH pour se connecter aux serveurs et exécuter les tâches configurées.
Ansible vous permet de contrôler et de configurer des nœuds depuis une seule
machine.
 Ce qui le distingue des autres logiciels de gestion, c'est qu'Ansible utilise
l'infrastructure SSH. Le projet a été fondé en 2013 et racheté par Red Hat en
2015.

252
POURQUOI ANSIBLE

 Pas d'Agent - Tant que la machine peut être accédée via SSH et qu'elle a
Python, elle peut être configurée avec Ansible.
 Idempotent - Toute l'architecture d'Ansible est structurée autour du concept
d'idempotence. L'idée principale est que vous ne faites les choses que si elles
sont nécessaires et que les actions sont répétables sans effets secondaires.
 Déclaratif, pas Procédural - Les autres outils de configuration ont tendance à
être procéduraux : faites ceci puis faites cela, etc. Ansible fonctionne en
écrivant une description de l'état de la machine souhaitée et prend ensuite les
mesures pour remplir cette description.
 Courbe d'Apprentissage Minime - Ansible est assez facile à apprendre. Il ne
nécessite aucune connaissance supplémentaire.
253
CAS D'UTILISATION D'ANSIBLE

 Provisionnement
 Gestion de la Configuration
 Déploiement d'Applications
 Livraison Continue
 Sécurité et Conformité
 Orchestration

254
ARCHITECTURE D’ANSIBLE

255
INVENTAIRE

 L'inventaire est une description des nœuds accessibles par Ansible. Par
défaut, l'inventaire est décrit par un fichier de configuration, dont
l'emplacement par défaut est dans ./etc/ansible/hosts. Le fichier de
configuration répertorie soit l'adresse IP, soit le nom d'hôte de chaque nœud
accessible par Ansible.
 Chaque hôte est assigné à un groupe tel que serveurs web, serveurs de base
de données, etc. Le fichier d'inventaire peut être dans l'un des nombreux
formats tels que yaml, INI, etc.

256
EXEMPLE D'UN FICHIER D'INVENTAIRE

257
PLAYBOOK

 Les playbooks sont des fichiers YAML simples. Ces fichiers sont des descriptions de
l'état souhaité de vos systèmes. Ansible s'occupe ensuite de faire en sorte que vos
systèmes atteignent cet état, peu importe leur état actuel. Les playbooks rendent
vos installations, mises à jour et gestion quotidienne répétables et fiables.
 Les playbooks sont simples à écrire et à maintenir. Ils sont écrits dans un langage
naturel, ce qui les rend très faciles à faire évoluer et à éditer.
 Un playbook contient des pièces (plays). Les pièces contiennent des tâches. Les
tâches appellent des modules.

258
EXEMPLE D'UN PLAYBOOK

259
MODULES

 Il y a plus de 1000 modules fournis par Ansible pour automatiser chaque partie de
l'environnement. Les modules sont comme des plugins qui font le travail réel dans
Ansible, ce sont eux qui sont exécutés dans chaque tâche de playbook.
 Chaque module est principalement autonome et peut être écrit dans un langage de
script standard (comme Python, Perl, Ruby, Bash, etc.). L'une des propriétés
directrices des modules est l'idempotence, ce qui signifie que même si une
opération est répétée plusieurs fois, elle placera toujours le système dans le même
état.

260
MODULES

 Il existe de nombreux modules tels que :


 Service, file, copy, iptables, etc.

 Tout module peut être utilisé comme suit :

ansible [Link] -m service -a "name=httpd state=started" ansible localhost -m ping

261
RÔLES

 Les rôles sont un moyen de regrouper les tâches dans un seul conteneur. Nous
pourrions avoir un rôle pour configurer MySQL, un autre pour configurer iptables,
etc.
 Les rôles facilitent la configuration des hôtes. N'importe quel rôle peut être exécuté
sur n'importe quel hôte ou groupe d'hôtes tels que :

262
CERTAINES ENTREPRISES QUI UTILISENT ANSIBLE

263
GESTION DE LA CONFIGURATION AVEC ANSIBLE

 Ansible est la solution la plus simple pour configurer les nœuds. Il est conçu pour être minimaliste,
cohérent, sécurisé et hautement fiable. Tout développeur, testeur ou responsable informatique peut
facilement configurer les nœuds. Toute personne en informatique peut facilement écrire des
playbooks.
 Les configurations Ansible sont des descriptions de données simples de votre infrastructure (lisibles
par l'homme) garantissant que chaque membre de votre équipe pourra comprendre la signification
de chaque tâche de configuration.
 Ansible ne nécessite rien de plus qu'un mot de passe ou une clé SSH pour commencer à gérer les
systèmes et peut commencer à les gérer sans installer de logiciel agent.

264
• Objectifs : Installer et configurer Tomcat pour les applications Java.
• Contenu :
• Installation : téléchargement et configuration de Tomcat
• Configuration avancée : [Link], [Link]
• Intégration : avec outils de développement Java

• Activités :
• Installation et configuration de Tomcat.

265
• Objectifs : Utiliser Terraform pour provisionner et gérer
l'infrastructure.
• Contenu :
• Concepts de base : fichiers de configuration .tf
• Utilisation de Terraform : terraform init, apply, destroy

• Activités :
• Création de scripts Terraform pour provisionner des ressources.

266
• Objectifs : Implémenter un pipeline CI/CD complet.
• Contenu :
• Pipeline CI/CD : utilisation de Git, Jenkins, et Docker
• Techniques de déploiement : bleu-vert, canari
• Déploiement automatisé : sur serveur avec Apache, Tomcat, Docker

• Activités :
• Création d'un pipeline CI/CD.
• Déploiement automatisé d'une application.

267

Vous aimerez peut-être aussi