Installation initiale
Ce fichier contient des instructions d'installation de la configuration NixOS sur notre serveur, « Protomolecule ». Elles ont été écrites en parallèle de la première installation et permettraient de réinstaller notre configuration.
Voici les grandes étapes d'installation :
-
Se connectez sur l'iDRAC de Protomolecule
-
Depuis ce dernier, démarrez sur une image bootable NixOS en insérant comme CD/DVD « Virtual Media » dans la console KVM de l'iDRAC une image ISO minimale de NixOS préalablement téléchargée, cette dernière accessible depuis le menu "Boot".
Assurez-vous que Secure Boot soit désactivé dans les paramètres du BIOS.
-
Configurez le réseau après démarrage sur l'ISO bootable comme décrit dans la section relative à l'environement reseau de la documentation sur l'hébergement de notre serveur.
-
Connectez-vous par SSH au serveur.
-
Activez les fonctionnalités expérimentales
flakesetnix-commandpour les usersrootetnixos. -
Récuperez une copie de ce dépôt sur le serveur.
-
Générez une clef de secours pour le chiffrement des disques :
tr --delete --complement '[:alnum:]' < /dev/urandom | head -c 16Stockez-la chiffrée par age pour les clefs des administrateurices système dans le fichier luks-backup-passphrase.age.
Il est important que la clef de secours soit stockée chiffrée et sans risque de perte.
-
Formattez les disques selon le partitionnement décrit par notre configuration et montez les nouvelles partitions dans
/mnt:Attention, ceci détruit les données des disques.
sudo nix run github:nix-community/disko -- --mode disko --flake .#protomolecule -
Effectuez des bind mounts pour les sous-dossiers de la partition persistante comme le ferait impermanence :
sudo mkdir -p /mnt/persistent/nix sudo mkdir -p /mnt/persistent/var/lib/nixos sudo mount --bind -m -o X-fstrim.notrim /mnt/persistent/nix /mnt/nix sudo mount --bind -m -o X-fstrim.notrim /mnt/persistent/var/lib/nixos /mnt/var/lib/nixos -
Créez un jeu de clefs de signature pour signer des binaires EFI.
-
Installez le système :
# interagir avec des flakes nécessite d'avoir `git` accessible nix shell nixpkgs#git sudo nixos-install --flake .#protomolecule --no-root-password -
Configurez l'entrée de démarrage.
-
Redémarrez.
-
Activez Secure Boot en modifiant les paramètres du BIOS, en redémarrant et en inscrivant le jeu de clefs précédemment généré dans les variables EFI.
-
Une fois Secure Boot configuré, il faut sceller la clef de chiffrement dans le TPM.
Activez le TPM dans les paramètres de sécurité du BIOS, dans l'interface de l'iDRAC (« TPM Security » à mettre à « On »). Dans les paramètres avancés, sélectionnez l'algorithme SHA265.
Puis, pour scellez la clef :
sudo systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/disk/by-partlabel/disk-disk1-persistent1-encrypted sudo systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/disk/by-partlabel/disk-disk2-persistent2-encrypted sudo systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/disk/by-partlabel/disk-disk3-persistent3-encrypted