Installation debian luks via debootstrap

De Wiki doc

Révision datée du 4 mai 2017 à 19:52 par Ycharbi (discussion | contributions) (Page créée avec « Voici comment installer une Debian Stretch sur un support interne ou externe chiffré avec cryptsetup. {{attention|faire une doc sur la création d'un ESP.}} =Préparation... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Voici comment installer une Debian Stretch sur un support interne ou externe chiffré avec cryptsetup.

ATTENTION

faire une doc sur la création d'un ESP.

Préparation du disque

Installation de l'outil de chiffrement de disque

apt install cryptsetup

Chiffrement de la partition

cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sdb2

Ouverture de la partition

cryptsetup luksOpen /dev/sdb2 debsecu

Formatage de la sous partition (testé également avec btrfs)

mkfs.ext4 /dev/mapper/debsecu

Installation du système Debian

Installation du système

Montage de la partition formaté dans l'étape précédente

mount /dev/mapper/debsecu /mnt

Installation du système de base

debootstrap --arch amd64 stretch /mnt http://ftp.fr.debian.org/debian

Configuration du système

Entrer dans le système

chroot /mnt

[chroot] Monter les ressources nécessaires pour les installations

mount none -t proc /proc
mount none -t sysfs /sys
mount none -t devpts /dev/pts

[chroot] Définition du répertoire utilisateur root

export HOME=/root

[chroot] Changement temporaire du prompt (un accident est vite arrivé en confondant le prompt du chroot avec celui du root de l'hôte, le changer évite les sueurs froides)

export PS1="\e[01;31m(live):\W \$ \e[00m"

[chroot] Mise à jour des paquets

apt update
apt install dialog dbus
dbus-uuidgen > /var/lib/dbus/machine-id

[chroot] Installation du noyau

apt install linux-image-amd64

[chroot] Définition du mot de passe root passwd [chroot] Ajout d'un utilisateur adduser toto [chroot] Changement du fuseau horaire

dpkg-reconfigure tzdata

[chroot] Installer le système en Français

apt install locales
dpkg-reconfigure locales

INFORMATION

Cocher fr_FR.UTF-8 UTF-8 et séléctionner fr_FR.UTF-8 sur l'écran suivant.
apt install console-data

INFORMATION

Dans Choisir un codage clavier dans la liste complète, sélectionner pc / azerty / French / Same as X11 (latin9) / Standard.
apt install keyboard-configuration console-setup

INFORMATION

Pour keyboard-configuration, séléctionner Français - Français (variante obsolète).

Le contenu de /etc/default/keyboard doit être le suivant :

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT="latin9"
XKBOPTIONS=""

BACKSPACE="guess"

Le contenu de /etc/default/console-setup doit être le suivant :

# CONFIGURATION FILE FOR SETUPCON

# Consult the console-setup(5) manual page.

ACTIVE_CONSOLES="/dev/tty[1-6]"

CHARMAP="UTF-8"

CODESET="Lat15"
FONTFACE="Fixed"
FONTSIZE="8x16"

VIDEOMODE=

# The following is an example how to use a braille font
# FONT='lat9w-08.psf.gz brl-8x8.psf'

Configuration de l'initrd

[chroot] Installation de l'outil de chiffrement de disque

apt install cryptsetup

[chroot] Supprimer le fichier de montage des partitions chiffré (il gène la compilation de l'initrd)

rm /etc/crypttab

[chroot] Créer le fichier suivant contenant les information de votre partition chiffré :

echo 'CRYPTOPTS=target=debsecu,source=/dev/disk/by-uuid/<UUID de la partition chiffrée>' > /etc/initramfs-tools/conf.d/cryptroot

INFORMATION

On comprend avec cette ligne que la référence du disque / est codé en dur dans l'initrd, ce n'est pas le cas de Archlinux qui récupère cette information du chargeur d'amorçage. On comprend donc que Debian est moins portable que ce dernier car l'initrd doit être recompilé à chaque changement de disque chiffré.

[chroot] Activation du module

echo -e 'aes-x86_64\nsha512-ssse3\nxts\ndm-mod\ndm-crypt' >> etc/initramfs-tools/modules

[chroot] Forcer l'utilisation de cryptsetup au démarrage

echo 'CRYPTSETUP=y' >> /etc/cryptsetup-initramfs/conf-hook

[chroot] Mise à jour de l'inird

update-initramfs -u

[chroot] Nettoyage du système

apt-get clean
rm -rf /tmp/*
rm /var/lib/dbus/machine-id

[chroot] Démontage des systèmes de fichier spéciaux montés

umount /proc /sys /dev/pts

[chroot] Suppression de l'historique bash

history -c

Quitter le système

<ctrl+d>

Copie des fichiers de démarrage dans l'ESP

Copie de l'initrd et du noyau dans l'ESP

mount /dev/sdb1 /media
cp /mnt/boot/initrd.img-4.9.0-2-amd64 /media/initrd-debsecu
cp /mnt/boot/vmlinuz-4.9.0-2-amd64 /media/vmlinuz-debsecu

Installation du chargeur d'amorçage

Pour le moment cette section est vide. Une rustine pour ne pas être bloqué en attendant sa rédaction est de se référer au même passage sur l'installation d'Archlinux sur UEFI 64bits.

Systemd-boot

Syslinux

EFI STUB

Finalisation

Démontage de la partition

umount /mnt

Fermeture de la partition chiffrée

cryptsetup luksClose debsecu

Sources