Installateur Debian - Chiffrage partitions racine, home et boot sans lvm

Dernière mise à jour : Debian 11.0

Références :

Sommaire

1 - Préalable

1.1 - Installateur

firmware-11.0.0-amd64-DVD-1.iso

téléchargée depuis http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/

1.2 - Support sur lequel sera installé Debian

1.3 - Démarrage de l'installateur

$ sudo aptitude install qemu-system-x86 ovmf
$ qemu-img create debian.img 20G
$ qemu-system-x86_64 -m 2048 -smp 4 -accel kvm -cpu host \
-drive media=cdrom,format=raw,file=firmware-11.0.0-amd64-DVD-1.iso \
-drive media=disk,format=raw,file=debianvide.img \
-boot menu=on,once=d,order=c -vga virtio
$ cp /usr/share/OVMF/OVMF_CODE.fd ./ 
$ cp /usr/share/OVMF/OVMF_VARS.fd ./

$ qemu-system-x86_64 -m 2048 -smp 4 -accel kvm -cpu host \
-machine pc-q35-2.5 -global ICH9-LPC.disable_s3=1 \
-drive if=pflash,format=raw,readonly,file=./OVMF_CODE.fd \
-drive if=pflash,format=raw,file=./OVMF_VARS.fd \
-drive media=cdrom,format=raw,file=firmware-11.0.0-amd64-DVD-1.iso \
-drive media=disk,format=raw,file=debian.img \
-boot menu=on,once=d,order=c -vga virtio

2 - Installation - Première partie

locale=fr_FR.UTF-8 country=FR language=fr keymap=fr(latin9)


3 - Installation - Deuxième partie - Partitionnement

3.1 - Ouverture d'une console d'administration de l'installateur

(qemu) sendkey ctrl-alt-f3

3.2 - Utilisation de la console

# ls -l /dev/disk/by-id
lrwxrwxrwx 1 root root <date> <dvd1> ->../../sro
lrwxrwxrwx 1 root root <date> <dvd2> ->../../sr1
lrwxrwxrwx 1 root root <date> <disk> ->../../sda

# blkid
# cryptsetup luksOpen /dev/sda2 luks
# parted /dev/sda mktable gpt

# parted /dev/sda mkpart ESP fat32 2MiB 512MiB set 1 esp on
# mkfs.fat -F 32 -n ESP /dev/sda1

# parted /dev/sda mkpart crypt ext2 512MiB 100%
# cryptsetup luksFormat --type luks1 /dev/sda2
# cryptsetup luksOpen /dev/sda2 crypt
# mkfs.ext4 -L crypt /dev/mapper/crypt

3.4 - Installateur Debian - Partitionner les disques

4 - Installation - Troisième partie - Logiciels

5 - Installation - Quatrième partie - GRUB et initramfs

5.1 - Méthode sans chroot

# echo "GRUB_ENABLE_CRYPTODISK=y" >>/target/etc/default/grub
# echo "crypt /dev/sda2 none luks" >>/target/etc/crypttab

5.2 - Méthode avec chroot

# mount /dev /target/dev
# mount /dev/pts /target/dev/pts
# mout /sys /target/sys
# mount /proc /target/proc
# chroot
(chroot)# apt install grub-efi-amd64
(chroot)# echo "GRUB_ENABLE_CRYPTODISK=y" >>/etc/default/grub
(chroot)# echo "crypt /dev/sda2 none luks" >>/etc/crypttab
(chroot)# grub-install
(chroot)# update-grub
(chroot)# update-initramfs -u -k all -c
(chroot)# exit

6 - Redémarrage

6.1 - Ajouter un fichier de phrase de passe

$ sudo mkdir -m 0700 /etc/keys
$ (umask 0077;sudo dd if=/dev/urandom  bs=512 count=4 of=/etc/keys/root.key)
$ sudo cryptsetup luksDump /dev/sda2 |grep ENABLED
Key Slot 0: ENABLED
$ sudo cryptsetup luksAddKey /dev/sda2 /etc/keys/root.key
$ sudo cryptsetup luksDump /dev/sda2 |grep ENABLED
Key Slot 0: ENABLED Key Slot 1: ENABLED

6.2 - Mettre à jour crypttab

$ cat /etc/crypttab
# <target name> <source device> <key file> <options>
crypt /dev/sda2 none luks
$ uuid=$(lsblk -nd -o uuid /dev/sda2)
$ echo "crypt UUID=$uuid" /etc/keys/root.key luks,key-slot=1" |sudo tee -a /etc/crypttab

6.3 - Mettre à jour l'initramfs

$ sudo nano /etc/cryptsetup-initramfs/conf-hook
KEYFILE_PATTERN="/etc/keys/*.key"
$ echo UMASK=0077 |sudo tee -a /etc/initramfs-tools/initramfs.conf
$ sudo update-initramfs -u -k all
$ sudo lsinitramfs /initrd.img | grep "^cryptroot/keyfiles/
/cryptroot/keyfiles/crypt.key