Luks est un système de fichier dont il indexe un block de données dont le contenu est chiffré. Ci-dessous on utilisera l'outil cryptsetup vu qu'il est bien supporté et de mon point de vue, la force de cette technologie réside sur deux points :
Ainsi, en fonction de la taille du block, il est aisé de déplacer et partager une arborescence de dossiers par exemple.
apt install cryptsetup
fallocate -l 100M container.img
openssl req -new -newkey rsa:4096 -sha512 -nodes -out secure.csr -keyout secure.key -subj "/C=FR/ST=Example/L=Example/O=Example/CN=example.org"
Notons que l'on peut faire pareille si l'on créée juste un fichier du type :
echo "ma clé privé" >> secure.key
Si l'on utilise la commande d'openssl, on pourra valider l'authenticité de la clé privé.
Formatons le block :
sudo cryptsetup luksFormat -d secure.key container.img
Sinon, il n'est pas obligatoire d'utiliser une clé mais une passphrase :
sudo cryptsetup -y luksFormat container.img
sudo cryptsetup luksOpen container.img -d secure.key container.open
Le dernier paramètre sera présent dans le dossier /dev/mapper/
Si l'on a choisie de le faire avec la passphrase :
sudo cryptsetup luksOpen container.img container.open
Une commande à faire qu'une seule fois pour lui donner un système de fichier. Ce qui va lui permettre de retrouver l'emplacement des fichiers :
sudo mkfs.ext4 /dev/mapper/container.open
Il reste plus qu'a monter le périphérique :
mount /dev/mapper/container.open /mnt
On le démonte :
umount /mnt
On sécurise :
cryptsetup luksClose -d secure.key container.open
Si l'on utilise une passphrase :
cryptsetup luksClose container.open
Supprimer une passphrase/clé :
# cryptsetup luksDump /dev/xvdc
Ajouter une clé/passphrase :
# cryptsetup luksAddKey /dev/xvdc