Luks USB ~ Monter automatiquement une partition chiffrée depuis un fichier sur une clé usb

Après ce précédent article sur le chiffrage de partitions sous linux, nous allons voir dans celui ci comment créer une partition chiffrée luks usb et monter celle ci automatiquement au démarrage du système. Pour cela, nous allons montrer un exemple de réalisation avec une partition home et nous n’allons plus utiliser de mot de passe, mais un fichier clé qui servira à décrypter la partition.
Il est possible de stocker celui ci sur le système, mais le mieux est de le laisser sur une clé usb ou un stockage amovible branché au boot. Si la clé est accessible, la partition sera montée, sinon elle sera ignorée, et le système bootera sans.

Dans cet article, nous créerons une nouvelle partition home, si notre clé usb est présente, le système utilisera celle ci, sinon il reprendra le home déjà existant.

Prérequis

  • Il faut le paquet cryptsetup installé
    su
    apt-get install cryptsetup
    sudo apt-get install cryptsetup
    yum install cryptsetup

  • Les UUID (identifiants uniques) de notre partition à chiffrer et de notre clé usb. si notre partition est /dev/sda9 et notre clé /dev/sdb1, alors on obtient les uuid ainsi
    ls -hal /dev/disk/by-uuid/ | grep sda9 | cut -d" " -f10
    ls -hal /dev/disk/by-uuid/ | grep sdb1 | cut -d" " -f10

Pour la suite, on appellerons nos uuid uuid-de-la-partition-chiffree et uuid-de-la-cle-usb

Créer une nouvelle partition home luks usb et récupérer les données de son ancien home

Nous allons commencer par créer la clé qui nous servira à déchiffrer notre partition. Nous allons générer un fichier à partir de données aléatoires. L’opération peut prendrede quelques secondes à quelques minutes selon la puissance de sa machine.

dd if=/dev/random of=/etc/key-home bs=1 count=64

Ensuite, nous chiffrons notre partition. Attention, toutes les donnéees présentes sur celle ci seront effacées.

cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 --key-size=512 /dev/sda9 /etc/key-home

Confirmer l’opération en tapant YES en majuscule, puis monter le volume

cryptsetup --key-file=/etc/key-home luksOpen /dev/disk/by-uuid/uuid-de-la-partition-chiffree home

Nous le formatons maintenant en ext4

mkfs.ext4 /dev/mapper/home

Et nous le montons pour copier le contenu du home actuel dessus afin de récupérer toutes nos données

mkdir /media/home/ && mount /dev/mapper/home /media/home
cp -R /home/* /media/home/

Enfin, grâce à la commande suivante, nous remettons les permissions des dossiers aux bons utilisateurs

for user in `ls /home/`; do if [ ! `grep ${user} /etc/passwd` = "" ]; then chown ${user}:${user} -R /media/home/${user}; fi; done;

Monter automatiquement la partition

Nous allons tout d’abord monter notre clé usb dans /media/usb pour y copier notre fichier de déchiffrage accessible en lecture seule par root

mkdir /media/usb && mount /dev/disk/by-uuid/uuid-de-la-cle-usb /media/usb
mv /etc/key-home /media/usb/ && chmod 100 /media/usb/key-home

Pour automatiser le montage de notre home chiffré et de notre clé usb, nous allons éditer les 3 fichiers suivants en rajoutant ces contenus

/etc/crypttab

home /dev/disk/by-uuid/uuid-de-la-partition-chiffree none luks,keyscript=/etc/cryptusb

/etc/cryptusb

#!/bin/sh
mount /dev/disk/by-uuid/uuid-de-la-cle-usb /media/usb
cat /media/usb/key-home
umount -l /media/usb

/etc/fstab

/dev/mapper/home /home ext4 defaults 0 0

Et nous rendons le script de montage de la clé éxécutable

chmod 700 /etc/cryptusb

Conclusion

Voila, si la clé luks usb est branchée, notre partition home chiffrée sera montée automatiquement, sinon la partition home du système sera utilisée (il y aura cependant plusieurs messages d’erreur au boot, mais cela est normal, ils indiquent juste l’incapacité à monter partition chiffrée).

C’est assez pratique pour laisser l’ordinateur démarrer en mode « public », mais il faut bien faire attention aux programmes qui stockent des données dans le home, car ceux ci ne marcheront plus, ou recréeront leurs fichiers de configuration et seront donc réinitialisés.

Attention toutefois à ne pas perdre le fichier key-home de la clé usb, car sans celui ci, il sera impossible de déchiffrer notre nouvelle partition home. On peut néanmoins lui ajouter un mot de passe à sa partition pour se garder un accès de secours

cryptsetup --key-file=/media/usb/key-home luksAddKey /dev/sda9
Luks USB ~ Monter une partition chiffrée depuis une cle usb : Monter automatiquement au boot une partition chiffrée avec cryptsetup et luks usb depuis un fichier de déchiffrage sur une cle USB. was modified:

Articles en relation :

Leave a comment

name*

email* (not published)

website