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
...