Comment chiffrer des disques, des partitions et des fichiers à l'aide de LUKS sur Linux Debian

Crypter les données sur les disques durs ou SSD, les partitions et les fichiers est aujourd'hui essentiel. Actuellement, nous avons la possibilité de crypter les données d'un serveur NAS, d'un ordinateur de bureau et même d'un ordinateur portable. Surtout, les ordinateurs portables sont l'endroit où le cryptage des données est le plus nécessaire, car si nous le perdons, ils pourraient accéder à toutes nos données, de la même manière que si nous perdions notre disque dur ou notre clé USB. Aujourd'hui, dans cet article, nous allons vous apprendre à crypter tout le contenu du disque dur à partir de zéro, en utilisant LUKS dans Linux/Unix.

Dans les systèmes d'exploitation Linux, nous avons de nombreuses options pour crypter les données sous Linux, par exemple, nous pouvons utiliser dm-crypt, LUKS, eCryptfs et même des programmes comme Veracrypt qui sont vraiment polyvalents et hautement recommandés. LUKS (Linux Unified Key Setup) nous permet de crypter des disques, des partitions mais aussi des volumes logiques que nous créons sur notre ordinateur. Certains des avantages de LUKS par rapport aux autres sont que son utilisation est vraiment simple, sans avoir à configurer ou à exécuter des commandes compliquées, il est inclus dans le noyau lui-même, par conséquent, les performances lors du cryptage / décryptage des données seront très élevées, nous devons tenez également compte du fait que nous pouvons gérer la clé de cryptage comme nous le souhaitons.

Comment chiffrer des disques, des partitions et des fichiers à l'aide de LUKS sur Linux Debian

Nous allons diviser ce tutoriel clairement en deux sections, dans la première section nous vous apprendrons comment installer un système d'exploitation Debian avec cryptage sur toute la partition, crypté par défaut, et dans la deuxième section nous vous apprendrons comment crypter le ordinateur une fois Debian installé normalement, pas de cryptage sur la partition par défaut. Un détail très important est que la partition orientée vers le « boot » ne sera pas chiffrée, pour permettre la lecture des informations, mais le reste du disque sera chiffré avec LUKS, soit des partitions soit des volumes logiques (LVM).

Installer Debian ou Linux avec le cryptage LUKS par défaut

Dans l'assistant d'installation Debian, soit avec l'interface utilisateur graphique complète, soit avec l'assistant d'installation avec interface minimale, nous avons la possibilité de configurer l'intégralité du disque avec un LVM crypté, afin d'avoir une confidentialité maximale lors de l'utilisation de l'ordinateur, car toutes les données sur la partition système et les données seront cryptées.

Nous devrons simplement choisir "Guidé - Utiliser le disque entier et configurer LVM crypté", puis nous choisirons le disque, et sélectionner si nous voulons tout dans une partition ou le séparer par partitions, cela n'a pas d'importance car nous pouvons séparer le / partition d'accueil dans d'autres.

Il indiquera que, si nous voulons enregistrer toutes les modifications apportées, il est fortement recommandé d'utiliser LVM pour étendre ou diminuer ultérieurement sa capacité. Une fois que nous l'avons fait, le système d'exploitation se chargera d'effacer l'intégralité du disque avec des données aléatoires pour améliorer la sécurité et éviter la récupération de données. Cela prendra un certain temps, selon la taille du disque que nous avons sélectionné.

Une fois terminé, il nous dira de mettre le mot de passe de cryptage, de crypter et décrypter le disque avec ce mot de passe. Au minimum, il est recommandé de mettre 8 caractères, mais notre recommandation est de mettre au moins 12 caractères, en utilisant un mot de passe fort. Une fois terminé, nous obtiendrons un résumé de tout ce que l'assistant d'installation de Debian fera sur notre disque, le plus important est la partie du "cryptage sda5_scrypt", un détail important est que le /boot ne sera pas crypté, et ni le échange (swap), par conséquent, nous vous recommandons de ne jamais utiliser de swap, ni de le crypter par la suite.

Une fois que nous avons vu tout ce qui va être fait, nous indiquons que nous voulons écrire les modifications sur le disque, et également installer le chargeur de démarrage dans le grub, en sélectionnant le disque / dev / sda que nous avons.

Une fois l'installation terminée, le grub sortira, et nous choisirons la première option, ou nous laisserons le temps passer. Il nous demandera automatiquement le mot de passe pour pouvoir démarrer le système d'exploitation, si nous n'entrons pas le mot de passe directement, il ne pourra pas démarrer, car tout est crypté. Si nous entrons la clé, nous verrons comment les différents services commencent à démarrer dans Debian.

Si nous voulons vérifier les partitions que nous avons créées, nous pouvons mettre la commande suivante :

lsblk --fs

Si on veut voir les caractéristiques de LUKS (algorithme de chiffrement symétrique utilisé, longueur de clé etc), on peut mettre la commande suivante :

cryptsetup luksDump /dev/sda5

Le /dev/sda5 est dans notre cas, si vous avez fait une installation différente il est possible que ces données changent. Comme vous pouvez le voir, LUKS crypte toutes les données avec AES-XTS dans sa version 512 bits, utilise un PBKDF argon2i et un hachage SHA256.

Comme vous l'avez vu, configurer notre système d'exploitation avec Linux par défaut est vraiment simple, il suffit de suivre les étapes de l'assistant de configuration, sans rien faire d'autre. Une fois que nous savons comment crypter toutes les données par défaut, voyons comment le faire lorsque le système d'exploitation est déjà installé.

Configurer le cryptage LUKS sur un système déjà installé sans cryptage préalable

Dans cette section du didacticiel, nous allons voir comment nous pouvons crypter des partitions lorsqu'elles sont déjà créées, et même comment nous pouvons crypter n'importe quel fichier avec LUKS que nous avons dans le système d'exploitation. Nous effectuerons ces tests avec un système Debian 10 sans avoir quoi que ce soit de crypté par défaut, pas de partition système, de données ou quoi que ce soit.

La première chose à faire est d'installer LUKS dans le système d'exploitation, car il n'est pas installé par défaut si nous ne l'avons pas utilisé dans l'assistant d'installation. L'installation se fait directement depuis le dépôt officiel de Debian comme suit :

sudo apt install cryptsetup

Une fois installé, nous pouvons l'utiliser pour crypter le contenu des disques durs, des partitions ou de tout périphérique de stockage amovible.

Avant de commencer, il est toujours conseillé de formater complètement la partition et de réécrire les données , pour avoir la meilleure sécurité possible, de cette façon, toute la partition ou le disque sera réécrit avec des informations aléatoires, de sorte qu'il est très difficile ou presque impossible de récupérer des informations. Actuellement, LUKS n'autorise pas le cryptage du disque ou de la partition lorsqu'il est utilisé, nous devrions donc le faire à partir d'un autre ordinateur. De plus, vous devez utiliser ” cryptsetup-rechiffrer ” qui nous aidera à recrypter complètement la partition, sans perte de données, bien qu'il soit fortement recommandé de faire une sauvegarde des fichiers importants avant de le faire. Cet outil vous permet de chiffrer les données sur le périphérique LUKS sur site, mais la partition ne doit pas être utilisée.

Crypter n'importe quel disque ou partition (avec perte de données)

La première chose que nous devons faire est de créer une nouvelle partition sur le disque, pour l'utiliser plus tard. Nous exécutons la commande suivante :

sudo fdisk /dev/sdb

Et nous continuons à mettre "n" pour créer une nouvelle partition, nous mettons "p" pour la rendre primaire, et nous acceptons les valeurs qui nous indiquent d'avoir une partition de tout le disque dur, si nous voulons la rendre plus petite, nous devra modifier les secteurs pour cette partition en particulier.

Une fois cela fait, nous devons mettre la partition sdb1 nouvellement créée au format LUKS, pour cela nous exécutons la commande suivante :

sudo cryptsetup luksFormat /dev/sdb1

Nous mettons « OUI », entrons le mot de passe que nous voulons et attendons qu'il soit prêt.

Si nous exécutons la commande :

lsblk -f

Nous pourrons voir tous les disques durs, les partitions et le système de fichiers que nous utilisons. Nous devrions voir que sur sdb1 nous avons "crypto_LUKS" tel qu'il apparaît ici :

Une fois que nous l'avons fait, nous devrons ouvrir cette partition avec LUKS que nous venons de créer, pour cela nous mettons la commande :

cryptsetup luksOpen /dev/sdb1 particioncifrada

Nous introduisons le mot de passe, puis nous réexécutons le «lsblk -f» et «partition cryptée» apparaîtra, c'est le nom d'identifiant que nous avons donné, mais nous pouvons le changer à tout moment.

Maintenant nous devons donner le format de fichier à cette partition, la chose normale serait de le faire aussi avec EXT4, pour cela, nous mettons la commande suivante :

mkfs.ext4 /dev/mapper/particioncifrada

Et nous aurons déjà le système de fichiers EXT4 sur cette partition cryptée.

Maintenant, nous devons monter la partition dans un répertoire, pour ce faire, nous devons créer dans /home ou où nous voulons le point de montage :

mkdir -p /home/bron/particioncifrada/archivos

Et maintenant il faut le monter :

mount /dev/mapper/particioncifrada /home/bron/particioncifrada/archivos

Et si on accède au répertoire «/home/bron/partition cryptage/fichiers» on peut y écrire toutes les données qu'on veut, le cryptage est à la volée et totalement transparent.

Si nous redémarrons l'ordinateur, l'unité ne sera pas montée, et nous n'aurons pas la partition ouverte avec LUKS, par conséquent, chaque fois que nous redémarrons et que nous voulons accéder à cette partition, nous devrons procéder comme suit :

cryptsetup luksOpen /dev/sdb1 particioncifrada

Nous entrons le mot de passe lorsqu'il est demandé et montons à nouveau l'unité :

mount /dev/mapper/particioncifrada /home/bron/particioncifrada/archivos

Si nous voulons qu'elle soit ouverte et montée automatiquement au début du système d'exploitation, nous devrons éditer les fichiers /etc/crypttab et /etc/fstab pour mettre cette partition, mais notre recommandation est que vous montiez l'unité manuellement et demandez le mot de passe, par sécurité, car sinon, vous devrez stocker la clé en clair dans la partition /boot/.

Maintenant, nous savons tout ce que nous devons savoir pour pouvoir crypter des disques ou des partitions complets à l'aide de LUKS et le faire directement depuis Linux, même lorsque le système est déjà en cours d'exécution, nous devrons faire attention à nos mots de passe, mais nous parlerons de un système extrêmement sécurisé avec cryptage des données.