J'ai un SSD et un disque dur.
Lors de l'installation d'Ubuntu, je souhaite "Effacer le disque et installer Ubuntu" ainsi que "Crypter la nouvelle installation d'Ubuntu à des fins de sécurité".
Cela fait mon/home sous SSD mais je voudrais l’avoir sous HDD mais aussi crypté. Comment puis-je faire cela?
EDIT:
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 732M 0 part /boot
└─sda3 8:3 0 222,4G 0 part
└─sda3_crypt 253:0 0 222,4G 0 crypt
├─ubuntu--vg-root 253:1 0 206,4G 0 lvm /
└─ubuntu--vg-swap_1 253:2 0 15,9G 0 lvm [SWAP]
sdb 8:16 0 931,5G 0 disk
└─sdb1 8:17 0 931,5G 0 part
└─home_drive 253:3 0 931,5G 0 crypt /mnt
Ah, le partitionnement personnalisé. C’est amusant, surtout lorsque vous essayez de chiffrer plusieurs volumes. Je vais supposer que vous ne voulez pas aller trop fo (oui, c'est ma structure de partition) et utiliser LVM à l'intérieur de LUKS ici. Je vais aussi supposer que vous avez déjà installé des choses, car cela simplifie un peu le processus.
Vous allez devoir commencer par créer une nouvelle partition EXT4 sur votre disque dur. Faites-le prendre autant de place que vous le souhaitez.
Ensuite, vous devrez exécuter cryptsetup
pour configurer le cryptage. La commande que vous voulez sera:
cryptsetup luksFormat /dev/sdXY
Remplacez /dev/sdXY
par tout ce qui pointe vers votre nouvelle partition EXT4. Vous serez invité à choisir un mot de passe. Choisissez un fort et écrivez-le . Vous n'aurez pas à vous en souvenir au moment où vous aurez terminé (vous verrez pourquoi plus nous allons dans ce post).
Ensuite, nous devons créer une autre partition ext4
à l'intérieur de votre conteneur LUKS, qui finira par contenir /home
. Ces commandes permettront d'atteindre ceci:
cryptsetup open --type luks /dev/sdXY home_drive
mkfs -t ext4 /dev/mapper/home_drive
cryptsetup close home_drive
Ensuite, lancez blkid
et notez l’UUID de votre nouveau conteneur LUKS (en /dev/sdXY
). Vous en aurez besoin dans une seconde.
Maintenant, nous devons configurer quelque chose appelé decrypt_derived
, qui vous permet de "chaîner" les opérations de déchiffrement.
En faisant cela, nous allons permettre à un mot de passe de fonctionner sur les deux lecteurs. En effet, votre premier lecteur déchiffré sera le mot de passe de votre deuxième lecteur. Votre mot de passe (choisi ci-dessus) fonctionnera toujours en cas d'urgence (pensez récupération de données ou similaire).
Exécutez les commandes/modifications de fichiers ci-dessous. Assurez-vous de renommer ubuntu_crypt
de la manière dont votre cryptage actuel est appelé (voir /etc/crypttab
pour le trouver). Remplacez également /dev/sdXY
par votre nouvelle partition LUKS.
/lib/cryptsetup/scripts/decrypt_derived ubuntu_crypt > /tmp/home_keyfile
cryptsetup luksAddKey /dev/sdXY /tmp/home_keyfile
shred -u /tmp/home_keyfile
Ensuite, vous voudrez ajouter la ligne suivante à /etc/crypttab
:
home_drive UUID=<your_drive_uuid> ubuntu_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
Si vous utilisez un disque SSD pour votre disque dur, veillez à remplacer luks,keyscript=...
par luks,discard,keyscript=...
.
/etc/fstab
Maintenant que votre système est configuré et peut monter automatiquement le lecteur, nous devons en informer /etc/fstab
.
Heureusement, il ne s'agit que d'une seule ligne qui doit être ajoutée sous l'entrée /
dans /etc/fstab
. Cette ligne ressemblera à quelque chose comme:
/dev/mapper/home_drive /mnt ext4 errors=remount-ro 0 1
Ensuite, vous allez vouloir monter votre nouvelle partition home (prête à fonctionner!). Vos commandes seront quelque chose comme:
cryptsetup open --type luks /dev/sdXY home_drive
mount /dev/mapper/home_drive /mnt
Copiez votre dossier de départ actuel sur le nouveau lecteur et assurez-vous que tout se présente bien.
Enfin, il vous suffit d’exécuter la commande ci-dessous pour que votre système prenne conscience de votre cryptage:
update-initramfs -u -k all
Redémarrez votre système et assurez-vous de ne saisir votre mot de passe qu'une seule fois. Si vous avez besoin de le faire plus d'une fois, quelque chose s'est mal passé. Vérifiez toutes vos étapes.
Une fois que vous êtes de nouveau connecté, vérifiez que /mnt
contient toutes vos données personnelles.
Vous allez maintenant vouloir rouvrir /etc/fstab
et modifier votre nouvelle ligne en remplaçant /mnt
par /home
. Ça devrait ressembler à ça:
/dev/mapper/home_drive /home ext4 errors=remount-ro 0 1
Enregistrez le fichier.
Exécutez update-initramfs -u -k all
une fois de plus et redémarrez votre système.
Une fois la sauvegarde effectuée, exécutez lsblk
et assurez-vous que votre répertoire personnel est monté sur le nouveau lecteur.
Une fois que vous êtes heureux, vous devrez vous débarrasser de vos anciennes données personnelles. Le problème est qu'un montage va remplacer le dossier actuel par lui-même, il n'y a donc aucun moyen d'accéder à ces données (et vous ne pouvez pas supprimer votre répertoire personnel pendant l'exécution). Donc, vous devrez faire un bindmount:
mount --bind / /mnt
Exécutez touch /mnt/home/test
, puis exécutez immédiatement cat /home/test
et assurez-vous qu'il se plaint que le fichier est introuvable. Si le fichier est trouvé, il y a un problème avec votre configuration de montage.
Une fois que vous êtes sûr que /home/test
n'existe pas mais que /mnt/home/test
existe, vous pouvez supprimer votre ancienne maison avec rm -rf /mnt/home/*
.
Votre système sera maintenant sur votre SSD et votre répertoire personnel sera sur son propre disque crypté!