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
+4 -2
View File
@@ -37,7 +37,7 @@ Attendu :
```text ```text
password-initialized password-initialized
yubikey-pin-initialized yubikey-pin-created
``` ```
9. Se déconnecter/reconnecter : l'assistant ne doit plus démarrer. 9. Se déconnecter/reconnecter : l'assistant ne doit plus démarrer.
@@ -58,7 +58,7 @@ sudo nixos-rebuild switch \
- Ne jamais modifier manuellement `/etc/shadow`. - Ne jamais modifier manuellement `/etc/shadow`.
- Le retour à une ancienne génération NixOS ne restaure pas les mots de passe mutables. - Le retour à une ancienne génération NixOS ne restaure pas les mots de passe mutables.
## Diagnostic v1.1 avant test de l'interface ## Diagnostic v1.4 avant test de l'interface
Dans la session `alice` : Dans la session `alice` :
@@ -71,6 +71,8 @@ Attendu au minimum :
```text ```text
current_user=alice current_user=alice
target_user=alice target_user=alice
current_user_utf8_hex=616c696365
target_user_utf8_hex=616c696365
authorized=yes authorized=yes
``` ```
+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"> <div align="center">
# 🛡️ NixOS Workstations # 🛡️ NixOS Workstations
@@ -74,7 +76,6 @@
```text ```text
nixos-workstations/ nixos-workstations/
├── configuration.nix ├── configuration.nix
├── u2f-mappings
├── LICENSE ├── LICENSE
├── COMMERCIAL-LICENSE.md ├── COMMERCIAL-LICENSE.md
├── PRODUCTION-CHECKLIST.md ├── PRODUCTION-CHECKLIST.md
@@ -142,7 +143,7 @@ Avec `users.mutableUsers = true`, ce hash sert à la création initiale du compt
### 🛡️ `security.nix` ### 🛡️ `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` ### ✨ `workstation-setup.nix`
@@ -199,7 +200,7 @@ Les étapes ne sont considérées terminées qu'après création des marqueurs :
```text ```text
~/.local/state/nixos-workstations/password-initialized ~/.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` ; - 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 ; - 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 ```bash
nixos-workstations-setup --target-user alice 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.