Skip to main content

Déverrouillage Automatique Partition Principale

Pour réaliser ce tuto il est nécessaire d'avoir au préalable créé la partition principale chiffrée avec LUKS.
Voir Partitionnement des disques + Chiffrement (avancé)

Le but de ce tuto est de pouvoir déverrouiller la partition principale d'un serveur avec une clé USB. La clé USB contiendra un fichier qui correspondra à une clé accepté par LUKS.


L'automatisation du déverrouillage d'une partition chiffrée au démarrage peut-être mis en place en suivant les étapes suivantes :

  • 1/ Création d'un fichier de clé random
  • 2/ Ajouter le fichier de clé à la partition LUKS
  • 3/ Créer le script de déverrouillage
  • 4/ Activer les modules attendu
  • 5/ Recompiler l'init

1/ Création d'un fichier de clé random 

la commande suivante créera un fichier au contenu aléatoire d'une taille de 4096 bits (mieux qu'un mot de passe de 20/30 caractères....). Vous pouvez utiliser n'importe quel fichier comme fichier clé, mais je pense qu'un fichier de 4kb avec un contenu aléatoire convient bien.

sudo dd if=/dev/urandom of=/root/keyfile bs=1024 count=4

Comme vous pouvez le voir avec l'arrtibut of , le fichier sera généré dans le dossier /root avec le nom keyfile.

Avant d'utiliser la nouvelle clé, rendre le fichier clé accessible en lecture seule à root

sudo chmod 0400 /root/keyfile

Cela rendra le fichier clé lisible uniquement par root. Si quelqu'un accède à ce fichier clé, vous avez de toute façon un problème plus important sur votre serveur.

Une autre solution consiste à attribuer à root:root le droit d'accès au fichier clé souhaité et à le placer dans le dossier /root.

2/ Ajouter le fichier à LUKS

Les dispositifs LUKS/dm_crypt peuvent contenir jusqu'à 10 fichiers clés/mots de passe différents. Ainsi, en plus du mot de passe déjà configuré, nous allons ajouter ce fichier clé comme méthode d'autorisation supplémentaire.

sudo cryptsetup luksAddKey /dev/sdX /root/keyfile

Il vous sera d'abord demandé d'entrer un mot de passe (existant) pour déverrouiller le lecteur. 


3/ Préparer le support USB

Tout d'abord nous allons identifier notre support USB pour après le formater dans leun format attendu.compatible avec un noyau linux . 

Pour lister les disques nous allons utiliser la commande fdisk -l ce qui donnera : 

...
Disque /dev/sdb : 57,62 GiB, 61872793600 octets, 120845300 secteurs
Disk model: DataTraveler 3.0
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x6d3f073d

Périphérique Amorçage Début       Fin  Secteurs Taille Id Type
/dev/sdb1    *           63 120845087 120845025  57,6G  b W95 FAT32
...