luks
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
luks [2018/10/03 19:00] – [Chiffrer un disque dur externe] simon | luks [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== LUKS ====== | ||
- | <WRAP center round important 60%> | ||
- | TODO: Relire et remettre de l' | ||
- | </ | ||
- | |||
- | ===== Chiffrer un deuxième disque dur ===== | ||
- | On peut facilement configurer le chiffrement avec LUKS lors de l' | ||
- | |||
- | Une fois le disque identifié (avec [[fdisk]], comme plus bas), on peut le chiffrer : | ||
- | <code bash> | ||
- | # cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha256 /dev/sda1 | ||
- | |||
- | WARNING! | ||
- | ======== | ||
- | Cette action écrasera définitivement les données sur /dev/sda1. | ||
- | |||
- | Are you sure? (Type uppercase yes): YES | ||
- | Saisissez la phrase secrète : | ||
- | Vérifiez la phrase secrète : | ||
- | </ | ||
- | |||
- | Vérification : | ||
- | <code bash> | ||
- | # cryptsetup luksDump /dev/sda1 | ||
- | LUKS header information for /dev/sda1 | ||
- | |||
- | Version: | ||
- | Cipher name: aes | ||
- | Cipher mode: | ||
- | Hash spec: | ||
- | Payload offset: | ||
- | MK bits: 512 | ||
- | MK digest: | ||
- | MK salt: 3f fd 91 5f c6 02 e8 8e 38 b8 05 bc 83 a7 e2 26 | ||
- | 65 0a 07 88 02 38 da 73 db cb 0c 8e ba c8 8c b9 | ||
- | MK iterations: 173750 | ||
- | UUID: cff610dd-3207-472f-bdd9-dbaf102958a9 | ||
- | |||
- | Key Slot 0: ENABLED | ||
- | Iterations: | ||
- | Salt: | ||
- | 15 d1 65 c8 c6 70 b2 1d c4 39 94 fb 62 26 85 80 | ||
- | Key material offset: 8 | ||
- | AF stripes: | ||
- | Key Slot 1: DISABLED | ||
- | Key Slot 2: DISABLED | ||
- | Key Slot 3: DISABLED | ||
- | Key Slot 4: DISABLED | ||
- | Key Slot 5: DISABLED | ||
- | Key Slot 6: DISABLED | ||
- | Key Slot 7: DISABLED | ||
- | </ | ||
- | |||
- | Il faut maintenant créer une partition : | ||
- | <code bash> | ||
- | # cryptsetup luksOpen /dev/sda1 data | ||
- | Saisissez la phrase secrète pour / | ||
- | |||
- | # ls -l / | ||
- | total 0 | ||
- | lrwxrwxrwx 1 root root 7 nov 2 21:42 alt--simon--vg-home -> ../dm-3 | ||
- | lrwxrwxrwx 1 root root 7 nov 2 21:42 alt--simon--vg-root -> ../dm-1 | ||
- | lrwxrwxrwx 1 root root 7 nov 2 21:42 alt--simon--vg-swap_1 -> ../dm-2 | ||
- | crw------- 1 root root 10, 236 nov 2 21:42 control | ||
- | lrwxrwxrwx 1 root root 7 nov 2 22:28 data -> ../dm-4 | ||
- | lrwxrwxrwx 1 root root 7 nov 2 21:42 nvme0n1p3_crypt -> ../dm-0 | ||
- | </ | ||
- | |||
- | <code bash> | ||
- | # mkfs.ext4 -m 0 -L data / | ||
- | mke2fs 1.43.4 (31-Jan-2017) | ||
- | En train de créer un système de fichiers avec 122095616 4k blocs et 30531584 i-noeuds. | ||
- | UUID de système de fichiers=33ac1c64-3173-457e-a7c1-25c7ad35e161 | ||
- | Superblocs de secours stockés sur les blocs : | ||
- | 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, | ||
- | 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, | ||
- | 102400000 | ||
- | |||
- | Allocation des tables de groupe : complété | ||
- | Écriture des tables d' | ||
- | Création du journal (262144 blocs) : complété | ||
- | Écriture des superblocs et de l' | ||
- | fichiers : complété | ||
- | </ | ||
- | |||
- | Créer le point de montage et monter le disque : | ||
- | <code bash> | ||
- | # mkdir /mnt/data | ||
- | |||
- | # mount -t ext4 -o noatime / | ||
- | </ | ||
- | |||
- | ===== Chiffrer un disque dur externe ===== | ||
- | |||
- | On repère le disque avec [[fdisk]] : | ||
- | <code bash> | ||
- | $ sudo fdisk -l | ||
- | (...) | ||
- | Disque /dev/sdc : 1,8 TiB, 2000365289472 octets, | ||
- | Unités : secteur de 1 × 512 = 512 octets | ||
- | Taille de secteur (logique / physique) : | ||
- | taille d'E/S (minimale / optimale) : | ||
- | Type d' | ||
- | Identifiant de disque : 0B31EF05-5462-40FF-B947-C7423EFAB8D2 | ||
- | |||
- | Périphérique Début | ||
- | / | ||
- | </ | ||
- | |||
- | Chiffrer le disque dur : | ||
- | <code bash> | ||
- | # cryptsetup luksFormat /dev/sdc1 | ||
- | </ | ||
- | |||
- | J'ai voulu faire ça mais il y a des WARNINGS : | ||
- | <code bash> | ||
- | # cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha256 /dev/sdc1 | ||
- | WARNING: Device /dev/sdc1 already contains a ' | ||
- | WARNING: Device /dev/sdc1 already contains a ' | ||
- | |||
- | WARNING! | ||
- | ======== | ||
- | Cette action écrasera définitivement les données sur /dev/sdc1. | ||
- | |||
- | Are you sure? (Type uppercase yes): no | ||
- | Opération interrompue. | ||
- | </ | ||
- | |||
- | J'ai fait un formatage un peu " | ||
- | <code bash> | ||
- | $ sudo dd if=/ | ||
- | 488370433+0 enregistrements lus | ||
- | 488370432+0 enregistrements écrits | ||
- | 2000365289472 octets (2,0 TB, 1,8 TiB) copiés, 199997 s, 10,0 MB/s | ||
- | </ | ||
- | |||
- | <code bash> | ||
- | $ sudo fdisk -l | ||
- | Disque /dev/sdc : 1,8 TiB, 2000365289472 octets, | ||
- | Unités : secteur de 1 × 512 = 512 octets | ||
- | Taille de secteur (logique / physique) : | ||
- | taille d'E/S (minimale / optimale) : | ||
- | </ | ||
- | |||
- | <code bash> | ||
- | $ sudo lsblk | ||
- | NAME | ||
- | (...) | ||
- | sdc 8:32 | ||
- | </ | ||
- | |||
- | Création d'une nouvelle partition : | ||
- | <code bash> | ||
- | $ sudo fdisk /dev/sdc | ||
- | |||
- | Bienvenue dans fdisk (util-linux 2.32.1). | ||
- | Les modifications resteront en mémoire jusqu' | ||
- | Soyez prudent avant d' | ||
- | |||
- | Le périphérique ne contient pas de table de partitions reconnue. | ||
- | Création d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0xff8426b0. | ||
- | |||
- | Commande (m pour l' | ||
- | Type de partition | ||
- | | ||
- | | ||
- | Sélectionnez (p par défaut) : p | ||
- | Numéro de partition (1-4, 1 par défaut) : 1 | ||
- | Premier secteur (2048-3906963455, | ||
- | Dernier secteur, +secteurs ou +taille{K, | ||
- | |||
- | Une nouvelle partition 1 de type « Linux » et de taille 1,8 TiB a été créée. | ||
- | |||
- | Commande (m pour l' | ||
- | La table de partitions a été altérée. | ||
- | Appel d' | ||
- | Synchronisation des disques. | ||
- | </ | ||
- | |||
- | Vérification: | ||
- | <code bash> | ||
- | $ sudo lsblk | ||
- | (...) | ||
- | sdc 8:32 | ||
- | └─sdc1 | ||
- | </ | ||
- | |||
- | **Chiffrer la partition sdc1** : | ||
- | <code bash> | ||
- | $ sudo cryptsetup -v -y -c aes-xts-plain64 -s 512 -h sha512 -i 5000 --use-random luksFormat /dev/sdc1 | ||
- | |||
- | WARNING! | ||
- | ======== | ||
- | Cette action écrasera définitivement les données sur /dev/sdc1. | ||
- | |||
- | Are you sure? (Type uppercase yes): YES | ||
- | Saisissez la phrase secrète pour / | ||
- | Vérifiez la phrase secrète : | ||
- | Key slot 0 created. | ||
- | Opération réussie. | ||
- | </ | ||
- | |||
- | Vérification: | ||
- | <code bash> | ||
- | $ sudo cryptsetup luksDump /dev/sdc1 | ||
- | LUKS header information for /dev/sdc1 | ||
- | |||
- | Version: | ||
- | Cipher name: aes | ||
- | Cipher mode: | ||
- | Hash spec: | ||
- | Payload offset: | ||
- | MK bits: 512 | ||
- | MK digest: | ||
- | MK salt: 94 97 d0 42 34 f3 20 eb f0 72 76 3d 90 00 72 2b | ||
- | d2 29 18 aa 36 fd 22 95 b0 0f 0c 00 2a cd d7 b8 | ||
- | MK iterations: 112027 | ||
- | UUID: a329d451-fbd0-4a40-9270-896e64472208 | ||
- | |||
- | Key Slot 0: ENABLED | ||
- | Iterations: | ||
- | Salt: | ||
- | b6 ec e4 97 27 83 f0 71 b8 d0 68 a4 99 58 f3 11 | ||
- | Key material offset: 8 | ||
- | AF stripes: | ||
- | Key Slot 1: DISABLED | ||
- | Key Slot 2: DISABLED | ||
- | Key Slot 3: DISABLED | ||
- | Key Slot 4: DISABLED | ||
- | Key Slot 5: DISABLED | ||
- | Key Slot 6: DISABLED | ||
- | Key Slot 7: DISABLED | ||
- | </ | ||
- | |||
- | Backup du header (explications sur [[https:// | ||
- | <code bash> | ||
- | $ sudo cryptsetup luksHeaderBackup --header-backup-file / | ||
- | </ | ||
- | |||
- | Ouvrir le container LUKS : | ||
- | <code bash> | ||
- | $ sudo cryptsetup luksOpen /dev/sdc1 ddexterne | ||
- | Saisissez la phrase secrète pour / | ||
- | </ | ||
- | |||
- | Créer une partition : | ||
- | <code bash> | ||
- | $ sudo mkfs.ext4 / | ||
- | mke2fs 1.44.4 (18-Aug-2018) | ||
- | En train de créer un système de fichiers avec 488369664 4k blocs et 122093568 i-noeuds. | ||
- | UUID de système de fichiers=7a5beb6b-7fc6-41bd-9767-1b3861718fe6 | ||
- | Superblocs de secours stockés sur les blocs : | ||
- | 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, | ||
- | 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, | ||
- | 102400000, 214990848 | ||
- | |||
- | Allocation des tables de groupe : complété | ||
- | Écriture des tables d' | ||
- | Création du journal (262144 blocs) : complété | ||
- | Écriture des superblocs et de l' | ||
- | fichiers : complété | ||
- | </ | ||
- | |||
- | __Sources: | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | |||
- | ===== Montage automatique d'un disque dur chiffré (externe ou second disque) ===== | ||
- | Si le premier disque dur principal est déjà chiffré, nous pouvons stocker sur celui-ci un fichier qui servira de clé pour déchiffrer le deuxième disque dur. (Ce qui évite de taper deux mots de passe au démarrage!) | ||
- | |||
- | Création du fichier : | ||
- | <code bash> | ||
- | # dd if=/ | ||
- | 256+0 enregistrements lus | ||
- | 256+0 enregistrements écrits | ||
- | 256 bytes copied, 0,00285662 s, 89,6 kB/s | ||
- | |||
- | # ls -al /mnt/ | ||
- | total 16 | ||
- | drwxr-xr-x | ||
- | drwxr-xr-x 23 root root 4096 nov 2 21:40 .. | ||
- | drwxr-xr-x | ||
- | -rw-r--r-- | ||
- | </ | ||
- | |||
- | On ajoute la clé dans les " | ||
- | <code bash> | ||
- | # cryptsetup luksAddKey /dev/sda1 / | ||
- | Entrez une phrase secrète existante : | ||
- | </ | ||
- | |||
- | On vérifie : | ||
- | <code bash> | ||
- | # cryptsetup luksDump /dev/sda1 | ||
- | LUKS header information for /dev/sda1 | ||
- | |||
- | Version: | ||
- | Cipher name: aes | ||
- | Cipher mode: | ||
- | Hash spec: | ||
- | Payload offset: | ||
- | MK bits: 512 | ||
- | MK digest: | ||
- | MK salt: 3f fd 91 5f c6 02 e8 8e 38 b8 05 bc 83 a7 e2 26 | ||
- | 65 0a 07 88 02 38 da 73 db cb 0c 8e ba c8 8c b9 | ||
- | MK iterations: 173750 | ||
- | UUID: cff610dd-3207-472f-bdd9-dbaf102958a9 | ||
- | |||
- | Key Slot 0: ENABLED | ||
- | Iterations: | ||
- | Salt: | ||
- | 15 d1 65 c8 c6 70 b2 1d c4 39 94 fb 62 26 85 80 | ||
- | Key material offset: 8 | ||
- | AF stripes: | ||
- | Key Slot 1: ENABLED | ||
- | Iterations: | ||
- | Salt: | ||
- | eb 6f b2 19 be 44 1c e2 87 05 58 7d 5b 27 38 ce | ||
- | Key material offset: 512 | ||
- | AF stripes: | ||
- | Key Slot 2: DISABLED | ||
- | Key Slot 3: DISABLED | ||
- | Key Slot 4: DISABLED | ||
- | Key Slot 5: DISABLED | ||
- | Key Slot 6: DISABLED | ||
- | Key Slot 7: DISABLED | ||
- | </ | ||
- | |||
- | Démontage : | ||
- | <code bash> | ||
- | # umount /mnt/data/ | ||
- | # cryptsetup luksClose / | ||
- | </ | ||
- | |||
- | Montage : | ||
- | <code bash> | ||
- | # cryptsetup luksOpen /dev/sda1 data | ||
- | Saisissez la phrase secrète pour / | ||
- | |||
- | # mount -t ext4 -o noatime / | ||
- | </ | ||
- | |||
- | On doit maintenant modifier les fichiers ''/ | ||
- | <code bash> | ||
- | # nvim / | ||
- | |||
- | # cat / | ||
- | # <target name> | ||
- | nvme0n1p3_crypt UUID=8fb1b94f-db06-4d28-bb8a-abc1a30d2126 none luks | ||
- | data / | ||
- | |||
- | # nvim / | ||
- | |||
- | # cat / | ||
- | # <file system> | ||
- | / | ||
- | # /boot was on / | ||
- | UUID=c3829ece-82e0-4e83-9a79-ae6c444b42d7 /boot ext2 defaults | ||
- | # /boot/efi was on / | ||
- | UUID=B013-E763 | ||
- | / | ||
- | / | ||
- | / | ||
- | |||
- | #SLF: Deuxième disque dur (/ | ||
- | UUID=33ac1c64-3173-457e-a7c1-25c7ad35e161 | ||
- | </ | ||
- | |||
- | **TODO:** Terminer la configuration pour permettre à l' | ||
- | |||
- | Bonus, pour ouvrir un disque chiffré avec Luks et avec un fichier-clé : | ||
- | <code bash> | ||
- | # cryptsetup --key-file=/ | ||
- | </ | ||
- | (source: [[https:// | ||
- | |||
- | ===== Ajouter une deuxième mot de passe pour déchiffrer ===== | ||
- | Suite à une intallation d'une [[Debian]] avec le disque chiffré, je souhaite pouvoir rajouter une clé pour déchiffrer le disque dur, en plus de celle configurée au départ. | ||
- | |||
- | On identifie tout d' | ||
- | <code bash> | ||
- | # fdisk -l | ||
- | Disque / | ||
- | Unités : secteur de 1 × 512 = 512 octets | ||
- | Taille de secteur (logique / physique) : | ||
- | taille d'E/S (minimale / optimale) : | ||
- | Type d' | ||
- | Identifiant de disque : FB187D7A-0D33-4743-889D-5441E424852D | ||
- | |||
- | Périphérique | ||
- | / | ||
- | / | ||
- | / | ||
- | |||
- | |||
- | Disque /dev/sda : 465,8 GiB, 500107862016 octets, | ||
- | Unités : secteur de 1 × 512 = 512 octets | ||
- | Taille de secteur (logique / physique) : | ||
- | taille d'E/S (minimale / optimale) : | ||
- | Type d' | ||
- | Identifiant de disque : 0x6ee5e36e | ||
- | |||
- | Périphérique Amorçage Début | ||
- | / | ||
- | |||
- | |||
- | |||
- | |||
- | Disque / | ||
- | Unités : secteur de 1 × 512 = 512 octets | ||
- | Taille de secteur (logique / physique) : | ||
- | taille d'E/S (minimale / optimale) : | ||
- | |||
- | |||
- | Disque / | ||
- | Unités : secteur de 1 × 512 = 512 octets | ||
- | Taille de secteur (logique / physique) : | ||
- | taille d'E/S (minimale / optimale) : | ||
- | |||
- | |||
- | Disque / | ||
- | Unités : secteur de 1 × 512 = 512 octets | ||
- | Taille de secteur (logique / physique) : | ||
- | taille d'E/S (minimale / optimale) : | ||
- | |||
- | |||
- | Disque / | ||
- | Unités : secteur de 1 × 512 = 512 octets | ||
- | Taille de secteur (logique / physique) : | ||
- | taille d'E/S (minimale / optimale) : | ||
- | </ | ||
- | |||
- | |||
- | <code bash> | ||
- | # cryptsetup luksDump / | ||
- | LUKS header information for / | ||
- | |||
- | Version: | ||
- | Cipher name: aes | ||
- | Cipher mode: | ||
- | Hash spec: | ||
- | Payload offset: | ||
- | MK bits: 512 | ||
- | MK digest: | ||
- | MK salt: 2a 58 19 02 dd 6a ca 3e d4 ba ac 6d 34 c3 0e 4b | ||
- | b4 45 61 69 58 6d 41 1b e3 ed 08 d7 08 a1 b9 05 | ||
- | MK iterations: 174750 | ||
- | UUID: 8fb1b94f-db06-4d28-bb8a-abc1a30d2126 | ||
- | |||
- | Key Slot 0: ENABLED | ||
- | Iterations: | ||
- | Salt: | ||
- | e6 c6 c1 aa f1 56 d9 13 f7 50 14 cc d1 3c 22 2c | ||
- | Key material offset: 8 | ||
- | AF stripes: | ||
- | Key Slot 1: DISABLED | ||
- | Key Slot 2: DISABLED | ||
- | Key Slot 3: DISABLED | ||
- | Key Slot 4: DISABLED | ||
- | Key Slot 5: DISABLED | ||
- | Key Slot 6: DISABLED | ||
- | Key Slot 7: DISABLED | ||
- | </ | ||
- | |||
- | On voit qu'il reste 7 slots disponibles. On ajoute : | ||
- | <code bash> | ||
- | # cryptsetup luksAddKey / | ||
- | Entrez une phrase secrète existante : | ||
- | Entrez une nouvelle phrase secrète pour l' | ||
- | Vérifiez la phrase secrète : | ||
- | </ | ||
- | |||
- | On vérifie : | ||
- | <code bash> | ||
- | # cryptsetup luksDump / | ||
- | LUKS header information for / | ||
- | |||
- | Version: | ||
- | Cipher name: aes | ||
- | Cipher mode: | ||
- | Hash spec: | ||
- | Payload offset: | ||
- | MK bits: 512 | ||
- | MK digest: | ||
- | MK salt: 2a 58 19 02 dd 6a ca 3e d4 ba ac 6d 34 c3 0e 4b | ||
- | b4 45 61 69 58 6d 41 1b e3 ed 08 d7 08 a1 b9 05 | ||
- | MK iterations: 174750 | ||
- | UUID: 8fb1b94f-db06-4d28-bb8a-abc1a30d2126 | ||
- | |||
- | Key Slot 0: ENABLED | ||
- | Iterations: | ||
- | Salt: | ||
- | e6 c6 c1 aa f1 56 d9 13 f7 50 14 cc d1 3c 22 2c | ||
- | Key material offset: 8 | ||
- | AF stripes: | ||
- | Key Slot 1: ENABLED | ||
- | Iterations: | ||
- | Salt: | ||
- | c7 1c 85 7f b6 be 79 50 fa f0 60 ab 0c bd c8 44 | ||
- | Key material offset: 512 | ||
- | AF stripes: | ||
- | Key Slot 2: DISABLED | ||
- | Key Slot 3: DISABLED | ||
- | Key Slot 4: DISABLED | ||
- | Key Slot 5: DISABLED | ||
- | Key Slot 6: DISABLED | ||
- | Key Slot 7: DISABLED | ||
- | </ | ||
- | |||
- | Cette fois, deux emplacements sont bien utilisés. | ||
- | |||
- | ===== Backup du header de LUKS ===== | ||
- | Comme expliqué dans cet article sur [[https:// | ||
- | |||
- | {{ :: | ||
- | |||
- | <code bash> | ||
- | $ sudo cryptsetup luksHeaderBackup --header-backup-file / | ||
- | </ | ||
- | |||
- | Il faut évidemment stocker ce header sur un autre support chiffré... | ||
- | |||
- | ===== Sources ===== | ||
- | * [[http:// | ||
- | * [[https:// |
luks.1538593228.txt.gz · Dernière modification : 2020/08/09 12:59 (modification externe)