Crypter une disque dur externe (Luks)
Documentation
- Manpage
- Cryptsetup/LUKS :
- Mount a LUKS partition at boot : http://askubuntu.com/questions/21025/mount-a-luks-partition-at-boot
Installation du cryptage
Démonter (umount) le disque dur externe si nécessaire
sudo fdisk -l (repérer le HDD - par exemple sdb1) sudo umount /dev/sdb1
Créer le conteneur
sudo cryptsetup luksFormat -c aes /dev/sdb1
cryptages plus forts :
sudo cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb1
ou
sudo cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sdb1
Cette commande génère une clé maître et nous demande une clé (passphrase) initiale, correspondant au slot 0. La clé est à saisir 2 fois. Bien retenir cette passphrase.
Connecter le conteneur
sudo cryptsetup luksOpen /dev/sdb1 usbdisk
Le conteneur se connecte avec le nom « usbdisk« .
Le mot de passe correspondant à la passphrase initiale (slot 0) est demandé pour accéder au conteneur.
Le conteneur est accessible par le chemin /dev/mapper/nom_du_mapping (ici = /dev/mapper/usbdisk)
Formater et nommer la partition
sudo mkfs.ext4 -L NomPartition /dev/mapper/usbdisk
Renommer sans formater (ext2 / 3 / 4 )
sudo e2label /dev/mapper/usbdisk NouveauNom
Monter la partition
sudo mount -t ext4 /dev/mapper/usbdisk /mnt/hdd
Fermer le conteneur
sudo umount usbdisk sudo cryptsetup luksClose usbdisk
Gérer les mots de passe
Il est possible d’attribuer 8 mots de passe (slot de 0 à 7).
Le premier mot de passe est attribué à la création (slot0)
L’ajout d’un mot de passe :
sudo cryptsetup luksAddKey /dev/sdb1
La suppression d’un mot de passe :
sudo cryptsetup luksKillSlot /dev/sdb1 num_slot
sudo cryptsetup luksRemoveKey <device> [<key file>]
Attention si on supprime tous les mots de passe, l’accès à la partition n’est plus possible.
Création d’un fichier qui contient le mot de passe
- Création clé aléatoire, stockage dans un fichier, fichier read only, puis ajout dans un slot. Ici le mot de passe est aléatoire et fait 4096 bits.
sudo dd if=/dev/urandom of=/root/.keyfile bs=1024 count=4 sudo chmod 0400 /root/.keyfile sudo cryptsetup luksAddKey /dev/sdb1 /root/.keyfile
Informations sur le conteneur
sudo cryptsetup luksDump /dev/sdb1
sudo cryptsetup luksUUID <device>
Compléter /etc/crypttab
http://manpages.ubuntu.com/manpages/karmic/man5/crypttab.5.html
Col 1 : nom du conteneur
Col 2 : chemin soit /dev/sdxx soit avec l’UUID
Col 3 : nom du fichier avec le mot de passe, none pour demander le mot de passe au montage
Col 4 : options
Exemple : demande le mot de passe, 3 essais
SP1T UUID=<UUID> none luks,tries=3
Exemple : utilise le contenu du fichier /root/.keyfile comme mot de passe.
SP1T /dev/disk/by-uuid/<UUID> /root/.keyfile luks
Compléter /etc/fstab
Créer le répertoire SP-1T dans /media/
/dev/mapper/SP1T /media/SP-1T ext4 rw,user,noauto 0 2
Dans cet exemple on a créé une partition cryptée en ext4 qui se nomme SP1T et qui va s’ouvrir dans un répertoire /media/SP-1T.
/dev/mapper/BackupL /media/toutancarton/BackupL ext4 defaults 0 2
Ici on monte la partition cryptée BackupL (partition ext4).
- Nom de la partition : e2label
- Création du répertoire : mkdir
- Montage de la partition : crypttab et fstab
Sauvegarde / restauration de l’en-tête
- Stores a binary backup of the LUKS header and keyslot area.
sudo cryptsetup luksHeaderBackup <device> --header-backup-file <file>
- Restores a binary backup of the LUKS header and keyslot area from the specified file.
sudo cryptsetup luksHeaderRestore <device> --header-backup-file <file>
WARNING : Header and keyslots will be replaced, only the passphrases from the backup will work afterwards.
