« Installation debian luks via debootstrap » : différence entre les versions
(Une version intermédiaire par un autre utilisateur non affichée) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:debian]] | |||
Voici comment installer une Debian Stretch sur un support interne ou externe chiffré avec cryptsetup. | 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.}} | {{attention|faire une doc sur la création d'un ESP.}} | ||
Ligne 35 : | Ligne 36 : | ||
apt install linux-image-amd64 | apt install linux-image-amd64 | ||
'''[chroot]''' Définition du mot de passe root | '''[chroot]''' Définition du mot de passe root | ||
passwd | passwd | ||
'''[chroot]''' Ajout d'un utilisateur | '''[chroot]''' Ajout d'un utilisateur | ||
adduser toto | adduser toto | ||
'''[chroot]''' Changement du fuseau horaire | '''[chroot]''' Changement du fuseau horaire | ||
dpkg-reconfigure tzdata | dpkg-reconfigure tzdata |
Dernière version du 12 décembre 2019 à 12:04
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'
[chroot] Attribuer un mot de passe à root
passwd root
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
Note pour documentation ultérieure : options <UUID de la partition ext4>
Syslinux
EFI STUB
Finalisation
Démontage de la partition
umount /mnt
Fermeture de la partition chiffrée
cryptsetup luksClose debsecu
Problèmes
Il y a plein de raisons de rencontrer des problèmes lors de la configuration de l'initrd. Lorsque une erreur survient au moment de la phase de démarrage, le système s'arrête et rend la main par l'intermédiaire d'un prompt directement dans l'initramfs. À ce stade, on peut récupérer des informations sur les disques ainsi que sur les arguments passés au noyau afin de résoudre les difficultés rencontrées.
Afficher les arguments passés au noyau
cat /proc/cmdline
Afficher les modules compilés dans l'initrd
cat /proc/modules
La commande lsblk
est disponible pour identifier l'UUID des disques et partitions.
Les liens symboliques sous forme d'UUID sont présents dans /dev/disk/by-uuid
et pointes vers les périphériques de type bloque correspondants (/dev/sda; /dev/sdb2...).
INFORMATION
Il est important de rappeler que l'UUID de la partition luks est codé en dur dans l'initrd (contrairement à Archlinux), aussi, l'UUID renseigné dans le fichier/etc/initramfs-tools/conf.d/cryptroot
doit être exacte et correspondre à l'UUID de la partition chiffrée. Bien observer les messages d'erreurs, un indice important y est souvant mentionné.Il est également possible de renseigné le périphérique de type bloque au lieu de l'UUID de la partition luks dans le fichier /etc/initramfs-tools/conf.d/cryptroot
, cependant il est important de garder en tête que la nomenclature sda; sdb... change au petit bonheur la chance en fonction de l'orientation de la lune (un coup le disque n°2 s'appel sdb, un autre il est sda...). Donc ça peut avoir pour conséquence que le système, ne trouve pas la partition ext4 contenant le système puisque il ne peut pas trouver le disque chiffré (et donc vous demander la clé de déchiffrement). Un cryptsetup luksOpen /dev/sdb2 debsecu
à la main dans le prompt initramfs suivi d'un exit
suffira à démarrer le système.
L'UUID renseigné dans le chargeur d'amorçage est très important car il permet au noyau de savoir sur quelle partition se trouve le /. Si l'initrd demande la clé de déchiffrement, que vous avez entré la bonne et que malgré tout le système vous renvoi sur le prompt initramfs c'est que vous vous êtes trompé sur cet UUID.