FreeBSD РDisque chiffr̩ et boot sur cl̩ USB

liAttention – Documentation partielle !
Cette exercice a été abandonné en cours d’installation.
Partial installation.

Après la Clé USB bootable chiffrée sous OpenBSD, le Disque chiffré et boot sur clé USB sous Linux et le Système bootable chiffré sur deux clés USB interdépendantes (et suite) sous Linux, voici le disque chiffré et boot sur clé USB sous FreeBSD.
Objectifs :
1. Chiffrer l’intégralité du disque dur ;
2. Placer le nécessaire pour le démarrage uniquement sur une clé USB amovible ;
3. Permettre le démarrage du système sans saisir de mot de passe.

Basé sur le tutoriel :
http://namor.userpage.fu-berlin.de/howto_fbsd9_encrypted_ufs.html

L’exercice est réalisé avec le DVD1 de FreeBSD V10.0 RELEASE amd64.

Installation

Commencer l’installation en démarrant sur le DVD. Choisir par défaut ‘Install‘, le type de clavier, le nom de machine et les catégories de logiciels à installer (Perso, je n’ai laissé que les ports).
Arrivé au partitionnement, on va abandonner les chemins tranquilles de l’installation guidée pour personnaliser la machine en fonction de nos objectifs. Choisir ‘Shell‘.

Sur ma machine, le disque dur est reconnu comme ada0 et la clé USB (64Mo) comme da0. On est proche de la confusion…

Le partitionnement que l’on va réaliser :
- da0 clé USB 64Mo
- - da0p1
- - da0p2 /boot
- ada0
disque dur interne
- - ada0p1 Partition chiffrée, label=enc
- - - enc.eli /

On va utiliser des tables des partitions de type GPT pour les deux disques :
# gpart destroy -F da0
# gpart destroy -F ada0
# gpart create -s gpt da0
# gpart create -s gpt ada0
# gpart add -t freebsd-boot -s 64k da0
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da0
# gpart add -t freebsd-ufs -l boot da0
# newfs -U gpt/boot
# gpart add -t freebsd-ufs -l enc ada0
# geli init -bl 256 gpt/enc

Saisir le mot de passe de chiffrement du disque. Voir les choses en grand!
# geli attach gpt/enc
# newfs -U gpt/enc.eli
# mount /dev/gpt/enc.eli /mnt
# mkdir /mnt/boot2
# cd /mnt
# ln -s boot2/boot boot
# mount /dev/gpt/boot /mnt/boot2

Les disques sont prêts, on quitte le shell pour revenir à l’installation…
# exit

L’installation des logiciels démarre… patience…

Choisir un mot de passe pour root. Configurer le réseau. Choisir le fuseau horaire. Sélectionner des logiciels à installer (Perso j’ajoute ntpd et retire sshd pour mon installation). Ajouter un utilisateur. On arrive enfin à un menu de fin d’installation, c’est ici que l’on va de nouveau quitter les chemins tranquilles de l’installation guidée.

Choisir ‘Exit‘ et ‘Yes‘ pour obtenir un shell dans l’environnement du système fraîchement installé.

Créer le fichier /boot/loader.conf avec ces deux lignes :
geom_eli_load="YES"
vfs.root.mountfrom="ufs:/dev/ad0p3.eli"

Modifier le fichier /etc/fstab, ajouter ces deux lignes :
/dev/gpt/boot /boot2 ufs rw,noatime 1 1
/dev/gpt/enc.eli / ufs rw,noatime 1 1

ATTENTION : Nous avons monté la clé USB dans le dossier boot2 avec un lien de boot vers boot2. il se peut que lors de l’installation, le lien boot soit supprimé et remplacé par un dossier. Cela a pour conséquence que tout le nécessaire au démarrage du système se retrouve dans la partition chiffrée au lieu d’être sur la clé USB non chiffrée. Il faut dans ce cas recopier tout ce qu’il y a dans boot vers boot2
J’ai du copier aussi tout ce qui se trouvait dans boot2 vers un sous dossier boot. Comme un fichier existait avec ce nom, je l’ai renommé dans boot2 et restauré son nom dans le sous dossier boot. Faut suivre… A partir de là le reste devrait marcher.

Quitter le shell :
# exit
Choisir ‘Reboot‘ pour redémarrer la machine…

Premier démarrage

Ça plante au redémarrage, il faut rebooter sur le CD pour accéder à la partition chiffrée et corriger le problème…

A compléter…

Attention – liDocumentation partielle !
Cette exercice a été abandonné en cours d’installation.