mirror of
https://github.com/Ladebeze66/born2beroot.git
synced 2025-12-11 11:46:56 +01:00
Add files via upload
This commit is contained in:
parent
3a1365c4cd
commit
4f7d1f9f53
278
Born2beroot-subject-fr.pdf
Normal file
278
Born2beroot-subject-fr.pdf
Normal file
@ -0,0 +1,278 @@
|
||||
Born2beRoot
|
||||
|
||||
Résumé: Ce document est un sujet d’Administration 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 d’installer votre propre système d’exploitation
|
||||
implémentant des règles strictes.
|
||||
|
||||
3
|
||||
Chapitre III
|
||||
Consignes générales
|
||||
|
||||
• L’utilisation 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 d’informations).
|
||||
|
||||
4
|
||||
Chapitre IV
|
||||
Partie obligatoire
|
||||
|
||||
Ce projet consiste à vous faire mettre en place votre premier serveur en suivant des
|
||||
règles spécifiques.
|
||||
|
||||
Puisqu’il s’agit de mettre en place un serveur, vous installerez le
|
||||
minimum de services. Pour cette raison, une interface graphique n’a
|
||||
pas d’utilité ici. Il est donc interdit d’installer X.org ou tout
|
||||
autre serveur graphique équivalent. Dans le cas contraire, votre note
|
||||
sera de 0.
|
||||
|
||||
Vous devez utiliser comme système d’exploitation, au choix : Debian latest stable
|
||||
(pas de testing/unstable), ou Rocky latest stable. L’utilisation de Debian est fortement
|
||||
conseillée pour quelqu’un débutant dans ce domaine.
|
||||
|
||||
La mise en place de Rocky est plus complexe. Par conséquent, vous
|
||||
n’avez pas l’obligation 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 d’exploitation choisi. Informez-vous sur ce que vous
|
||||
utilisez. Par exemple, connaître la différence entre aptitude et apt,
|
||||
mais aussi ce qu’est SELinux ou AppArmor. En bref, il faut comprendre
|
||||
ce que l’on 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
|
||||
l’utilisateur root.
|
||||
|
||||
L’utilisation de SSH sera testée durant la soutenance par la mise en
|
||||
place d’un nouveau compte. Il faut par conséquent comprendre comment
|
||||
fonctionne ce service.
|
||||
|
||||
Vous allez configurer votre système d’exploitation 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 l’utilisateur 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.
|
||||
• L’utilisateur devra recevoir un avertissement 7 jours avant que son mot de passe
|
||||
|
||||
n’expire.
|
||||
• 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 l’utilisateur.
|
||||
• La règle suivante ne s’applique pas à l’utilisateur root : le mot de passe devra
|
||||
comporter au moins 7 caractères qui ne sont pas présents dans l’ancien 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 :
|
||||
|
||||
• L’authentification en utilisant sudo sera limitée à 3 essais en cas de mot de passe
|
||||
erroné.
|
||||
|
||||
• Un message de votre choix s’affichera en cas d’erreur suite à un mauvais mot de
|
||||
passe lors de l’utilisation 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 :
|
||||
|
||||
• L’architecture de votre système d’exploitation 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 d’utilisa-
|
||||
|
||||
tion sous forme de pourcentage.
|
||||
• La mémoire disponible actuelle sur votre serveur ainsi que son taux d’utilisation
|
||||
|
||||
sous forme de pourcentage.
|
||||
• Le taux d’utilisation actuel de vos processeurs sous forme de pourcentage.
|
||||
• La date et l’heure du dernier redémarrage.
|
||||
• Si LVM est actif ou pas.
|
||||
• Le nombre de connexions actives.
|
||||
• Le nombre d’utilisateurs utilisant le serveur.
|
||||
• L’adresse 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 d’exé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 d’obtenir 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
|
||||
d’autres services. Dans ce cas, il pourra y avoir plus de ports
|
||||
ouverts selon vos besoins. Bien entendu, les règles d’UFW/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 n’avez 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 d’abord aller dans le dossier d’installation par défaut (c’est
|
||||
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
|
||||
s’offrent à 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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user