Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Secure boot

Secure Boot permet d'autoriser le démarrage d'images seulement quand elles sont signées par un jeu de clefs définies par la politique en vigueur.

Nous utilisons Secure Boot pour empêcher le démarrage sur une image non reconnue : par exemple, si quelqu'un ayant un accès physique au serveur branche une clef USB.

Ainsi, nous utilisons nos propres clefs Platform Keys (PKs) qui signent le chargeur d'amorçage systemd-boot et pour chaque génération NixOS, une image contenant :

  • un chemin vers le noyau à démarrer et son haché pour vérifier son authenticité,
  • un chemin vers l'initrd à démarrer et son haché, et
  • les paramètres du noyau.

Il existe plusieurs modes Secure Boot, et seuls certains modes permettent d'enregistrer (« enroll ») des nouvelles clefs. Il faut une procédure particulière pour configurer Secure Boot et enroll les clefs : il faut transitionner dans le mode Secure Boot correspondant à l'opération souhaitée.

Pour comprendre les modes Secure Boot et les transitions entre ces modes plus en détail, vous pouvez vous référer à la spécification d'UEFI.

Créer la clef de signature de l'image

Lors de l'installation, il est nécessaire de créer la clef qui signera l'image.

sudo sbctl create-keys
mv /var/lib/sbctl /mnt/persistent/var/lib/
sudo mount --bind -m -o X-fstrim.notrim /mnt/persistent/var/lib/sbctl /mnt/var/lib/sbctl

Désactiver Secure boot

Il faut désactiver Secure Boot en allant dans le BIOS en suivant la documention d'iDRAC (Figure 9, page 15).

Enfin, il est possible de redémarrer en utilisant "Reset System (warn boot)", depuis le bouton "Power".

Activer Secure boot

Dans les paramètres de l'iDRAC (« BIOS Settings » > « System Security »), activez Secure Boot. La policy doit être « Custom » pour permettre l'utilisation de clefs et certificats customisés et le mode doit être « Audit Mode » pour permettre l'installation des clefs. Pour atteindre ce mode, la figure 3 de la documentation de l'iDRAC relative à Secure Boot peut être utile. Redémarrez ensuite.

Les clefs pour Secure Boot peuvent alors être renseignées :

sudo sbctl enroll-keys --microsoft --ignore-immutable

Redémarrez le système. Normalement, le mode de Secure Boot est passé en « Deployed Mode » dans les paramètres de l'iDRAC. Activez ensuite Secure Boot et redémarrez. Vérifiez que le système démarre bien et que Secure Boot est bien activé en exécutant sudo sbctl status.