Outils pour utilisateurs

Outils du site


autohebergement:chiffrement_des_disques_et_raid

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
autohebergement:chiffrement_des_disques_et_raid [2019/11/24 12:03]
eorn créée
autohebergement:chiffrement_des_disques_et_raid [2021/08/16 14:13] (Version actuelle)
Ligne 12: Ligne 12:
 Schématiquement : Schématiquement :
  
-| Hard drives ​   | /dev/sda (1 To) | /dev/sdb (1 To) | /dev/sdc (2 To) | /dev/sdd (2 To) |+| Hard drives ​   | /dev/sda (1 To) | /dev/sdb (1 To) | /dev/sdc (2 To) | /dev/sde (2 To) |
 | Partitions ​    | /dev/sda1 | /dev/sdb1 | /dev/sdc1 | /dev/sdd1 | | Partitions ​    | /dev/sda1 | /dev/sdb1 | /dev/sdc1 | /dev/sdd1 |
 | RAID arrays ​   | /dev/md0 (1 To) || /dev/md1 (2 To) || | RAID arrays ​   | /dev/md0 (1 To) || /dev/md1 (2 To) ||
 | Point de montage | /data     || /​cloud ​     || | Point de montage | /data     || /​cloud ​     ||
 +
 +=== Création de l'​array RAID ===
 +Source : [[https://​wiki.archlinux.org/​index.php/​RAID|Arch wiki]]
 +
 +Supprimer les anciennes infos RAID :
 +<code bash>
 +mdadm --misc --zero-superblock /​dev/<​drive or partition>​
 +</​code>​
 +
 +Création des partitions :
 +<code bash>
 +fdisk …
 +</​code>​
 +
 +Création des arrays RAID :
 +<code bash>
 +mdadm --create --verbose --level=1 --metadata=1.2 --raid-devices=2 /​dev/​md/​raidCloud /dev/sdc1 /dev/sde1
 +mdadm --create --verbose --level=1 --metadata=1.2 --raid-devices=2 /​dev/​md/​raidData /dev/sda1 /dev/sdb1
 +</​code>​
 +
 +On met à jour la configuration de *mdadm* :
 +<code bash>
 +mdadm --detail --scan >> /​etc/​mdadm.conf
 +</​code>​
 +
 +Formatage du système de fichier des RAID :
 +<code bash>
 +mkfs.ext4 -v -L dataraid /​dev/​md/​raidData
 +mkfs.ext4 -v -L cloudraid /​dev/​md/​raidCloud
 +</​code>​
 +
 +**Scrubbing** : c'est bien de vérifier de temps en temps l'​état du RAID et résoudre les erreurs. Pour lancer un *scrub* :
 +<code bash>
 +echo check > /​sy/​block/​mdX/​md/​sync_action
 +</​code>​
 +
 +On peut ensuite voir le statut de l'​opération avec :
 +<code bash>
 +cat /​proc/​mdstat
 +</​code>​
 +
 +Pour arrêter un *scrub* :
 +<code bash>
 +echo idle > /​sys/​block/​mdX/​md/​sync_action
 +</​code>​
 +
 +Quand le *scrub* est fini, on peut voir le nombre de blocks problématiques (s'il y en a) :
 +<code bash>
 +cat /​sys/​block/​mdX/​md/​mismatch_cnt
 +</​code>​
 +
 +S'il y a des gros problèmes de disques : [[https://​wiki.archlinux.org/​index.php/​RAID#​Removing_devices_from_an_array|Arch wiki : removing devices from an array]].
 +
 +
 +=== Chiffrement avec LUKS ===
 +Préparation des block devices :
 +
 +<code bash>
 +# data
 +cryptsetup open --type plain /​dev/​md/​raidData container --key-file /dev/random
 +dd if=/​dev/​zero of=/​dev/​mapper/​container bs=1M status=progress
 +cryptsetup close container
 +
 +# cloud
 +cryptsetup open --type plain /​dev/​md/​raidCloud container --key-file /dev/random
 +dd if=/​dev/​zero of=/​dev/​mapper/​container bs=1M status=progress
 +cryptsetup close container
 +</​code>​
 +
 +
 +Chiffrement :
 +<code bash>
 +# data
 +cryptsetup -y -v luksFormat /​dev/​md/​raidData
 +cryptsetup open /​dev/​md/​raidData cryptdata
 +mkfs.ext4 /​dev/​mapper/​cryptdata
 +mkdir /data
 +mount /​dev/​mapper/​cryptdata /data
 +
 +# cloud
 +cryptsetup -y -v luksFormat /​dev/​md/​raidCloud
 +cryptsetup open /​dev/​md/​raidCloud cryptcloud
 +mkfs.ext4 /​dev/​mapper/​cryptcloud
 +mkdir /cloud
 +mount /​dev/​mapper/​cryptcloud /cloud
 +</​code>​
 +
 +
 +**Configuration des fichiers de clé** (cf [[https://​wiki.archlinux.org/​index.php/​Dm-crypt/​Device_encryption#​Keyfiles|Arch wiki]]) :
 +
 +Création des fichiers :
 +<code bash>
 +dd bs=512 count=4 if=/​dev/​random of=/​etc/​luks-keys/​cryptdata
 +dd bs=512 count=4 if=/​dev/​random of=/​etc/​luks-keys/​cryptcloud
 +</​code>​
 +
 +Défendre l'​accès de ces fichiers :
 +<code bash>
 +chmod 600 /​etc/​luks-keys/​cryptdata
 +chmod 600 /​etc/​luks-keys/​cryptcloud
 +chmod -R 600 /​etc/​luks-keys/​
 +</​code>​
 +
 +Configurer LUKS pour utiliser un fichier de clé :
 +<code bash>
 +cryptsetup luksAddKey /​dev/​md/​raidData /​etc/​luks-keys/​cryptdata
 +cryptsetup luksAddKey /​dev/​md/​raidCloud /​etc/​luks-keys/​cryptcloud
 +</​code>​
 +
 +Déchiffrer et monter automatiquement les disques au démarrage, il faut modifier deux fichiers.
 +
 +**/​etc/​crypttab** :
 +<code bash>
 +cryptdata ​     UUID=XXX ​         /​etc/​luks-keys/​cryptdata
 +cryptcloud ​    ​UUID=XXX ​         /​etc/​luks-keys/​cryptcloud
 +</​code>​
 +
 +Pour avoir les [[https://​wiki.archlinux.org/​index.php/​Persistent_block_device_naming#​by-uuid|UUID]] en question :
 +<code bash>
 +ls -l /​dev/​disk/​by-uuid
 +</​code>​
 +
 +**/​etc/​fstab** :
 +<code bash>
 +/​dev/​mapper/​cryptdata ​     /data      ext4    rw,​relatime ​  0 2
 +/​dev/​mapper/​cryptcloud ​    /​cloud ​    ​ext4 ​   rw,​relatime ​  0 2
 +</​code>​
 +
 +Pas besoin d'​utiliser de UUID ici, vu que lors du déchiffrement des disques on associe des noms.
autohebergement/chiffrement_des_disques_et_raid.1574596983.txt.gz · Dernière modification: 2021/08/16 14:13 (modification externe)