Files
nixos-workstations/README.md
T

129 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# NixOS Workstations — v1.8 LAB
Cette branche valide un poste NixOS/KDE dont le compte utilisateur est géré par `systemd-homed` et dont le home est chiffré en LUKS2.
## Parcours cible
```text
localadm
└── nixos-rebuild switch
├── logiciels
├── systemd-homed
├── création automatique d'Alice
│ └── /home/alice.home → LUKS2
└── SDDM
Alice se connecte avec
le mot de passe temporaire
assistant première session
┌───────┼────────────┐
▼ ▼ ▼
nouveau PIN FIDO2 enrôlement
mot de vierge FIDO2 homed
passe
home déverrouillable par
mot de passe OU YubiKey+PIN
```
## Principes
- `localadm` reste un compte NixOS classique d'administration locale.
- `alice` n'est jamais déclarée dans `users.users` : elle appartient exclusivement à `systemd-homed`.
- Le déploiement précrée Alice automatiquement avant SDDM.
- Le home d'Alice est `/home/alice.home`, conteneur LUKS2 monté sur `/home/alice` pendant la session.
- Aucun `pam_u2f`.
- Aucun `u2f-mappings`.
- La YubiKey démarre sans PIN ; Alice choisit son premier PIN.
- L'enrôlement FIDO2 est stocké dans le record `systemd-homed`.
- Le mot de passe reste un moyen de déverrouillage de secours.
## Déploiement LAB
Le mot de passe temporaire est :
```text
LaboTest@1980
```
Il est volontairement connu pour le laboratoire et n'est pas un secret de production.
Depuis `localadm` :
```bash
cd ~/nixos-workstations
sudo nixos-rebuild switch -I nixos-config="$PWD/configuration.nix"
```
Un simple `nixos-rebuild build` construit la génération mais ne l'active pas ; il ne peut donc pas exécuter la précréation du compte sur le système courant.
## Première connexion
Alice sélectionne son compte dans SDDM et utilise le mot de passe temporaire. L'assistant se lance automatiquement et impose trois opérations réussies :
1. remplacement du mot de passe temporaire ;
2. création du premier PIN sur une YubiKey FIDO2 vierge ;
3. enrôlement de cette YubiKey dans le home chiffré `systemd-homed`.
Les secrets sont transmis aux helpers par stdin puis à `homectl` par le mécanisme `CREDENTIALS_DIRECTORY`. Aucun mot de passe ni PIN n'est placé dans les arguments de processus.
## Recovery key
La v1.8 **ne crée volontairement aucune recovery key avant ou pendant la première session**. Cela évite le problème validé en LAB où `homectl update` demandait la recovery key existante lors de la synchronisation des clés de chiffrement.
L'ajout et l'escrow d'une recovery key d'administration feront l'objet d'une étape distincte.
## SDDM et comptes homed sous NixOS
Le greeter SDDM reçoit explicitement le chemin des modules NSS NixOS :
```nix
services.displayManager.sddm.settings = {
Users = {
MinimumUid = 1000;
MaximumUid = 60513;
};
General = {
GreeterEnvironment =
"QT_WAYLAND_SHELL_INTEGRATION=layer-shell,LD_LIBRARY_PATH=${config.system.nssModules.path}";
};
};
```
Ce réglage est nécessaire sur le LAB pour que le greeter puisse énumérer Alice, dont l'UID `systemd-homed` est dans la plage 6000160513.
## Arborescence importante
```text
configuration.nix
modules/
├── homed.nix
├── users.nix
├── security.nix
├── software.nix
└── workstation-setup.nix
workstation-setup/
├── CMakeLists.txt
├── org.raspot.nixosworkstations.setup.desktop
└── src/
├── CMakeLists.txt
├── Config.h.in
├── Main.qml
├── ProvisioningBackend.cpp
├── ProvisioningBackend.h
└── main.cpp
```
`/etc/nixos/hardware-configuration.nix` reste local au poste et n'est pas versionné dans le dépôt partagé.
## État LAB
Le workflow doit encore être validé de bout en bout sur le poste réel avec la v1.8. Ne pas considérer cette archive comme une version production.