FreeBSD: Chiffrement disque entier

Maj le 13/01/2016

Bonjour à tous,
Cela fait longtemps que je n'ai rien posté du coup je m'y remets avec un billet portant sur le chiffrement d'un disque entier sous FreeBSD.

J'ai réalisé cette procédure sur un FreeBSD 10.2 64Bits.

Il existe 2 types de chiffrement sous FreeBSD:

  • gbde (GEOM Based Disk Encryption)
  • geli (également basé sur GEOM mais avec une nouvelle classe)

Personnellement j'ai choisi la deuxième méthode, elle est plus récente et également plus rapide (dixit le handbook FreeBSD).

Pour réaliser ce chiffrement voici les différentes étapes.

Tout d'abord, il convient de charger le module kernel nécessaire en ajoutant au fichier /boot/loader.conf:

geom_eli_boot="YES"

Si vous ne souhaitez pas redémarrer, vous pouvez le charger à la main:

kldload geom_eli

Il faut maintenant générer une clé privée qui servira pour le chiffrement et le montage du disque:

dd if=/dev/urandom of=/root/crypt.key bs=64 count=1
geli init -s 4096 -a HMAC/SHA512 -e AES-CBC -K /root/crypt.key /dev/vtbd1

Attention! l'option -a fait perdre beaucoup d'espace disque! En effet, cette option permet de stocker un hash des fichiers pour en vérifier l'intégrité, le man indique que seul 89% de l'espace disque sera disponible, la différence étant gardé pour stocker le hash des fichiers.

Cette clé est protégée par une passphrase qu'il vous sera demandé de saisir.

Il faut maintenant attacher la clé au disque:

geli attach -k /root/crypt.key /dev/vtbd1

Un nouveau périphérique sera créé avec l'extension .eli.

Il reste à créer le système de fichiers (attention étape très longue, pour un disque de 800Go, il faut compter quasiement 24H dans mon cas - 1Vcpu/1Go de ram):

dd if=/dev/random of=/dev/vtbd1.eli bs=1M
newfs /dev/vtdb1.eli

Il nous reste à monter le nouveau disque:

mount /dev/vtbd1.eli /mnt/crypto

Après un reboot, il sera nécessaire d'effectuer une tâche avant de pouvoir monter le disque:

geli attach -k /root/crypt.key /dev/vtbd1

Sans cela, il n'y a pas de disque /dev/vtbd1.eli de présent.

Au niveau charge cpu je n'ai pas noté de très grandes augmentations (de l'ordre de 2/3%), cependant cette VM n'a pas encore une charge assez importante pour le voir.

Have a nice day.