diff --git a/hosts/common/base.nix b/hosts/common/base.nix index 6d838b9..c969b74 100644 --- a/hosts/common/base.nix +++ b/hosts/common/base.nix @@ -36,16 +36,36 @@ # sont des postes clients), mais à ne SURTOUT PAS importer sur # pxe-server/configuration.nix, qui a besoin l'inverse (voir son # networking.nat) -- pxe-server n'importe pas ce fichier, donc ok. - # R8 ajoute des mitigations CPU dont "mds=full,nosmt" (désactive - # l'hyperthreading) : impact perf réel sur du matériel bas de gamme, - # c'est la vraie recommandation ANSSI au niveau "intermediary", pas - # une invention -- à surveiller sur les PC les plus faibles du parc. security.anssi = { enable = true; level = "intermediary"; category = "client"; + + # R8 (mitigations CPU) désactive l'hyperthreading via "mds=full,nosmt" + # -- impact perf trop lourd sur le matériel bas de gamme du parc (PC + # à 4 Go de RAM). On désactive donc la règle via le mécanisme d'exception + # prévu par le module lui-même (modules/anssi/options.nix), PAS en la + # contournant en silence. + exceptions.R8.rationale = "SMT (hyperthreading) volontairement conservé : impact perf trop lourd sur le parc (matériel bas de gamme, parfois 4 Go de RAM). Les autres mitigations de R8 sont réappliquées ci-dessous, à l'identique du texte source (modules/anssi/kernel-options.nix), sauf 'nosmt' remplacé par la valeur alternative documentée 'mds=full' (mitige MDS sans couper l'hyperthreading)."; }; + # Reprise verbatim de modules/anssi/kernel-options.nix (règle R8), sauf + # "mds=full,nosmt" -> "mds=full" (voir exception R8 ci-dessus). Toutes + # les autres valeurs viennent du texte source, aucune n'est inventée. + boot.kernelParams = [ + "l1tf=full,force" + "page_poison=on" + "pti=on" + "slab_nomerge=yes" + "slub_debug=FZP" + "spec_store_bypass_disable=seccomp" + "spectre_v2=on" + "mds=full" # sans ",nosmt" : hyperthreading conservé + "mce=0" + "page_alloc.shuffle=1" + "rng_core.default_quality=500" + ]; + # Pas (encore) couvert par le module ANSSI ci-dessus (R45 y est # explicitement listé en exception : "AppArmor is partially supported # on NixOS", modules/anssi/base.nix) -- repris tel quel du profil oreo.