Configurer un RAID1 (miroir) encrypté sur NetBSD 10.0

Introduction

Sur NetBSD, seuls les niveaux de raids 0, 1, 4 et 5 sont configurables avec l'utilitaire raidctl.

Pour rappel

Ici nous allons aborder la configuration d'un raid 1


Etape 1 : Préparation des disques

1) Brancher les 2 disques
2) Identifier les 2 disques :

sysctl hw.disknames

(sd1 sd2.. par exemple)


Etape 2 : Création et initialisation du RAID 1

3) Créer le fichier de configuration du RAID1

vi /etc/raid.conf
START array
1 2 1 # Ici, le '1' indique que c'est un RAID1
START disks
/dev/sd1
/dev/sd2
START layout
128 1 1 1 # Cela définit la taille du stripe, l'interleave, etc.
START queue
fifo 100

4) Initialiser le RAID 1

raidctl -C /etc/raid.conf raid0

Etape 3 : Chiffrement du RAID 1

5) Effacer les premiers secteurs du RAID pour s'assurer qu'il n'y a pas de données résiduelles

dd if=/dev/zero of=/dev/raid0 bs=1m count=100

6) Générer la configuration de chiffrement :

cgdconfig -g -o /etc/cgd/cgd0.conf aes-xts 512

7) Configurer le chiffrement avec le mot de passe

cgdconfig -V re-enter /dev/cgd0 /dev/raid0 /etc/cgd/cgd0.conf

Etape 4 : Création et montage du système de fichiers

8) Créer le système de fichiers sur le dispositif chiffré

newfs /dev/cgd0a

9) Monter le système de fichiers chiffré

mkdir /SFTP

mount /dev/cgd0a /SFTP

Etape 5 : Vérification du chiffrement

10) Créer des fichiers de test

dd if=/dev/urandom of=/SFTP/testfile1 bs=1m count=100

dd if=/dev/urandom of=/SFTP/testfile2 bs=1m count=100

11) Calculer les sommes de contrôle des fichiers de test

md5 /SFTP/testfile1 > /tmp/checksums

md5 /SFTP/testfile2 >> /tmp/checksums

12) Démonter le système de fichiers et arrêter le chiffrement

umount /SFTP

cgdconfig -u cgd0

13) Vérifier que les données sont chiffrées : essayez de lire directement les données brutes du RAID pour vérifier qu'elles sont bien illisibles :

hexdump -C /dev/raid0 | head

Etape 6 : Sauvegarde des fichiers de configuration

14) Sauvegarder les fichiers de configuration /etc/raid.conf et /etc/cgd/cgd0.conf sur un support externe sécurisé.

Ne pas laisser le fichier /etc/cgd/cgd0.conf sur le serveur en production !


En cas de redémarrage imprévu de la machine

Recharger le raid :
(attention, vous avez impérativement besoin du fichier /etc/cgd/cgd0.conf pour recharger le raid. Vous devez l'avoir remis sur le serveur avant de commencer - puisque vous l'avez logiquement protégé en le transférant sur un autre serveur).

1) Ré-initialiser le RAID1

raidctl -C /etc/raid.conf raid0

cgdconfig -V re-enter /dev/cgd0 /dev/raid0 /etc/cgd/cgd0.conf

Entrer la même clef que précédemment...

mount /dev/cgd0a /SFTP

En cas de défaillance d'un des disques

1) Afficher le statut du RAID :

raidctl -s raid0

Constater le disque défaillant.

2) Eteindre le serveur et procéder au remplacement physique du disque.

3) Rallumer, chercher le nom du nouveau disque avec sysctl hw.disknames puis l'ajouter au RAID :

raidctl -a /dev/sdX raid0


↑ Haut de page