Atelier SysRes SE4 2024/2025 E14

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche

INTRODUCTION

Dans le cadre de ce projet de virtualisation, j'ai déployé une infrastructure composée de deux machines dédiées aux services ainsi que d'une machine mandataire, orchestrées à l'aide de Xen. La machine Atreus occupe une place centrale dans l'hébergement des services, tandis que la machine GOW gère le réseau et assure la connectivité externe en IPv4 et IPv6. La deuxième machine de service est celle de Monsieur Antoine LECOMPTE, Kratos.

Df -h.png

vi /etc/hostname

  18  hostname -h

  19  hostname -h$

  20  host `cat /etc/hostname`

  21  hostname `cat /etc/hostname`

  22  cat  /etc/hostname

  23  reboot

  24  lsblk

  25  cat /etc/fstab

  26  mkfs -t ext4 /dev/xvda3

  27  mkfs -t ext4 /dev/xvdb1

  28  mount /dev/xvdb1 /mnt

  29  mv /var/* /mnt

  30  umount /mnt

  31  mount -a

  32  mkfs -t ext4 /dev/xvda3

  33  mkfs -t ext4 /dev/xvda3

  34  mount -a

  35  vi /etc/fstab

  36  mount -a

  37  df -h

CRÉATION MACHINES VIRTUELLES

Tout d'abord, nous devons configurer nos MV de services. Il leur faut plusieurs paramètres pour fonctionner selon nos critères.

root@capbreton:~# xen-create-image --hostname=SE4.Atreus --dhcp --bridge=bifrost --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2048M --force
root@capbreton:~# xen-create-image --hostname=SE4.Kratos --dhcp --bridge=bifrost --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.Atreus : Spécifie le nom d'hôte de la nouvelle MV créée. Ici, le nom d'hôte sera SE4.Atreus.
  • --dhcp : Indique que la MV obtiendra automatiquement une adresse IP via DHCP. Aucune configuration statique d'adresse IP ne sera nécessaire.
  • --bridge=bifrost : Précise l'utilisation du pont réseau nommé bifrost pour 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 fera 10 Go.
  • --dist=daedalus : Indique la distribution du système d'exploitation à utiliser pour la MV. Ici, la distribution choisie s'appelle daedalus pour Debian.
  • --memory=2048M : Détermine la quantité de mémoire vive (RAM) allouée à la MV. Dans cet exemple, la MV aura 2048 Mo (soit 2 Go) de RAM.

Pour initialiser les machines, nous devons exécuter ces commandes:

xen create /etc/xen/SE4.Atreus.cfg
xen create /etc/xen/SE4.Kratos.cfg

Une fois les MV créées et en ligne, nous devons exécuter ces commandes pour les contrôler:

xen console SE4.Atreus
xen console SE4.Kratos

Une fois le login "root" et le mdp (top secret) rentrés dans la console, nous sommes sur la VM et pouvons la contrôler comme un ordinateur avec un OS classique.

root@Atreus:~#

PARTIONING DES MV

Nous avons modifié les fichiers /etc/xen/[Kratos][Atreus].cfg pour attacher les partitions LVM aux machines :

root        = '/dev/xvda2 ro'
disk        = [
                  'file:/usr/local/xen/domains/SE4.Atreus/disk.img,xvda2,w',
                  'file:/usr/local/xen/domains/SE4.Atreus/swap.img,xvda1,w',
		  'phy:/dev/virtual/SE4.Atreus.home,xvda3,w',
		  'phy:/dev/virtual/SE4.Atreus.var,xvdb1,w',
              ]

Le paramètre disk définit les disques virtuels attachés à la machine virtuelle (domaine Xen). Chaque élément du tableau suit la syntaxe :

<type>:<source>,<cible>,<mode>
  • type : indique si le disque provient :
    • d'un fichier (file:)
    • d'un périphérique physique réel (phy:).
  • source : chemin complet vers l'image disque ou vers le périphérique physique sur la machine hôte.
  • cible : nom du périphérique vu par la machine virtuelle (exemple : xvda, xvdb, etc.).
  • mode : type d'accès au disque (r en lecture seule, w en lecture-écriture).

DISQUE VIRTUEL PRINCIPAL :

'file:/usr/local/xen/domains/SE4.Atreus/disk.img,xvda2,w'
  • Type : file (stockage basé sur un fichier-image disque).
  • Source : /usr/local/xen/domains/SE4.Atreus/disk.img (fichier contenant le disque virtuel).
  • Cible : xvda2 (deuxième partition du disque virtuel xvda visible depuis la MV).
  • Mode : w (lecture-écriture).

Ce disque correspond à la racine (/) du système de fichiers Linux de la MV.

DISQUE VIRTUEL SWAP

'file:/usr/local/xen/domains/SE4.Atreus/swap.img,xvda1,w'
  • Type : file → Image disque stockée dans un fichier.
  • Source : /usr/local/xen/domains/SE4.Atreus/swap.img → Chemin de l'image disque swap.
  • Cible : xvda1 → Première partition du disque virtuel xvda.

DISQUE PHYSIQUE POUR /home

'phy:/dev/virtual/SE4.Atreus.home,xvda3,w'
  • Type : phy → Un périphérique physique (généralement une partition réelle ou un volume logique LVM).
  • Source : /dev/virtual/SE4.Atreus.home → Partition ou volume logique physique sur l'hôte. L'hôte étant le disque dur de capbreton.
  • Cible : xvda3 → Troisième partition du disque virtuel xvda.

Cette partition dédiée permet d’isoler le répertoire /home, facilitant ainsi la gestion des données utilisateur séparément du système.

DISQUE PHYSIQUE POUR /var

'phy:/dev/virtual/SE4.Atreus.var,xvdb1,w'
  • Type : phy → Périphérique physique.
  • Source : /dev/virtual/SE4.Atreus.var → Partition physique ou volume logique dédié sur l'hôte.
  • Cible : xvdb1 → Première partition du second disque virtuel (xvdb).

Cette partition est dédiée au répertoire /var, où sont stockés les journaux (logs), les bases de données, les fichiers temporaires, etc. Cette séparation permet une meilleure gestion des données systèmes dynamiques.

Pour le fichier /var

mkfs -t ext4 /dev/xvdb1
mount /dev/xvdb1 /mnt
mv /var/* /mnt
umount /mnt
mount -a

Pour le fichier /home

mkfs -t ext4 /dev/xvda3
mount -a

CONFIGURATION RÉSEAU

Chaque machine dispose d'une adresse IPv4 fixe sur un réseau privé, ainsi que d'une adresse IPv6 configurée automatiquement.

Interfacekratos
Interfacekratos
PingEntre2VM
PingEntre2VM

Configuration machine Mandataire

Fichier SE4.GOW.cfg montrant les deux bridges de notre machine mandataire. "bifrost" connecte nos 3 machines ensembles, "SE4" donne accès à Internet à nos 3 machines
Fichier SE4.GOW.cfg montrant les deux bridges de notre machine mandataire. "bifrost" connecte nos 3 machines ensembles, "SE4" donne accès à Internet à nos 3 machines
Ip forward.png

Commande : iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.3.0/24


Ssh machine.png

SSH : faire les commandes sur les 3 machines, et modifier le fichier ssh config dans /etc/ssh/ en mettant l'option PermitRootLogin yes


IpaAtreusIp6Ip4.png

Faire la demande des certificats en ligne avec la commande openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr -utf8.

PIng en IPv6