Outils pour utilisateurs

Outils du site


luks

LUKS

TODO: Relire et remettre de l'ordre.

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 :

# 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 :

# 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

Il faut maintenant créer une partition :

# 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
# 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é 

Créer le point de montage et monter le disque :

# mkdir /mnt/data
 
# mount -t ext4 -o noatime /dev/mapper/data /mnt/data

Montage automatique du deuxième disque dur

Comme le premier disque dur 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 :

# 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

On ajoute la clé dans les “slot” qui permettent de déchiffrer le disque :

# cryptsetup luksAddKey /dev/sda1 /mnt/.datakey 
Entrez une phrase secrète existante : 

On vérifie :

# 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

Démontage :

# umount /mnt/data/
# cryptsetup luksClose /dev/mapper/data

Montage :

# cryptsetup luksOpen /dev/sda1 data
Saisissez la phrase secrète pour /dev/sda1 : 
 
# mount -t ext4 -o noatime /dev/mapper/data /mnt/data

On doit maintenant modifier les fichiers /etc/fstab et /etc/crypttab :

# 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       0
 
#SLF: Deuxième disque dur (/dev/mapper/data)
  UUID=33ac1c64-3173-457e-a7c1-25c7ad35e161   /mnt/data	   ext4    defaults          0       1

TODO: Terminer la configuration pour permettre à l'utilisateur courant de (dé)monter le deuxième disque et d'y écrire.

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 :

# 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
# 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

On voit qu'il reste 7 slots disponibles. On ajoute :

# 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 : 

On vérifie :

# 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

Cette fois, deux emplacements sont bien utilisés.

Sources

luks.txt · Dernière modification: 2017/11/03 09:23 par simon