web-dev-qa-db-fra.com

Ubuntu encrypte SSD + / home (HDD)

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
  • swap redimensionner ce sera une prochaine étape (ou même désactiver)
2
Gohan

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.

Partie I: Configuration de votre partition LUKS

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.


Partie II: Activer le déchiffrement automatique

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=....


Partie III: Ajouter à /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


Partie IV: le tester

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.


Partie V: déménager pour de vrai

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é!

2
Kaz Wolfe