Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris 11.1 : Systèmes de fichiers ZFS Oracle Solaris 11.1 Information Library (Français) |
1. Système de fichiers Oracle Solaris ZFS (introduction)
2. Mise en route d'Oracle Solaris ZFS
3. Gestion des pools de stockage Oracle Solaris ZFS
4. Gestion des composants du pool root ZFS
5. Gestion des systèmes de fichiers Oracle Solaris ZFS
Gestion des systèmes de fichiers ZFS (présentation)
Création, destruction et renommage de systèmes de fichiers ZFS
Création d'un système de fichiers ZFS
Destruction d'un système de fichiers ZFS
Modification du nom d'un système de fichiers ZFS
Présentation des propriétés ZFS
Propriétés ZFS natives en lecture seule
Propriétés ZFS natives définies
Propriétés ZFS définies par l'utilisateur
Envoi de requêtes sur les informations des systèmes de fichiers ZFS
Affichage des informations de base des systèmes ZFS
Création de requêtes ZFS complexes
Envoi de requêtes sur les propriétés ZFS
Envoi de requête sur les propriétés ZFS pour l'exécution de scripts
Montage de système de fichiers ZFS
Gestion des points de montage ZFS
Points de montage automatiques
Montage de système de fichiers ZFS
Utilisation de propriétés de montage temporaires
Démontage des systèmes de fichiers ZFS
Activation et annulation du partage des systèmes de fichiers ZFS
Syntaxe de partage ZFS héritée
Nouvelle syntaxe de partage ZFS
Partage ZFS avec héritage par propriété
Héritage de partage ZFS dans les anciens pools
Affichage d'informations de partage ZFS
Modification des valeurs de propriété d'un partage ZFS
Publication et annulation de publication de partages ZFS
Partage de fichiers ZFS au sein d'une zone non globale
Problèmes de migration/transition de partage ZFS
Dépannage des problèmes de partage de système de fichiers ZFS
Définition des quotas et réservations ZFS
Définitions de quotas sur les systèmes de fichiers ZFS
Définition de quotas d'utilisateurs et de groupes sur un système de fichiers ZFS
Définition de réservations sur les systèmes de fichiers ZFS
Chiffrement des systèmes de fichiers ZFS
Modification des clés d'un système de fichiers ZFS chiffré
Gestion des clés de chiffrement ZFS
Autorisations de délégation d'opérations sur les clés ZFS
Montage d'un système de fichiers ZFS chiffré
Mise à niveau des systèmes de fichiers ZFS chiffrés
Interactions entre les propriétés de compression, de suppression des doublons et de chiffrement ZFS
Migration de systèmes de fichiers ZFS
Migration d'un système de fichiers vers un système de fichiers ZFS
Dépannage des migrations de systèmes de fichiers ZFS
Mise à niveau des systèmes de fichiers ZFS
6. Utilisation des instantanés et des clones ZFS Oracle Solaris
7. Utilisation des ACL et des attributs pour protéger les fichiers Oracle Solaris ZFS
8. Administration déléguée de ZFS dans Oracle Solaris
9. Rubriques avancées Oracle Solaris ZFS
10. Dépannage d'Oracle Solaris ZFS et récupération de pool
11. Archivage des instantanés et récupération du pool root
12. Pratiques recommandées pour Oracle Solaris ZFS
Le chiffrement se définit comme le processus de codage de données à des fins de confidentialité ; le propriétaire des données nécessite une clé pour pouvoir accéder aux données codées. Voici les avantages du chiffrement ZFS :
Le chiffrement ZFS est intégré à l'ensemble des commandes ZFS. A l'instar d'autres opérations ZFS, les opérations de chiffrement telles que la modification et le renouvellement de clés sont effectuées en ligne.
Vous pouvez utiliser vos pools de stockage existants pour autant qu'ils aient été mis à niveau. Vous avez la possibilité de chiffrer des systèmes de fichiers spécifiques.
Le chiffrement ZFS peut être transmis aux systèmes de fichiers descendants. La gestion des clés peut être déléguée par le biais de l'administration déléguée de ZFS.
Les données sont chiffrées à l'aide de la norme AES (Advanced Encryption Standard, Norme de chiffrement avancé) avec des longueurs de clé de 128, 192 et 256 dans les modes de fonctionnement CCM et GCM.
Le chiffrement ZFS utilise la structure cryptographique Oracle Solaris, ce qui lui donne automatiquement accès aux éventuelles accélérations matérielles et implémentations logicielles optimisées disponibles des algorithmes de chiffrement.
A l'heure actuelle, vous ne pouvez pas chiffrer un système de fichiers root ZFS ou autres composants de système d'exploitation, tels que le répertoire /var, même s'il s'agit d'un système de fichiers distinct.
Vous pouvez définir une stratégie de chiffrement lors de la création d'un système de fichiers ZFS, mais cette stratégie ne peut pas être modifiée. Par exemple, la propriété de chiffrement est activée lors de la création du système de fichiers tank/home/darren. La stratégie de chiffrement consiste à demander une phrase de passe, qui doit comporter 8 caractères minimum.
# zfs create -o encryption=on tank/home/darren Enter passphrase for 'tank/home/darren': xxxxxxx Enter again: xxxxxxxx
Assurez-vous que le chiffrement est activé sur le système de fichiers. Par exemple :
# zfs get encryption tank/home/darren NAME PROPERTY VALUE SOURCE tank/home/darren encryption on local
L'algorithme de chiffrement par défaut est aes-128-ccm lorsque la valeur de chiffrement d'un système de fichiers est on.
Une clé d'encapsulation est utilisée pour chiffrer les clés de chiffrement effectives des données. La clé d'encapsulation est transmise de la commande zfs au noyau, comme dans l'exemple ci-dessus au moment de la création du système de fichiers chiffré. Une clé d'encapsulation peut se trouver dans un fichier (au format raw ou hexadécimal) ou être dérivée d'une phrase de passe.
Le format et l'emplacement de la clé d'encapsulation sont spécifiés dans la propriété keysource de la manière suivante :
keysource=format,location
Formats possibles :
raw : octets bruts de la clé
hex : chaîne de clé hexadécimale
passphrase : chaîne de caractères générant une clé
Emplacements possibles :
prompt – vous êtes invité à saisir une clé ou une phrase de passe lorsque le système de fichiers est créé ou monté
file:///filename – Emplacement dans le système de fichiers de la clé ou phrase de passe.
pkcs11 – URI décrivant l'emplacement d'une clé ou d'une phrase de passe dans un jeton PKCS#11
https://location – Emplacement sur le serveur sécurisé de la clé ou phrase de passe. Le transport d'informations de clé non chiffrées à l'aide de cette méthode n'est pas recommandé. Un GET sur l'URL retourne seulement la valeur de clé ou la phrase de passe, en fonction de ce qui a été demandé dans la partie format de la propriété keysource.
Lors de l'utilisation d'un localisateur https:// pour la keysource, le certificat que ce serveur présente doit être sécurisé par libcurl et OpenSSL. Ajoutez votre propre ancre sécurisée ou certificat autosigné au magasin de certificats dans /etc/openssl/certs. Placez le certificat de format PEM dans le répertoire /etc/certs/CA et exécutez la commande suivante :
# svcadm refresh ca-certificates
Si le format spécifié par keysource est passphrase, la clé d'encapsulation est dérivée de la passe de phrase. Dans le cas contraire, la valeur de la propriété keysource pointe vers la clé d'encapsulation effective, sous forme d'octets bruts ou au format hexadécimal. Vous pouvez indiquer que la phrase de passe doit être stockée dans un fichier ou dans un flux d'octets bruts que l'utilisateur est invité à saisir, ce qui n'est probablement adapté qu'à l'écriture de scripts.
Lorsque les valeurs de la propriété keysource d'un système de fichiers correspondent à passphrase, la clé d'encapsulation est dérivée de la phrase de passe à l'aide de PKCS#5 PBKD2 et d'un salt généré de façon aléatoire pour chaque système de fichiers. Cela signifie que la même phrase de passe génère une clé d'encapsulation différente lorsqu'elle est utilisée sur des systèmes de fichiers descendants.
Les systèmes de fichiers descendants héritent de la stratégie de chiffrement du système de fichiers parent, et celle-ci ne peut pas être supprimée. Par exemple :
# zfs snapshot tank/home/darren@now # zfs clone tank/home/darren@now tank/home/darren-new Enter passphrase for 'tank/home/darren-new': xxxxxxx Enter again: xxxxxxxx # zfs set encryption=off tank/home/darren-new cannot set property for 'tank/home/darren-new': 'encryption' is readonly
Si vous devez copier ou migrer des systèmes de fichiers ZFS chiffrés ou non chiffrés, tenez compte des points suivants :
A l'heure actuelle, vous ne pouvez pas envoyer un flux de jeu de données non chiffré et le recevoir en tant que flux chiffré, même si le chiffrement est activé sur le jeu de données du pool de réception.
Vous pouvez utiliser les commandes suivantes pour migrer des données non chiffrées vers un pool ou système de données où le chiffrement est activé :
cp -r
find | cpio
tar
rsync
Un flux de système de fichiers chiffré répliqué peut être reçu sur un système de fichiers chiffré et les données restent chiffrées. Pour plus d'informations, reportez-vous à l'Exemple 5-4.
Vous pouvez modifier la clé d'encapsulation d'un système de fichiers chiffré à l'aide de la commande zfs key -c. La clé d'encapsulation existante doit avoir été chargée auparavant : soit lors de l'initialisation, soit par chargement explicite de la clé du système de fichiers (zfs key -l), soit par montage du système de fichiers (zfs mount filesystem). Par exemple :
# zfs key -c tank/home/darren Enter new passphrase for 'tank/home/darren': xxxxxxxx Enter again: xxxxxxxx
Dans l'exemple suivant, la clé d'encapsulation est modifiée et la valeur de la propriété keysource est modifiée pour indiquer que la clé d'encapsulation provient d'un fichier.
# zfs key -c -o keysource=raw,file:///media/stick/key tank/home/darren
La clé de chiffrement des données d'un système de fichiers chiffré peut être modifiée à l'aide de la commande zfs key -K, mais la nouvelle clé de chiffrement est uniquement utilisée pour les nouvelles données écrites. Cette fonctionnalité peut être utilisée pour assurer la conformité avec les directives NIST 800-57 relatives à la limitation dans le temps de la clé de chiffrement de données. Par exemple :
# zfs key -K tank/home/darren
Dans l'exemple ci-dessus, la clé de chiffrement des données n'est ni visible ni directement gérée par vous. En outre, la délégation keychange est requise pour effectuer une opération de modification de clé.
Les algorithmes de chiffrement suivants sont disponibles :
aes-128-ccm, aes-192-ccm, aes-256-ccm
aes-128-gcm, aes-192-gcm, aes-256-gcm
La propriété keysource ZFS identifie le format et l'emplacement de la clé qui encapsule les clés de chiffrement des données du système de fichiers. Par exemple :
# zfs get keysource tank/home/darren NAME PROPERTY VALUE SOURCE tank/home/darren keysource passphrase,prompt local
La propriété rekeydate ZFS identifie la date de la dernière opération zfs key -K. Par exemple :
# zfs get rekeydate tank/home/darren NAME PROPERTY VALUE SOURCE tank/home/darren rekeydate Wed Jul 25 16:54 2012 local
Si les propriétés creation et rekeydate d'un système de fichiers chiffré possèdent la même valeur, cela signifie que le système de fichiers n'a jamais fait l'objet d'un renouvellement de clés via une opération zfs key -K.
Les clés de chiffrement ZFS peuvent être gérées de différentes manières, selon vos besoins, sur le système local ou à distance, si un emplacement centralisé est nécessaire.
Localement – Les exemples ci-dessus montrent que la clé d'encapsulation peut être une invite de phrase de passe ou une clé brute stockée dans un fichier du système local.
A distance – Les informations de clé peuvent être stockées à distance en utilisant un système de gestion des clés centralisé comme Oracle Key Manager ou un service Web qui prend en charge une simple demande GET sur un URI http ou https. Les informations de clé d'Oracle Key Manager sont accessibles à un système Oracle Solaris à l'aide d'un jeton PKCS#11.
Pour plus d'informations sur la gestion des clés de chiffrement ZFS :
http://www.oracle.com/technetwork/articles/servers-storage-admin/manage-zfs-encryption-1715034.html
Pour plus d'informations sur l'utilisation d'Oracle Key Manager pour gérer les informations de clé :
http://docs.oracle.com/cd/E24472_02/
Passez en revue les descriptions d'autorisations relatives à la délégation d'opérations sur les clés suivantes :
Le chargement et le déchargement d'un système de fichiers à l'aide des commandes zfs key -l et zfs key -u requièrent l'autorisation key. Dans la plupart des cas, l'autorisation mount est également requise.
La modification de la clé d'un système de fichiers à l'aide des commandes zfs key -c et zfs key -K requiert l'autorisation keychange.
Envisagez de déléguer des autorisations distinctes pour l'utilisation (chargement ou déchargement) et la modification de clés, de manière à mettre en place un modèle de gestion des clés à deux personnes. Par exemple, déterminez les utilisateurs qui pourront utiliser les clés et ceux qui seront autorisés à les modifier. Vous pouvez aussi spécifier que toute modification de clé requiert la présence des deux utilisateurs. Ce modèle vous permet également de bâtir un système de dépôt de clé (key escrow).
Tenez compte des points suivants lorsque vous tentez de monter un système de fichiers ZFS chiffré :
Si une clé de système de fichiers chiffré n'est pas disponible lors de l'initialisation, le système de fichiers n'est pas monté automatiquement. Par exemple, un système de fichiers dont la stratégie de chiffrement est définie sur passphrase,prompt ne sera pas monté lors de l'initialisation car le processus d'initialisation ne s'interrompra pas pour afficher une invite de saisie de phrase de passe.
Si vous souhaitez monter un système de fichiers avec une stratégie de chiffrement définie sur passphrase,prompt lors de l'initialisation, vous devez explicitement le monter à l'aide de la commande zfs mount et spécifier la phrase de passe ou utiliser la commande zfs key -l pour être invité à saisir la clé après l'initialisation du système.
Par exemple :
# zfs mount -a Enter passphrase for 'tank/home/darren': xxxxxxxx Enter passphrase for 'tank/home/ws': xxxxxxxx Enter passphrase for 'tank/home/mark': xxxxxxxx
Si la propriété keysource d'un système de fichiers chiffré pointe vers un fichier appartenant à un autre système de fichiers, l'ordre de montage des systèmes de fichiers peut déterminer si le système de fichiers est monté lors de l'initialisation ou non, en particulier si le fichier est placé sur un média amovible.
Avant de mettre à niveau un système Solaris 11 vers Solaris 11.1, veillez à ce que les systèmes de fichiers chiffrés soient montés. Effectuez le montage des systèmes de fichiers chiffrés et fournissez les phrases de passe si vous y êtes invité.
# zfs mount -a Enter passphrase for 'pond/amy': xxxxxxxx Enter passphrase for 'pond/rory': xxxxxxxx # zfs mount | grep pond pond /pond pond/amy /pond/amy pond/rory /pond/rory
Effectuez ensuite une mise à niveau des systèmes de fichiers chiffrés.
# zfs upgrade -a
Si vous tentez de mettre à niveau des systèmes de fichiers ZFS chiffrés qui ne sont pas montés, un message semblable à celui-ci s'affiche :
# zfs upgrade -a cannot set property for 'pond/amy': key not present
En outre, la sortie de zpool status affiche parfois des données endommagées.
# zpool status -v pond . . . pond/amy:<0x1> pond/rory:<0x1>
Si les erreurs mentionnées ci-dessus se produisent, effectuez un remontage des systèmes de fichiers chiffrés comme indiqué ci-dessus. Ensuite, effacez et nettoyez les erreurs de pool.
# zpool scrub pond # zpool clear pond
Pour plus d'informations sur la mise à niveau des systèmes de fichiers, reportez-vous à Mise à niveau des systèmes de fichiers ZFS.
Tenez compte des points suivants lorsque vous utilisez les propriétés de compression, de suppression des doublons et de chiffrement ZFS.
Lorsqu'un fichier est écrit, les données sont compressées, chiffrées et la somme de contrôle est vérifiée. Lorsque cela est possible, les données sont ensuite dédupliquées.
Lorsqu'un fichier est lu, la somme de contrôle est vérifiée et les données sont déchiffrées. Si nécessaire, les données sont ensuite décompressées.
Si la propriété dedup est activée sur un système de fichiers chiffré qui est également cloné et si les commandes zfs key -K ou zfs clone -K n'ont pas été utilisées sur les clones, les données de tous les clones sont dédupliquées, lorsque cela est possible.
Exemple 5-1 Chiffrement d'un système de fichiers ZFS à l'aide d'une clé raw
Dans l'exemple suivant, une clé de chiffrement aes-256-ccm est générée à l'aide de la commande pktool et écrite dans un fichier /cindykey.file.
# pktool genkey keystore=file outkey=/cindykey.file keytype=aes keylen=256
Le fichier /cindykey.file est ensuite spécifié lorsque le système de fichiers tank/home/cindy est créé.
# zfs create -o encryption=aes-256-ccm -o keysource=raw,file:///cindykey.file tank/home/cindy
Exemple 5-2 Chiffrement d'un système de fichiers ZFS à l'aide d'un autre algorithme de chiffrement
Vous pouvez créer un pool de stockage ZFS et faire en sorte que tous les systèmes de fichiers du pool de stockage héritent d'un algorithme de chiffrement. Dans l'exemple qui suit, le pool users est créé et le système de fichiers users/home est créé et chiffré à l'aide d'une phrase de passe. L'algorithme de chiffrement par défaut est aes-128-ccm.
Le système de fichiers users/home/mark est ensuite créé et chiffré à l'aide de l'algorithme de chiffrement aes-256-ccm.
# zpool create -O encryption=on users mirror c0t1d0 c1t1d0 mirror c2t1d0 c3t1d0 Enter passphrase for 'users': xxxxxxxx Enter again: xxxxxxxx # zfs create users/home # zfs get encryption users/home NAME PROPERTY VALUE SOURCE users/home encryption on inherited from users # zfs create -o encryption=aes-256-ccm users/home/mark # zfs get encryption users/home/mark NAME PROPERTY VALUE SOURCE users/home/mark encryption aes-256-ccm local
Exemple 5-3 Clonage d'un système de fichiers ZFS chiffré
Si le système de fichiers clone hérite de la propriété keysource du même système de fichiers que son instantané d'origine, une nouvelle propriété keysource n'est pas nécessaire, et vous n'êtes pas invité à saisir une nouvelle phrase de passe lorsque keysource=passphrase,prompt . La même propriété keysource est utilisée pour le clone. Par exemple :
Par défaut, vous n'êtes pas invité à saisir une clé lors du clonage d'un descendant d'un système de fichiers chiffré.
# zfs create -o encryption=on tank/ws Enter passphrase for 'tank/ws': xxxxxxxx Enter again: xxxxxxxx # zfs create tank/ws/fs1 # zfs snapshot tank/ws/fs1@snap1 # zfs clone tank/ws/fs1@snap1 tank/ws/fs1clone
Si vous souhaitez créer une nouvelle clé pour le système de fichiers clone, utilisez la commande zfs clone -K.
Si vous clonez un système de fichiers chiffré et non un système de fichiers chiffré descendant, vous êtes invité à fournir une nouvelle clé. Par exemple :
# zfs create -o encryption=on tank/ws Enter passphrase for 'tank/ws': xxxxxxxx Enter again: xxxxxxxx # zfs snapshot tank/ws@1 # zfs clone tank/ws@1 tank/ws1clone Enter passphrase for 'tank/ws1clone': xxxxxxxx Enter again: xxxxxxxx
Exemple 5-4 Envoi et réception d'un système de fichiers ZFS chiffré
Dans l'exemple suivant, l'instantané tank/home/darren@snap1 est créé à partir du système de fichiers chiffré /tank/home/darren. Ensuite, l'instantané est envoyé vers bpool/snaps avec la propriété de chiffrement activée, si bien que les données résultantes reçues sont chiffrées. Toutefois, le flux tank/home/darren@snap1 n'est pas chiffré pendant le processus d'envoi.
# zfs get encryption tank/home/darren NAME PROPERTY VALUE SOURCE tank/home/darren encryption on local # zfs snapshot tank/home/darren@snap1 # zfs get encryption bpool/snaps NAME PROPERTY VALUE SOURCE bpool/snaps encryption on inherited from bpool # zfs send tank/home/darren@snap1 | zfs receive bpool/snaps/darren1012 # zfs get encryption bpool/snaps/darren1012 NAME PROPERTY VALUE SOURCE bpool/snaps/darren1012 encryption on inherited from bpool
Dans ce cas, une nouvelle clé est automatiquement générée pour le système de fichiers chiffré reçu.