Téléverser les fichiers vers "/"

This commit is contained in:
2026-08-19 11:58:30 +02:00
parent bfae7cbd26
commit b63f4d547d
2 changed files with 44 additions and 7 deletions
+40 -5
View File
@@ -1,3 +1,5 @@
> **État LAB v1.7 / Étape 2** : systemd-homed + LUKS2 pour Alice. L'enrôlement FIDO2 dans le home viendra à l'étape 3.
<div align="center">
# 🛡️ NixOS Workstations
@@ -74,7 +76,6 @@
```text
nixos-workstations/
├── configuration.nix
├── u2f-mappings
├── LICENSE
├── COMMERCIAL-LICENSE.md
├── PRODUCTION-CHECKLIST.md
@@ -142,7 +143,7 @@ Avec `users.mutableUsers = true`, ce hash sert à la création initiale du compt
### 🛡️ `security.nix`
Déploie le mapping utilisateur ↔ YubiKey et configure l'authentification PAM U2F/FIDO2 utilisée par le poste.
Étape 1 LAB : conserve uniquement les règles daccès à la YubiKey. Aucun mapping U2F et aucune authentification PAM/FIDO2 ne sont activés ; lenrôlement sera pris en charge ultérieurement par systemd-homed.
### ✨ `workstation-setup.nix`
@@ -199,7 +200,7 @@ Les étapes ne sont considérées terminées qu'après création des marqueurs :
```text
~/.local/state/nixos-workstations/password-initialized
~/.local/state/nixos-workstations/yubikey-pin-initialized
~/.local/state/nixos-workstations/yubikey-pin-created
```
---
@@ -337,9 +338,9 @@ Voir [`LICENSE`](LICENSE) et [`COMMERCIAL-LICENSE.md`](COMMERCIAL-LICENSE.md).
---
## Correctifs v1.1 du setup
## Correctifs v1.2 du setup
La version 1.1 durcit la brique `workstation-setup` :
La version 1.2 durcit la brique `workstation-setup` :
- l'utilisateur cible n'est plus compilé dans le binaire ; le lanceur le transmet avec `--target-user` ;
- les chemins des helpers sont générés dans `Config.h`, sans macro CMake fragile ;
@@ -362,3 +363,37 @@ Lancement manuel de l'interface :
```bash
nixos-workstations-setup --target-user alice
```
### Correctif v1.2 — contrôle de lutilisateur
La v1.1 pouvait refuser `alice` tout en affichant `alice` comme utilisateur courant et cible à cause dun ordre dinitialisation incorrect des membres C++. La v1.2 supprime l’état dautorisation mémorisé et vérifie directement lUID effectif du processus par rapport à lUID du compte cible. La compilation traite également les avertissements `reorder` comme des erreurs.
### Correctif v1.3 — changement de mot de passe avec PAM/U2F
La configuration conserve U2F pour les services PAM dauthentification, mais le désactive explicitement pour le service `passwd` avec `security.pam.services.passwd.u2f.enable = false;`. Cela évite que le changement de mot de passe lancé par lassistant soit intercepté par `pam_u2f`. Le message de timeout est également spécifique à l’étape en cours : mot de passe ou YubiKey.
### Correctif v1.4 — dialogue PAM `passwd`
Le helper de mot de passe accepte désormais l'invite PAM générique `Password:` pour l'authentification initiale. Les étapes sont suivies explicitement et les erreurs techniques sont journalisées sans secret.
### Correctif v1.5 — changement de PIN FIDO2 direct
La v1.5 n'utilise plus `expect` pour piloter les invites texte de `ykman` lors du changement de PIN. Le helper utilise directement `python-fido2` et `ClientPin.change_pin()` sur l'interface CTAP2 de la clé. Les secrets sont transmis au helper par stdin, jamais dans les arguments du processus. Une seule tentative CTAP2 est effectuée par validation.
## Étape 1 v1.6 — YubiKey vierge
Cette version valide uniquement l'initialisation d'une YubiKey FIDO2 vierge :
- aucun PIN FIDO2 initial ;
- aucun `u2f-mappings` dans Git ou `/etc` ;
- aucun `pam_u2f` actif ;
- le setup demande uniquement le nouveau PIN et sa confirmation ;
- `ClientPin.set_pin()` crée le premier PIN ;
- si un PIN existe déjà, l'opération est refusée sans tentative de PIN ;
- le mot de passe local continue de fonctionner comme dans la v1.5.
L'authentification FIDO2 du compte et le chiffrement LUKS2 ne font volontairement pas partie de cette étape.