Add files via upload

This commit is contained in:
Gras-Calvet Fernand 2025-01-31 19:16:46 +01:00 committed by GitHub
parent 3a1365c4cd
commit 4f7d1f9f53
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

278
Born2beroot-subject-fr.pdf Normal file
View File

@ -0,0 +1,278 @@
Born2beRoot
Résumé: Ce document est un sujet dAdministration Système.
Version:
Table des matières
I Préambule 2
II Introduction 3
III Consignes générales 4
IV Partie obligatoire 5
V Partie Bonus 10
VI Rendu et peer-evaluation 12
1
Chapitre I
Préambule
2
Chapitre II
Introduction
Ce projet a pour but de vous faire découvrir le merveilleux monde de la virtualisation.
Vous allez créer votre première machine en respectant des consignes précises et en
utilisant VirtualBox (ou UTM si VirtualBox ne fonctionne pas sur votre machine). Ainsi,
à la suite de ce projet, vous serez capable dinstaller votre propre système dexploitation
implémentant des règles strictes.
3
Chapitre III
Consignes générales
• Lutilisation de VirtualBox (ou UTM si VirtualBox ne fonctionne pas sur votre
machine) est obligatoire.
• Vous devez rendre uniquement un fichier signature.txt à la racine de votre dépôt.
Ce fichier contiendra la signature du disque virtuel de votre machine (cf. Rendu
et peer-evaluation pour plus dinformations).
4
Chapitre IV
Partie obligatoire
Ce projet consiste à vous faire mettre en place votre premier serveur en suivant des
règles spécifiques.
Puisquil sagit de mettre en place un serveur, vous installerez le
minimum de services. Pour cette raison, une interface graphique na
pas dutilité ici. Il est donc interdit dinstaller X.org ou tout
autre serveur graphique équivalent. Dans le cas contraire, votre note
sera de 0.
Vous devez utiliser comme système dexploitation, au choix : Debian latest stable
(pas de testing/unstable), ou Rocky latest stable. Lutilisation de Debian est fortement
conseillée pour quelquun débutant dans ce domaine.
La mise en place de Rocky est plus complexe. Par conséquent, vous
navez pas lobligation de mettre en place KDump. Cependant, SELinux
devra rester actif et sa configuration sera adaptée au sujet.
AppArmor pour Debian devra également rester actif.
Vous devez créer au minimum 2 partitions chiffrées en utilisant LVM. Voici un exemple
de partition attendue pour votre machine virtuelle :
5
Born2beRoot
Durant la soutenance, des questions seront posées en fonction
du système dexploitation choisi. Informez-vous sur ce que vous
utilisez. Par exemple, connaître la différence entre aptitude et apt,
mais aussi ce quest SELinux ou AppArmor. En bref, il faut comprendre
ce que lon utilise !
Un service SSH sera obligatoirement actif sur le port 4242 dans votre machine vir-
tuelle. Pour des questions de sécurité, on ne devra pas pouvoir se connecter par SSH avec
lutilisateur root.
Lutilisation de SSH sera testée durant la soutenance par la mise en
place dun nouveau compte. Il faut par conséquent comprendre comment
fonctionne ce service.
Vous allez configurer votre système dexploitation avec le pare-feu UFW (ou pare-feu
pour Rocky) et ainsi ne laisser ouvert que le port 4242 dans votre machine virtuelle.
Votre pare-feu devra être actif au lancement de votre machine
virtuelle. Pour Rocky, vous utiliserez firewalld au lieu de UFW.
• Votre machine aura pour hostname votre login suivi de 42 (exemple : wil42). Vous
serez amené(e) à modifier ce hostname durant votre évaluation.
• Vous allez mettre en place une politique de mot de passe fort.
• Vous allez installer et configurer sudo selon une pratique stricte.
• Un utilisateur sera présent avec pour nom votre login en plus de lutilisateur root.
• Cet utilisateur appartiendra aux groupes user42 et sudo.
Durant la soutenance, vous allez devoir créer un nouvel utilisateur
et lui assigner un groupe.
Pour mettre en place une politique de mot de passe fort, il faudra remplir les condi-
tions suivantes :
• Votre mot de passe devra expirer tous les 30 jours.
• Le nombre minimum de jours avant de pouvoir modifier un mot de passe sera
configuré à 2.
• Lutilisateur devra recevoir un avertissement 7 jours avant que son mot de passe
nexpire.
• Votre mot de passe sera de 10 caractères minimums dont une majuscule, une
6
Born2beRoot
minuscule et un chiffre, et ne devra pas comporter plus de 3 caractères identiques
consécutifs.
• Le mot de passe ne devra pas comporter le nom de lutilisateur.
• La règle suivante ne sapplique pas à lutilisateur root : le mot de passe devra
comporter au moins 7 caractères qui ne sont pas présents dans lancien mot de
passe.
• Bien entendu votre mot de passe root devra suivre cette politique.
Après avoir mis en place vos fichiers de configuration, il faudra
changer tous les mots de passe des comptes présents sur la machine
virtuelle, compte root inclus.
Pour mettre en place une configuration stricte dans votre groupe sudo, il faudra rem-
plir les conditions suivantes :
• Lauthentification en utilisant sudo sera limitée à 3 essais en cas de mot de passe
erroné.
• Un message de votre choix saffichera en cas derreur suite à un mauvais mot de
passe lors de lutilisation de sudo.
• Chaque action utilisant sudo sera archivée, aussi bien les inputs que les outputs.
Le journal se trouvera dans le dossier /var/log/sudo/.
• Le mode TTY sera activé pour des questions de sécurité.
• Les paths utilisables par sudo seront restreints, là encore pour des questions de
sécurité. Exemple :
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
7
Born2beRoot
Enfin, vous devrez mettre en place un petit script nommé monitoring.sh. Ce dernier
sera à développer en bash.
Dès le lancement de votre serveur, le script écrira des informations toutes les 10 mi-
nutes sur tous les terminaux (jetez un oeil du côté de wall). La bannière est facultative.
À aucun moment la moindre erreur ne doit être visible.
Votre script devra toujours pouvoir afficher les informations suivantes :
• Larchitecture de votre système dexploitation ainsi que sa version de kernel.
• Le nombre de processeurs physiques.
• Le nombre de processeurs virtuels.
• La mémoire vive disponible actuelle sur votre serveur ainsi que son taux dutilisa-
tion sous forme de pourcentage.
• La mémoire disponible actuelle sur votre serveur ainsi que son taux dutilisation
sous forme de pourcentage.
• Le taux dutilisation actuel de vos processeurs sous forme de pourcentage.
• La date et lheure du dernier redémarrage.
• Si LVM est actif ou pas.
• Le nombre de connexions actives.
• Le nombre dutilisateurs utilisant le serveur.
• Ladresse IPv4 de votre serveur, ainsi que son adresse MAC (Media Access Control).
• Le nombre de commande executées avec le programme sudo.
Durant la soutenance, vous serez amené(e) à expliquer le
fonctionnement de ce script et à interrompre son exécution sans
le modifier. Regardez du côté de cron.
Voici un exemple dexécution attendue du script :
Broadcast message from root@wil (tty1) (Sun Apr 25 15:45:00 2021):
#Architecture: Linux wil 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
#CPU physical : 1
#vCPU : 1
#Memory Usage: 74/987MB (7.50%)
#Disk Usage: 1009/2Gb (49%)
#CPU load: 6.7%
#Last boot: 2021-04-25 14:45
#LVM use: yes
#Connexions TCP : 1 ESTABLISHED
#User log: 1
#Network: IP 10.0.2.15 (08:00:27:51:9b:a5)
#Sudo : 42 cmd
8
Born2beRoot
Voici deux exemples avec des commandes simples pour vérifier une partie des de-
mandes du sujet :
Pour Rocky :
Pour Debian :
9
Chapitre V
Partie Bonus
Liste de bonus :
• Mettre correctement en place des partitions afin dobtenir une structure proche de
cet exemple :
• Mettre en place un site web WordPress fonctionnel avec, comme services, lighttpd,
MariaDB et PHP.
• Mettre en place un service qui vous semble utile (NGINX/Apache2 exclus !). Du-
rant la soutenance, vous aurez à justifier ce choix.
Dans le cadre des bonus, vous avez la possibilité de mettre en place
dautres services. Dans ce cas, il pourra y avoir plus de ports
ouverts selon vos besoins. Bien entendu, les règles dUFW/Firewalld
seront adaptées en conséquence.
10
Born2beRoot
Les bonus ne seront évalués que si la partie obligatoire est
PARFAITE. Par parfaite, nous entendons complète et sans aucun
dysfonctionnement. Si vous navez pas réussi TOUS les points de la
partie obligatoire, votre partie bonus ne sera pas prise en compte.
11
Chapitre VI
Rendu et peer-evaluation
Vous devez rendre uniquement un fichier signature.txt à la racine de votre dépôt
Git. Ce fichier contiendra la signature du disque virtuel de votre machine. Pour récupérer
cette signature, il faudra tout dabord aller dans le dossier dinstallation par défaut (cest
dans ce dossier que sont sauvegardées vos VMs) :
• Pour Windows : %HOMEDRIVE%%HOMEPATH%\VirtualBox VMs\
• Pour Linux : ~/VirtualBox VMs/
• Pour Mac M1 : ~/Library/Containers/com.utmapp.UTM/Data/Documents/
• Pour MacOS : ~/VirtualBox VMs/
Il suffira alors de récupérer la signature du fichier ".vdi" (ou .qcow2 pour les utilisa-
teurs de UTM) de votre machine virtuelle au format sha1. Voici 4 exemples de commande
avec un fichier rocky_serv.vdi :
• Pour Windows : certUtil -hashfile rocky_serv.vdi sha1
• Pour Linux : sha1sum rocky_serv.vdi
• Pour Mac M1 : shasum rocky.utm/Images/disk-0.qcow2
• Pour MacOS : shasum rocky_serv.vdi
Voici un exemple de résultat attendu :
• 6e657c4619944be17df3c31faa030c25e43e40af
Attention, votre signature risque de changer à la suite de votre
première évaluation. Pour pallier à ce problème, plusieurs solutions
soffrent à vous, comme dupliquer votre machine virtuelle ou encore
utiliser les save state.
Il est INTERDIT de rendre votre machine virtuelle dans votre dépôt
Git. Durant la soutenance, la signature du fichier signature.txt
sera comparée avec celle de votre machine virtuelle. Si les deux
signatures ne sont pas identiques, vous aurez 0.
12
Born2beRoot
0010 01 11 111 001 000 11 01 10 1 0000 01 1 1010 111 11 0 000
011 00 1 0000 1 0000 0 01 0100 1 0 010 10 01 1 0 0001 0 010 000
00 111 10 111 0010 001100 001100 001100
13