Passer à LUKS

Tags: #<Tag:0x00007f63f1fae888>

Bonjour,
Ayant installé debian depuis longtemps, je souhaite sécuriser mon ordinateur en cryptant mon disque. Je souhaite utiliser LUKS, mais je ne sais pas comment y arriver sans tout reformater…
Comment m’y prendre, et quels sont les manipulations à faire ?
Merci d’avance de vos réponses :slight_smile:

Salut,

Je souhaite utiliser LUKS, mais je ne sais pas comment y arriver sans tout reformater…

Malheureusement, avec LUKS c’est préférable d’écrire des données aléatoires avant de formater la partition chiffrée par dessus afin de rendre le déchiffrage plus
difficile.

Vous pourriez toutefois faire un backup avec « timeshift » en n’oubliant pas les fichiers personnel.

Réinstaller Debian tout en utilisant l’installateur pour créer votre partition LUKS chiffrée.

Recopier le backup avec « timeshift » et redémarrer. :slightly_smiling_face:

Ah et je ferais un 2e backup des fichiers personnels sur un 2e support, on n’est jamais trop prudent.

Et si vous voulez aussi chiffrer le backup. Vous pourriez toujours utiliser « ZuluCrypt » qui est un interface graphique permettant de créer des partitions LUKS sur un disque externe ou même dans un fichier. :wink:

Je tiens à mentionner que je ne suis pas un expert ceci est seulement mon expérience personnel et je serais curieux de savoir s’il y a une méthode plus simple ou voire plus efficace ou mieux l’avis d’un expert.

Il n’est pas possible de chiffrer avec LUKS sans reformater.

Faire un backup du système sur une installation et le restaurer sur une installation différente, c’est possible ? Et le système ainsi restauré marche ensuite ?

Hmm, j’avoue n’avoir pas penser au fstab.

Il faudrait alors ne pas restaurer l’ancien /etc/fstab si l’on veux être capable de redémarrer la machine.

Alors, le mieux ce serais une réinstallation avec seulement les backup du home.

En n’oubliant pas les fichiers cachées .config .local .cache etc

Cela ne concerne pas seulement /etc/fstab, mais aussi :

  • les paquets cryptsetup* installés
  • /etc/crypttab
  • la configuration d’amorçage de GRUB
  • l’initramfs spécifique pour ouvrir la racine chiffrée au démarrage

et j’en oublie probablement.

Je plussoie, timeshift ne permettra certainement pas de redéployer le système sur un container chiffré par luks.

Par contre une sauvegarde de la donnée via du rsync par exemple sera indispensable dans le cas d’une réinstallation avec utilisation de luks (ça peux dans ce cas être pris en charge lors de l’install).

Merci de vos réponses !
Je vais regarder tu côté de timeshift. Je ne veux surtout pas perdre mon système qui est bien configuré…
J’avais vu aussi la commende cryptsetup-reencrypt, mais je ne sais pas trop quoi en penser…

Salut,

Tu n’aurais pas du LVM par hasard sur ton système ?

Non…
Mais je peux peut-être passer à un LVM non ?
Comment faire ?

Ah, c’est vrai, je l’avais oubliée celle-là. Oui, a priori on peut l’utiliser pour chiffrer une partition sur place sans reformater, mais il y a des contraintes :

  • la partition ne doit pas être montée
  • la partition doit être agrandie ou le système de fichiers doit être réduit de 2 Mio pour faire de la place pour le superblock LUKS qui va être ajouté au début de la partition avant les données chiffrées
  • cette commande était indiquée comme expérimentale et dangereuse, à n’utiliser qu’après sauvegarde du contenu de la partition.

Pourquoi cette question ?

Donc je peux exécuter cette commande depuis un disque d’installation de debian par exemple…
Et tous les problèmes liés au boot comme la gestion du fstab ou de crypttab, de grub ou de initramfs comme cités précédemment sont-ils gérés par cette commande ?

Je doute que cette commande soit incluse dans l’installateur Debian. Plutôt un système live, ou un autre système installé.

Non, elle ne fait que chiffrer la partition et rien d’autre.

Parce qu’avec des supports en LVM, tu peux déplacer les stockages sur un autre disque avant de tout remettre en place dans le disque d’origine de façon hyper-pratique et possiblement en continuant à utiliser le système. Personnellement, c’est un truc que j’ai déjà fait, pas pour passer à LUKS, mais pour changer l’amorçage d’une machine suite à un remplacement de carte mère (BIOS→EFI).
J’avais dû bouger un RAID5 vers d’autres disques pour le recréer en ajoutant la partition du début de l’EFI. J’avais fait ça pendant son utilisation, ça avait pris trois plombes, mais c’est c’est super sympa de pouvoir avoir cette souplesse. LVM c’est bon, mangez-en !

Supposons que j’utilise cryptsetup-reencrypt, quelles sont les manips que je dois faire avant, pour que ce ne soit pas le cauchemar après ?

Bien vu, je n’y avais pas pensé.

Etait-ce bien utile dans ce cas d’utilisation ? Le changement de carte mère occasionnait une interruption de service de toute façon. Pourquoi ne pas plutôt avoir réduit la taille du RAID et ajouté la partition EFI à la fin des disques ? Une partition EFI ne doit pas forcément être au début du disque. Aussi, était-il nécessaire de changer l’amorçage en EFI, d’autant plus qu’à mon avis l’EFI complique particulièrement la mise en place d’un amorçage redondant avec du RAID logiciel ? La nouvelle carte mère n’était pas capable d’amorcer en mode BIOS/legacy ?

Il y a des opérations à faire avant mais aussi après.

Si une partition séparée pour /boot n’existe pas déjà :
Créer une partition pour /boot, la formater, la monter sur un point de montage temporaire et y copier le contenu de /boot.
Editer /etc/fstab pour y ajouter le montage de la partition sur /boot.
La démonter et la remonter (sur /boot).
Si amorçage EFI, démonter et remonter la partition EFI.
Réinstaller GRUB avec grub-install.
Mettre à jour la configuration de GRUB avec update-grub.
S’il n’y a pas de place pour créer une partition /boot, il faudra réduire une partition. Si c’est la partition racine et qu’elle n’est pas formatée en btrfs, il faut le faire quand la partition n’est pas montée donc depuis un autre système.

Note : Il n’est pas absolument indispensable de créer une partition /boot non chiffrée car GRUB sait lire le format LUKS. Mais la version de GRUB incluse dans buster ne sait lire que le format LUKS original (LUKS1) donc il faut s’assurer que cryptsetup-reencrypt applique ce format et non le nouveau format LUKS2.
https://www.debian.org/releases/stable/amd64/release-notes/ch-whats-new.fr.html#cryptsetup-luks2

Installer le paquet factice cryptsetup et ses dépendances.
Sauvegarder les données importantes.
Redémarrer avec un autre système pour réaliser les opérations suivantes.
Réduire le système de fichiers de la partition racine d’au moins 2 Mio pour l’en-tête LUKS.
Chiffrer la partition racine avec cryptsetup-reencrypt.
Récupérer l’UUID LUKS de la partition avec blkid ou autre.
Ouvrir la partition chiffrée avec cryptsetup.
Monter le volume chiffré sur un point de montage temporaire.
Editer /point_de_montage/etc/crypttab pour ouvrir la partition chiffrée par son UUID avec le même nom que celui utilisé lors de l’ouverture manuelle.
Editer /point_de_montage/etc/fstab pour remplacer l’identifiant UUID= de la racine par /dev/mapper/nom_du_volume_chiffré.
Lancer un chroot dans /point_de_montage.
Mettre à jour l’initramfs avec update-initramfs.
Quitter le chroot et tout démonter.
Allumer un cierge et redémarrer.
(sous réserve d’oubli de ma part)

Alors, toujours envie ?

Ca me tente :smiley:
Je reste tout ça le week-end prochain, en attendant je ferai une sauvegarde de la partition Linux avec clonezilla.
Et il me semble que je dois aussi réduire la partition linux avant de crypter non ?

Le système de fichiers, pas la partition, pour laisser de la place à l’en-tête LUKS. J’avais oublié, je l’ajoute.

Je passe peut-être pour un idiot mais quelle est la différence entre le système de fichier et la partition ?
Et pour la partition de boot on parle bien de ça :

mc2@MERCURE:~$ sudo mount | grep boot
/dev/sdb1 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
mc2@MERCURE:~$ 

Auquel cas je n’ai pas besoin de modifier la config actuelle de grub

Si possible exerce-toi avec une machine virtuelle ou une installation jetable.

La partition, c’est le contenant (la boîte).
Le système de fichiers, c’est le contenu.
Imagine que tu dois insérer une couche intermédiaire (LUKS) entre le contenu et la boîte. Si le contenu remplit complètement la boîte, ça va déborder et du contenu va être perdu. Il faut donc en enlever un peu avant de passer la couche.

Non, ça c’est la partition EFI qui est montée sur /boot/efi et non /boot. Cette partition est souvent beaucoup trop grande (500 Mo) et peut être réduite plus facilement que la partition racine pour créer une partition /boot. Mais dans le meilleur des cas une partition /boot de 300 ou 400 Mo, ce n’est quand même pas énorme de nos jours pour y mettre 3 noyaux et leurs initramfs qui ont tendance à l’embonpoint avec tout ce qu’on y met (notamment les pilotes et firmwares graphiques pour plymouth). S’il y a un swap de plusieurs Go, c’est peut-être plus facile de lui piquer 500 Mo.