Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:donnees_stockees_dans_un_systeme_de_fichiers_zfs [Le 20/06/2024, 12:17]
geole [Introduction]
tutoriel:donnees_stockees_dans_un_systeme_de_fichiers_zfs [Le 22/07/2024, 15:21] (Version actuelle)
geole [Utilisation sous windows]
Ligne 1: Ligne 1:
-{{tag>​noble 24.04 stockage_données,​ gros_volumes partage_données}} + 
-{{tag>​tutoriel ​noble zfs chiffrement raid}}+{{tag>​tutoriel ​Noble zfs chiffrement raid}}
 ===== Introduction ​ ===== ===== Introduction ​ =====
 ZFS est un   ​[[:​systeme_de_fichiers#​systemes_de_fichiers_zfs|système de fichiers]] [[https://​fr.wikipedia.org/​wiki/​Open_source|open source ]]pour la gestion de "​[[https://​fr.wikipedia.org/​wiki/​ZFS|très haute capacité de stockage]]"​. \\ ZFS est un   ​[[:​systeme_de_fichiers#​systemes_de_fichiers_zfs|système de fichiers]] [[https://​fr.wikipedia.org/​wiki/​Open_source|open source ]]pour la gestion de "​[[https://​fr.wikipedia.org/​wiki/​ZFS|très haute capacité de stockage]]"​. \\
Ligne 7: Ligne 7:
 Pour toute version ​ antérieure,​ se référer à [[:​utilisateurs/​bcag2/​zfs|ce document.]] Pour toute version ​ antérieure,​ se référer à [[:​utilisateurs/​bcag2/​zfs|ce document.]]
 ===== Pré-requis ===== ===== Pré-requis =====
-Soit disposer d'une version ubuntu ZFS chiffrée[[https://​doc.ubuntu-fr.org/​_media/​tutoriel/​installer_ubuntu_avec_subiquity/​41.png?​w=600&​tok=1d4597|installée]] dans la totalité d'un disque dur pouvant être externe. \\ +Soit disposer d'une version ubuntu ZFS  ​**24.04** ​chiffrée[[https://​doc.ubuntu-fr.org/​_media/​tutoriel/​installer_ubuntu_avec_subiquity/​41.png?​w=600&​tok=1d4597|installée]] dans la totalité d'un disque dur pouvant être externe. \\ 
-Soit disposer d'une version ubuntu 24.04  installée de façon classique dans une partition ​ EXT4 ou BTRFS.\\ +Soit disposer d'une version ubuntu ​**24.04**  ​installée de façon classique dans une partition ​ EXT4 ou BTRFS. 
-Dans ce second cas, il est alors nécessaire d'​ajouter les applications ​ absentes. ​ \\                                                                   +
-  * Installer le paquet ​  ​[[:​cryptsetup|chiffrement]]. \\ +
-  * Installer le paquet ZFS de la version 24.04 disponible en ligne de commandes.<​code bash> sudo apt install zfs-zed</​code>​+
 ===== Création de l'​enveloppe de stockage ===== ===== Création de l'​enveloppe de stockage =====
 Ce tuto montre un cas d'​utilisation en structure sécurisée nécessitant au moins deux partitions avec des données chiffrées.\\ Ce tuto montre un cas d'​utilisation en structure sécurisée nécessitant au moins deux partitions avec des données chiffrées.\\
Ligne 20: Ligne 18:
 ==== Mise  disposition de cet espace disque ==== ==== Mise  disposition de cet espace disque ====
 La mise à disposition pour  l'​utilisateur de cet espace prévu, se fait obligatoirement en ligne de commande.\\ L'​auto-documentation (man zpool create) n'est pas mauvaise mais elle dispose de peu d'​exemples pratiques. ​ \\ Voici la commande à exécuter. La mise à disposition pour  l'​utilisateur de cet espace prévu, se fait obligatoirement en ligne de commande.\\ L'​auto-documentation (man zpool create) n'est pas mauvaise mais elle dispose de peu d'​exemples pratiques. ​ \\ Voici la commande à exécuter.
-<code bash>​sudo zpool create -f -m   /​media/​ZFS -O encryption=on -O keyformat=passepasse ​-O keylocation=prompt ​ -o feature@lz4_compress=enabled MesDonneesPersonnelles raidz /dev/sda18 /dev/sdb11+<code bash>​sudo zpool create -f -m   /​media/​ZFS -O encryption=on -O keyformat=passphrase ​-O keylocation=prompt ​ -o feature@lz4_compress=enabled MesDonneesPersonnelles raidz /dev/sda18 /dev/sdb11
 Enter new passphrase: Enter new passphrase:
 cannot create '​MesDonneesPersonnelles':​ Passphrase too short (min 8).</​code>​ \\ cannot create '​MesDonneesPersonnelles':​ Passphrase too short (min 8).</​code>​ \\
Ligne 26: Ligne 24:
   *  **-m** indique ​ le point de montage à utiliser. J ai choisis **media** ​ à cause des applications snap   *  **-m** indique ​ le point de montage à utiliser. J ai choisis **media** ​ à cause des applications snap
   *  **-O encryption=on** ​ indique Option de chiffrement activée   *  **-O encryption=on** ​ indique Option de chiffrement activée
-  *  **-O keyformat=passepasse** Indique Option ​ de format de la phrase de chiffrement ​   au format lisible+  *  **-O keyformat=passphrase** Indique Option ​ de format de la phrase de chiffrement ​   au format lisible.
   *  **-O keylocation=prompt** indique Option ​ de saisie de la phrase au clavier ​  d ou le choix du format lisible.   *  **-O keylocation=prompt** indique Option ​ de saisie de la phrase au clavier ​  d ou le choix du format lisible.
   *  **-o feature@lz4_compress=enabled** indique option ​ de compression** LZ4** activée.La littérature semble conseiller cette option   *  **-o feature@lz4_compress=enabled** indique option ​ de compression** LZ4** activée.La littérature semble conseiller cette option
Ligne 32: Ligne 30:
 A l'​issue de cette commande réussie, le point de montage **/​media/​ZFS** est automatiquement créé et accessible en écriture. A l'​issue de cette commande réussie, le point de montage **/​media/​ZFS** est automatiquement créé et accessible en écriture.
 ===== Réutilisation de cet espace disque lors d'un nouveau démarrage ===== ===== Réutilisation de cet espace disque lors d'un nouveau démarrage =====
-Le logiciel ZFS étant actuellement en phase expérimentale,​ il n'est pas facile de savoir si l'​**oubli** de rendre disponible auprès de l'​utilisateur ces données **__chiffrées__**,​ est définitif ou sera réparé. \\ Voici deux palliatifs.+Le logiciel ZFS étant actuellement en phase expérimentale,​ il n'est pas facile de savoir si l'​**oubli** de rendre disponible auprès de l'​utilisateur ces données **__chiffrées__**,​ est définitif ou sera réparé. \\ Voici trois palliatifs.
 ==== Solution manuelle ==== ==== Solution manuelle ====
 Lorsque l'​utilisateur se connecte, il doit penser à monter la structure zfs s'il souhaite l'​utiliser. La seule solution est la ligne de commande. C'est simplement: Lorsque l'​utilisateur se connecte, il doit penser à monter la structure zfs s'il souhaite l'​utiliser. La seule solution est la ligne de commande. C'est simplement:
 <code bash>​sudo zfs mount -vl MesDonneesPersonnelles</​code>​ <code bash>​sudo zfs mount -vl MesDonneesPersonnelles</​code>​
 Le mot de déchiffrement sera demandé ​ à l'​écran de l'​utilisateur. Le mot de déchiffrement sera demandé ​ à l'​écran de l'​utilisateur.
-==== Solution automatique ====+==== Solution standard==== 
 +Un service **utilisateur** demande la valeur ​ de la clé de chiffrement au moment de la connexion de l'​utilisateur. 
 +=== Le script de montage === 
 +<code bash>​cat<<'​EOF'>​$HOME/​ZFS.sh 
 +#​!/​bin/​bash 
 +Data=MesDonneesPersonnelles 
 +Statut=$(zpool list  $Data |tail -1 ) 
 +if [[ !  $Statut =~  "​$Data" ​ ]] ; then  
 +   ​echo ​ Importation des données par  le service USER de ZFS   
 +   sudo zpool export ​ $Data ### Pour se prémunir des noms de partitions des disques externes susceptible de changer de valeur si besoin 
 +   sudo zpool import -f $Data 
 +fi 
 +sudo zfs set mountpoint=/​media/​$Data $Data 
 +for (( i=1; i < 9; i++ ));  do  
 +    echo  itération-$i dans le service USER de ZFS   
 +    Statut=$(zfs get mounted ​ $Data |tail -1 ) 
 +    if [[  $Statut =~  "​no" ​ ]] ; then  
 +       ​ret=`DISPLAY=:​1 zenity --entry --title="​Montage de la partition $Data ($i/​8)."​ --text "​veuillez fournir la phrase de déchiffrement de $Data."​ ` 
 +       sleep 2 
 +       sudo zfs mount -l $Data <<<​$ret 
 +    else i=10     
 +    fi    
 +done 
 +if  [[ ! $Statut =~  "​yes" ​ ]] ; then 
 +    DISPLAY=:1 zenity --error --text "La partition $Data n'est pas disponible; veuillez investiguer!"​ 
 +fi 
 +EOF 
 +sleep 1 
 +chmod +x /​$HOME/​ZFS.sh 
 +cat $HOME/​ZFS.sh 
 +$HOME/​ZFS.sh</​code>​ 
 +=== Le script d'​automatisation === 
 +<code bash>​mkdir -pv $HOME/​.config/​systemd/​user 
 +cat <<'​EOF'>​$HOME/​.config/​systemd/​user/​ZFS.service 
 +[Unit] 
 +Description=Montage de la partition de données personnelles. 
 +DefaultDependencies=no 
 +[Service] 
 +Type=simple 
 +ExecStartPre=echo ​ Montage de la partition de données personnelles ZFS.  
 +ExecStart=/​home/​%u/​ZFS.sh 
 +ExecStopPost=echo Le ontage de la partition de données personnelles ZFS  est terminé. 
 +StandardOutput=journal+console 
 +[Install] 
 +WantedBy=default.target 
 +EOF 
 +sleep 1 
 +systemctl ​ --user stop ZFS.service ; systemctl --user ​ disable ZFS.service ; systemctl --user daemon-reload;​  
 +systemctl --user enable ZFS.service ; systemctl --user start ZFS.service  
 +systemctl --user --no-pager -l status ZFS.service</​code>​  
 +==== Solution automatique ​alternative====
 **La valeur de la clé de déchiffrement doit être dans un fichier**. Il  existe trois solutions: ​ **La valeur de la clé de déchiffrement doit être dans un fichier**. Il  existe trois solutions: ​
   - Le logiciel ​ est déjà chiffré. Dans ce cas  la valeur de la clé de chiffrement ​ peut être dans un fichier stocké sous** /root**. Solution aisément installable.   - Le logiciel ​ est déjà chiffré. Dans ce cas  la valeur de la clé de chiffrement ​ peut être dans un fichier stocké sous** /root**. Solution aisément installable.
   - Le logiciel n'est pas chiffré, La clé de chiffrement ​ peut être dans une clé usb que l'​utilisateur branche au moment de se connecter et enlève aussitôt la connexion réalisée. C'est la solution privilégiée par les concepteurs. Solution aisément installable avec un risque de  perdre la clé ou qu'​elle soit lue par une  personne non-habilitée.   - Le logiciel n'est pas chiffré, La clé de chiffrement ​ peut être dans une clé usb que l'​utilisateur branche au moment de se connecter et enlève aussitôt la connexion réalisée. C'est la solution privilégiée par les concepteurs. Solution aisément installable avec un risque de  perdre la clé ou qu'​elle soit lue par une  personne non-habilitée.
-  - Un service demande à l'​utilisateur la valeur ​ de la clé de chiffrement,​ la stocke dans un fichier, ouvre la structure chiffrée et détruit le contenu du fichier. Cela ne laisse que quelques instants cette valeur disponible à la vue de tout le monde.... C'est un développement personnel susceptible d'​être amélioré par qui connait ​mieux. \\ Il est basé sur  les services de [[:/​systemd|systemd]] qui  semblent destinés à se passer d'​utilisateur. Le dialogue à l'​écran étant inconnu.+  - Un service ​**système** ​demande à l'​utilisateur la valeur ​ de la clé de chiffrement,​ la stocke dans un fichier, ouvre la structure chiffrée et détruit le contenu du fichier. Cela ne laisse que quelques instants cette valeur disponible à la vue de tout le monde.... C'est un développement personnel susceptible d'​être amélioré par qui connaît ​mieux. \\ Il est basé sur  les services de [[:/​systemd|systemd]] qui  semblent destinés à se passer d'​utilisateur. Le dialogue à l'​écran étant inconnu.
  
 Pensez à devenir administrateur en frappant **sudo -i**.  Pensez à devenir administrateur en frappant **sudo -i**. 
Ligne 258: Ligne 306:
 sudo zpool import MesDonneesPersonnelles</​code>​ sudo zpool import MesDonneesPersonnelles</​code>​
 Il était probablement inutile de bricoler pour retrouver la lettre C et les numéros 11 et 12. Il était probablement inutile de bricoler pour retrouver la lettre C et les numéros 11 et 12.
 +==== Importation dans une version 22.04 ====
 +<code bash>​sudo apt install zfs-zed --simulate ​
 +Lecture des listes de paquets... Fait
 +Construction de l'​arbre des dépendances... Fait
 +Lecture des informations d'​état... Fait      ​
 +zfs-zed est déjà la version la plus récente (2.1.5-1ubuntu6~22.04.4).
 +zfs-zed passé en « installé manuellement ».
 +0 mis à jour, 0 nouvellement installés, 0 à enlever et 3 non mis à jour.
 +
 +sudo zpool import -f Commun
 +This pool uses the following feature(s) not supported by this system:
 + com.klarasystems:​vdev_zaps_v2
 +cannot import '​Commun':​ unsupported version or feature</​code>​
 +Comme une fonctionnalité activée ne peut pas s'​invalider,​ il aurait fallu créer l'​espace en indiquant de ne pas utiliser la fonctionnalité!
 +
 ===== Utilisation sous windows ===== ===== Utilisation sous windows =====
 Quelques contraintes rencontrées:​ Quelques contraintes rencontrées:​
Ligne 330: Ligne 393:
 PS C:​\></​code>​ PS C:​\></​code>​
  
 +En résumé: La clé de chiffrement doit être saisie au clavier, ​ il faut exporter sous ubuntu et importer sous windows ​ qui pourra modifier les fichiers créés par ubuntu, puis exporter sous  windows et importer sous ubuntu qui pourra modifier les fichiers créés par windows. 
 +===== Annexes ===== 
 +  * [[https://​www.recuperation-donnees-raid.com/​raid-z|Présentation rapide du RAIDZ]] 
 +  * [[https://​www.raidz-calculator.com/​raidz-types-reference.aspx|Detailled presentation of RAIDZ]]
  
  
  • tutoriel/donnees_stockees_dans_un_systeme_de_fichiers_zfs.1718878627.txt.gz
  • Dernière modification: Le 20/06/2024, 12:17
  • par geole