Outils pour utilisateurs

Outils du site


luks

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édentesRévision précédente
Prochaine révision
Révision précédente
luks [2018/10/03 18:38] – [Chiffrer un disque dur externe] simonluks [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'ordre. 
-</WRAP> 
- 
-===== Chiffrer un deuxième disque dur ===== 
-On peut facilement configurer le chiffrement avec LUKS lors de l'installation d'une distribution GNU/Linux. Mais si on veut chiffrer un éventuel deuxième disque dur , il faut le faire à la main. 
- 
-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 :  
-</code> 
- 
-Vérification : 
-<code bash> 
-# cryptsetup luksDump /dev/sda1 
-LUKS header information for /dev/sda1 
- 
-Version:        1 
-Cipher name:    aes 
-Cipher mode:    xts-plain64 
-Hash spec:      sha256 
-Payload offset: 4096 
-MK bits:        512 
-MK digest:      0a 16 95 1f 9c 18 26 62 95 87 69 fb 9d 32 d5 00 89 21 a9 36  
-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:          1406591 
- Salt:                1f 0b 0c c5 21 0e d3 e8 05 8c 81 3b 81 fb e9 99  
-                       15 d1 65 c8 c6 70 b2 1d c4 39 94 fb 62 26 85 80  
- Key material offset: 8 
- AF stripes:            4000 
-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 
-</code> 
- 
-Il faut maintenant créer une partition : 
-<code bash> 
-# cryptsetup luksOpen /dev/sda1 data 
-Saisissez la phrase secrète pour /dev/sda1 :  
- 
-# ls -l /dev/mapper/ 
-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> 
- 
-<code bash> 
-# mkfs.ext4 -m 0 -L data /dev/mapper/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'i-noeuds : complété                         
-Création du journal (262144 blocs) : complété 
-Écriture des superblocs et de l'information de comptabilité du système de 
-fichiers : complété  
-</code> 
- 
-Créer le point de montage et monter le disque : 
-<code bash> 
-# mkdir /mnt/data 
- 
-# mount -t ext4 -o noatime /dev/mapper/data /mnt/data 
-</code> 
- 
-===== 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, 3906963456 secteurs 
-Unités : secteur de 1 × 512 = 512 octets 
-Taille de secteur (logique / physique) : 512 octets / 512 octets 
-taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
-Type d'étiquette de disque : gpt 
-Identifiant de disque : 0B31EF05-5462-40FF-B947-C7423EFAB8D2 
- 
-Périphérique Début        Fin   Secteurs Taille Type 
-/dev/sdc1     2048 3906961407 3906959360   1,8T Données de base Microsoft 
-</code> 
- 
-Chiffrer le disque dur : 
-<code bash> 
-# cryptsetup luksFormat /dev/sdc1 
-</code> 
- 
-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 'ntfs' superblock signature. 
-WARNING: Device /dev/sdc1 already contains a 'atari' partition signature. 
- 
-WARNING! 
-======== 
-Cette action écrasera définitivement les données sur /dev/sdc1. 
- 
-Are you sure? (Type uppercase yes): no  
-Opération interrompue. 
-</code> 
- 
-J'ai fait un formatage un peu "brutal" à grand coups de [[dd]] (attention, ça a duré 200 000 secondes!): 
-<code bash> 
-$ sudo dd if=/dev/zero of=/dev/sdc iflag=nocache oflag=direct bs=4096 
-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> 
- 
-<code bash> 
-$ sudo fdisk -l 
-Disque /dev/sdc : 1,8 TiB, 2000365289472 octets, 3906963456 secteurs 
-Unités : secteur de 1 × 512 = 512 octets 
-Taille de secteur (logique / physique) : 512 octets / 512 octets 
-taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
-</code> 
- 
-<code bash> 
-$ sudo lsblk  
-NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT 
-(...) 
-sdc                    8:32     1,8T  0 disk  
-</code> 
- 
-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'à écriture. 
-Soyez prudent avant d'utiliser la commande d'écriture. 
- 
-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'aide) : n 
-Type de partition 
-     primaire (0 primaire, 0 étendue, 4 libre) 
-     étendue (conteneur pour partitions logiques) 
-Sélectionnez (p par défaut) : p 
-Numéro de partition (1-4, 1 par défaut) : 1 
-Premier secteur (2048-3906963455, 2048 par défaut) :  
-Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-3906963455, 3906963455 par défaut) :  
- 
-Une nouvelle partition 1 de type « Linux » et de taille 1,8 TiB a été créée. 
- 
-Commande (m pour l'aide) : w 
-La table de partitions a été altérée. 
-Appel d'ioctl() pour relire la table de partitions. 
-Synchronisation des disques. 
-</code> 
- 
-Vérification: 
-<code bash> 
-$ sudo lsblk 
-(...) 
-sdc                    8:32     1,8T  0 disk   
-└─sdc1                 8:33     1,8T  0 part  
-</code> 
- 
-**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 /dev/sdc1 :  
-Vérifiez la phrase secrète :  
-Key slot 0 created. 
-Opération réussie. 
-</code> 
- 
-Vérification: 
-<code bash> 
-$ sudo cryptsetup luksDump /dev/sdc1 
-LUKS header information for /dev/sdc1 
- 
-Version:        1 
-Cipher name:    aes 
-Cipher mode:    xts-plain64 
-Hash spec:      sha512 
-Payload offset: 4096 
-MK bits:        512 
-MK digest:      6e c5 4d 4a 3c b6 bf d4 4b bb 1b 18 8a 24 a9 74 57 7c f1 5a  
-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:          4607100 
- Salt:                28 2a 94 33 a1 4d 2b b0 83 9f 9f 09 0d e3 24 86  
-                       b6 ec e4 97 27 83 f0 71 b8 d0 68 a4 99 58 f3 11  
- Key material offset: 8 
- AF stripes:            4000 
-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 
-</code> 
- 
-Backup du header (explications sur [[https://loganmarchione.com/2015/05/encrypted-external-drive-with-luks/#Step_2_8211_Securely_wipe_your_disk|loganmarchione.com]]) : 
-<code bash> 
-$ sudo cryptsetup luksHeaderBackup --header-backup-file /home/simon/header_backup.img /dev/sdc1 
-</code> 
- 
-__Sources:__  
-  * [[https://loganmarchione.com/2015/05/encrypted-external-drive-with-luks/#Step_2_8211_Securely_wipe_your_disk|loganmarchione.com]] 
-  * [[https://blog.hellnino.com/?p=464|hellnino.com]] 
- 
-===== 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=/dev/random of=/mnt/.datakey bs=1 count=256 
-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  3 root root 4096 nov  2 22:43 . 
-drwxr-xr-x 23 root root 4096 nov  2 21:40 .. 
-drwxr-xr-x  3 root root 4096 nov  2 22:34 data 
--rw-r--r--  1 root root  256 nov  2 22:43 .datakey 
-</code> 
- 
-On ajoute la clé dans les "slot" qui permettent de déchiffrer le disque : 
-<code bash> 
-# cryptsetup luksAddKey /dev/sda1 /mnt/.datakey  
-Entrez une phrase secrète existante :  
-</code> 
- 
-On vérifie : 
-<code bash> 
-# cryptsetup luksDump /dev/sda1 
-LUKS header information for /dev/sda1 
- 
-Version:        1 
-Cipher name:    aes 
-Cipher mode:    xts-plain64 
-Hash spec:      sha256 
-Payload offset: 4096 
-MK bits:        512 
-MK digest:      0a 16 95 1f 9c 18 26 62 95 87 69 fb 9d 32 d5 00 89 21 a9 36  
-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:          1406591 
- Salt:                1f 0b 0c c5 21 0e d3 e8 05 8c 81 3b 81 fb e9 99  
-                       15 d1 65 c8 c6 70 b2 1d c4 39 94 fb 62 26 85 80  
- Key material offset: 8 
- AF stripes:            4000 
-Key Slot 1: ENABLED 
- Iterations:          1391302 
- Salt:                73 ec 5a 9e 2e a9 51 1f 17 53 79 e3 27 01 09 56  
-                       eb 6f b2 19 be 44 1c e2 87 05 58 7d 5b 27 38 ce  
- Key material offset: 512 
- AF stripes:            4000 
-Key Slot 2: DISABLED 
-Key Slot 3: DISABLED 
-Key Slot 4: DISABLED 
-Key Slot 5: DISABLED 
-Key Slot 6: DISABLED 
-Key Slot 7: DISABLED 
-</code> 
- 
-Démontage : 
-<code bash> 
-# umount /mnt/data/ 
-# cryptsetup luksClose /dev/mapper/data 
-</code> 
- 
-Montage : 
-<code bash> 
-# cryptsetup luksOpen /dev/sda1 data 
-Saisissez la phrase secrète pour /dev/sda1 :  
- 
-# mount -t ext4 -o noatime /dev/mapper/data /mnt/data 
-</code> 
- 
-On doit maintenant modifier les fichiers ''/etc/fstab'' et ''/etc/crypttab'' : 
-<code bash> 
-# nvim /etc/crypttab 
- 
-# cat /etc/crypttab  
-# <target name> <source device> <key file> <options> 
-nvme0n1p3_crypt UUID=8fb1b94f-db06-4d28-bb8a-abc1a30d2126 none luks 
-data /dev/sda1 /mnt/.datakey luks,keyscript=/lib/cryptsetup/scripts/passdev 
- 
-# nvim /etc/fstab  
- 
-# cat /etc/fstab  
-# <file system>                    <mount point>   <type>  <options>         <dump>  <pass> 
-  /dev/mapper/alt--simon--vg-root  /               ext4    errors=remount-ro 0       1 
-# /boot was on /dev/nvme0n1p2 during installation 
-  UUID=c3829ece-82e0-4e83-9a79-ae6c444b42d7 /boot  ext2    defaults          0       2 
-# /boot/efi was on /dev/nvme0n1p1 during installation 
-  UUID=B013-E763                   /boot/efi       vfat    umask=0077        0       1 
-  /dev/mapper/alt--simon--vg-home  /home           ext4    defaults          0       2 
-  /dev/mapper/alt--simon--vg-swap_1 none           swap    sw                0       0 
-  /dev/sr0                         /media/cdrom0   udf,iso9660 user,noauto         0 
- 
-#SLF: Deuxième disque dur (/dev/mapper/data) 
-  UUID=33ac1c64-3173-457e-a7c1-25c7ad35e161   /mnt/data    ext4    defaults          0       1 
-</code> 
- 
-**TODO:** Terminer la configuration pour permettre à l'utilisateur courant de (dé)monter le deuxième disque et d'y écrire. 
- 
-Bonus, pour ouvrir un disque chiffré avec Luks et avec un fichier-clé : 
-<code bash> 
-# cryptsetup --key-file=/etc/keys/sdb1_key luksOpen /dev/sdb1 sdb1_crypt 
-</code> 
-(source: [[https://www.finnie.org/2009/07/26/keyfile-based-luks-encryption-in-debian/|keyfile-based luks encryption in Debian]]) 
- 
-===== 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'abord les partitions : 
-<code bash> 
-# fdisk -l 
-Disque /dev/nvme0n1 : 238,5 GiB, 256060514304 octets, 500118192 secteurs 
-Unités : secteur de 1 × 512 = 512 octets 
-Taille de secteur (logique / physique) : 512 octets / 512 octets 
-taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
-Type d'étiquette de disque : gpt 
-Identifiant de disque : FB187D7A-0D33-4743-889D-5441E424852D 
- 
-Périphérique     Début       Fin  Secteurs Taille Type 
-/dev/nvme0n1p1    2048   1050623   1048576   512M Système EFI 
-/dev/nvme0n1p2 1050624   1550335    499712   244M Système de fichiers Linux 
-/dev/nvme0n1p3 1550336 500117503 498567168 237,8G Système de fichiers Linux 
- 
- 
-Disque /dev/sda : 465,8 GiB, 500107862016 octets, 976773168 secteurs 
-Unités : secteur de 1 × 512 = 512 octets 
-Taille de secteur (logique / physique) : 512 octets / 512 octets 
-taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
-Type d'étiquette de disque : dos 
-Identifiant de disque : 0x6ee5e36e 
- 
-Périphérique Amorçage Début       Fin  Secteurs Taille Id Type 
-/dev/sda1    *         2048 976771071 976769024 465,8G  7 HPFS/NTFS/exFAT 
- 
- 
- 
- 
-Disque /dev/mapper/nvme0n1p3_crypt : 237,8 GiB, 255264292864 octets, 498563072 secteurs 
-Unités : secteur de 1 × 512 = 512 octets 
-Taille de secteur (logique / physique) : 512 octets / 512 octets 
-taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
- 
- 
-Disque /dev/mapper/alt--simon--vg-root : 28 GiB, 29997662208 octets, 58589184 secteurs 
-Unités : secteur de 1 × 512 = 512 octets 
-Taille de secteur (logique / physique) : 512 octets / 512 octets 
-taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
- 
- 
-Disque /dev/mapper/alt--simon--vg-swap_1 : 15,9 GiB, 17075011584 octets, 33349632 secteurs 
-Unités : secteur de 1 × 512 = 512 octets 
-Taille de secteur (logique / physique) : 512 octets / 512 octets 
-taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
- 
- 
-Disque /dev/mapper/alt--simon--vg-home : 193,9 GiB, 208188473344 octets, 406618112 secteurs 
-Unités : secteur de 1 × 512 = 512 octets 
-Taille de secteur (logique / physique) : 512 octets / 512 octets 
-taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
-</code> 
- 
- 
-<code bash> 
-# cryptsetup luksDump /dev/nvme0n1p3 
-LUKS header information for /dev/nvme0n1p3 
- 
-Version:        1 
-Cipher name:    aes 
-Cipher mode:    xts-plain64 
-Hash spec:      sha256 
-Payload offset: 4096 
-MK bits:        512 
-MK digest:      6f c0 da 10 e2 67 96 91 e3 d1 61 49 7a ef 5b f0 2b f2 94 9a  
-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:          1391302 
- Salt:                ef 73 48 b9 05 36 24 ec 7c 0a 9b ca 63 fd d0 fa  
-                       e6 c6 c1 aa f1 56 d9 13 f7 50 14 cc d1 3c 22 2c  
- Key material offset: 8 
- AF stripes:            4000 
-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 
-</code> 
- 
-On voit qu'il reste 7 slots disponibles. On ajoute :  
-<code bash> 
-# cryptsetup luksAddKey /dev/nvme0n1p3 
-Entrez une phrase secrète existante :  
-Entrez une nouvelle phrase secrète pour l'emplacement de clé :  
-Vérifiez la phrase secrète :  
-</code> 
- 
-On vérifie : 
-<code bash> 
-# cryptsetup luksDump /dev/nvme0n1p3 
-LUKS header information for /dev/nvme0n1p3 
- 
-Version:        1 
-Cipher name:    aes 
-Cipher mode:    xts-plain64 
-Hash spec:      sha256 
-Payload offset: 4096 
-MK bits:        512 
-MK digest:      6f c0 da 10 e2 67 96 91 e3 d1 61 49 7a ef 5b f0 2b f2 94 9a  
-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:          1391302 
- Salt:                ef 73 48 b9 05 36 24 ec 7c 0a 9b ca 63 fd d0 fa  
-                       e6 c6 c1 aa f1 56 d9 13 f7 50 14 cc d1 3c 22 2c  
- Key material offset: 8 
- AF stripes:            4000 
-Key Slot 1: ENABLED 
- Iterations:          1398906 
- Salt:                d1 cf 7f 08 e8 bb 57 0c f4 e5 27 fb fd c7 a3 66  
-                       c7 1c 85 7f b6 be 79 50 fa f0 60 ab 0c bd c8 44  
- Key material offset: 512 
- AF stripes:            4000 
-Key Slot 2: DISABLED 
-Key Slot 3: DISABLED 
-Key Slot 4: DISABLED 
-Key Slot 5: DISABLED 
-Key Slot 6: DISABLED 
-Key Slot 7: DISABLED 
-</code> 
- 
-Cette fois, deux emplacements sont bien utilisés. 
- 
-===== Sources ===== 
-  * [[http://web.archive.org/web/20100110234521/http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre|web.archive de petaramesh.org]] 
-  * [[https://doc.ubuntu-fr.org/cryptsetup|doc.ubuntu-fr.org/cryptsetup]] 
luks.1538591903.txt.gz · Dernière modification : 2020/08/09 12:59 (modification externe)