Gestion des partitions et volumes LVM

Le partitionnement d’un disque dur est une étape cruciale lorsque l’on veut hardener un serveur puisque c’est à ce moment là que nous allons pouvoir créer les différentes partitions (chiffrées ou non) utilisées par notre système d’exploitation.

Que ce soit pour un serveur ou une machine bureautique j’ai pour habitude de mettre en place du LVM. LVM (pour Logical Volume Manager) est un gestionnaire de volumes logiques qui va nous permettre de créer des partitions que nous pourrons aisément redimensionner afin d’y ajouter (ou supprimer) de l’espace de stockage. Avant d’aller plus loin il est nécessaire de bien faire la différence entre volume physique, volume logique et groupe de volumes.

  • Volume physique :

Les volumes physiques ce sont tout simplement nos disque durs (/dev/sdb par exemple). Lorsque l’on monte un disque dur ou une clé USB sous Linux ce sont généralement des volumes physiques.

  • Groupe de volumes :

Les groupes de volumes sont constitués d’un ensemble de volumes physiques et sont utilisés afin de créer les volumes virtuels.

  • Volume virtuel :

Ces volumes sont ceux que nous allons créer sur notre serveur. Comme ces volumes sont logiques nous pourrons y ajouter de l’espace et en supprimer à la volée.

Schématiquement nous avons ici quatre volumes physiques (quatre disques durs distincts) :

lvm1.png

A partir de ces quatre disques durs distincts nous allons créer un groupe de volumes que l’on nommera VGCRYPT :

lvm2.png

Et dans ce groupe de volume VGCRYPT nous allons créer nos volumes logiques :

lvm3.png

Comme vous pouvez le voir sur le schéma ci-dessus, en utilisant des volumes logiques nous sommes en mesure de créer des volumes plus larges qui n’auraient pas pu être stockés sur un volume physique seul. On notera d’ailleurs que j’ai laissé un peu d’espace libre. C’est une bonne pratique à prendre puisque cela nous permettra d’ajouter un peu d’espace sur nos volumes logiques si besoin est.

Au cours de cet article je vais partitionner l’espace d’une VM Debian 9. Sur cette VM je dispose d’un espace de stockage total de 8Go. Je vais y créer une partition primaire /boot non chiffrée et un groupe de volumes (nommé VGCRYPT) qui contiendra une partition swap, la racine, le répertoire /var et le répertoire /tmp avec les tailles suivantes :

lvm4.pngLes partitions / et /tmp seront formatées en EXT4 tandis que la partition /var sera formatée en XFS (généralement le filesystem XFS est utilisé pour stocker de grosses quantités de données ce qui est le cas d’un répertoire /var)

Voici la fenêtre de configuration des partitions sous debian :

lvm5.png

Cliquez sur « Manuel ». La fenêtre suivante s’affichera :

lvm6.png

Comme vous pouvez le voir nous disposons d’un espace de 8,6 Go. Cliquez sur la ligne « SCSI3… » et vous atterrirez sur cette page :

lvm7.png

La toute première partition que nous allons créer c’est la partition /boot. Cette partition ne sera pas chiffrée pour la simple est bonne raison que si vous chiffrez votre /boot vous serez obligés de le déchiffrer pour ensuite pouvoir déchiffrer votre groupe de volumes. C’est long, c’est chiant et niveau sécurité ça ne vous apportera rien puisque, normalement, vous allez protéger votre GRUB via un mot passe. Du coup en cliquant sur la ligne « pri/log 8.6 GB Espace Libre » :

lvm8.png

Nous allons pouvoir configurer notre partition /boot. Il suffira ensuite de cliquer sur « Créer une nouvelle partition » puis lui attribuer une taille de 512Mb :

lvm9.png

Cette partition sera de type primaire et nous la placerons au début de notre l’espace disponible.

Sur cet écran :

lvm10.png

Il faudra cliquer sur la ligne « Point de montage » et choisir /boot puis cliquer sur « Fin du paramétrage de cette partition :

lvm11.png

Nous serons automatiquement basculés sur l’écran de partitionnement des disques où nous pourrons voir notre nouvelle partition primaire :

vlm12.png

Une fois cela fait nous allons créer notre groupe de volumes logiques chiffré. Pour cela il faudra cliquer sur « Configurer les volumes chiffrés » :

lvm13.png

Puis sur « Créer les volumes chiffrés » :

lvm14.png

Il faudra choisir l’espace sur lequel créer ce volume chiffré :

lvm15.png

Puis cliquer sur « Fin du paramétrage de cette partition » :

lvm16.png

Et enfin sur « Terminer ». Si tout s’est bien déroulé la phase d’effacement des données se lancera :

lvm17.png

Puis on vous demandera de fournir un mot de passe à utiliser pour chiffrer le groupe de volumes :

lvm18.png

Une fois le mot de passe fourni nous serons encore une fois amener sur cette page :

lvm19.png

Comme vous pouvez le voir nous avons un nouveau groupe de volumes chiffré de 8,1Go. C’est dans ce groupe de volumes que nous allons créer nos volumes logiques /var, /tmp, /, et swap. Pour cela il faudra cliquer sur « Configurer le gestionnaire de volumes logiques (LVM) » :

lvm20.png

De là nous pourrons créer nos volumes logiques :

lvm21.png

Il faudra ensuite choisir notre groupe logique puis lui attribuer un nom. Par défaut j’utilise toujours le pattern :

lv_nom_de_la_partition

Ce qui nous donnera pour le swap :

lv_swap

Il faudra ensuite lui allouer la taille définie au préalable (512Mb) :

lvm22.png

De la même manière il faudra créer les volumes logiques pour les partitions /var, /tmp et /. Une fois cela fait il faudra cliquer sur « Terminer » ce qui nous amènera ici :

lvm23.png

Pour chaque volume logique il faudra modifier son système de fichiers ainsi que son point de montage en cliquant sur les lignes étiquetés « n°1 ». Le point de montage de la partition pour la partition tmp est /tmp, celui de la partition var est /var etc …

Une fois cela fait il ne nous restera plus qu’à cliquer sur « Continuer » et vérifier le paramétrage de nos partitions :

lvm24.png

Si tout est bon on pourra cliquer sur « Oui » puis « Continuer » ce qui lancera l’installation du système. Suivez les étapes d’installation suivantes et si tout s’est bien déroulé au moment du reboot vous devriez atterrir sur ce prompt :

lvm25.png

Il vous suffira d’entrer le mot de passe de déchiffrement pour que le groupe de volumes soit déchiffré et que les volumes logiques soient montés :

Ililvm26.png

Dernière chose, pour améliorer le niveau de sécurité de notre serveur il est recommandé de monter la partition /tmp avec les options noexec (empêcher l’exécution de script), nodev (empêche l’interprétation des fichiers spéciaux de périphériques présents sur le système de fichiers) et nosuid (ignore le bit SUID). Pour cela il faudra éditer le fichier /etc/fstab et ajouter à cette ligne :

lvm27.png

Les options nodev, noexec et nosuid :

lvm28.png

Notre partitionnement est terminé !