Sécurité et durcissement
Le module darkone.system.security applique progressivement les recommandations
de durcissement ANSSI BP-028 🡕
(GNU/Linux). Chaque hôte choisit un niveau et une catégorie ; les règles
adaptées s’activent automatiquement.
Niveau et catégorie
Section intitulée « Niveau et catégorie »darkone.system.security = { enable = true; level = "intermediary"; # minimal | intermediary | reinforced | high category = "server"; # base | client | server};| Niveau | Pour quoi |
|---|---|
minimal | Socle commun, tout système (défaut) |
intermediary | Recommandé pour la quasi-totalité des systèmes |
reinforced | Systèmes sensibles ou multi-utilisateurs |
high | Compétences et budget dédiés (recompilation noyau) |
| Catégorie | Pour quoi |
|---|---|
base | Règles universelles, toujours appliquées (défaut) |
client | Poste de travail (bureau, USB, session, verrouillage) |
server | Serveur (réseau durci, journalisation, services exposés) |
Exclure un groupe de règles
Section intitulée « Exclure un groupe de règles »Certaines règles cassent un usage légitime. On désactive un groupe par tag :
darkone.system.security.excludes = [ "needs-hibernation" "needs-jit" ];| Tag | Désactive |
|---|---|
kernel-recompile | Règles noyau custom (R15–R27) |
no-ipv6 | Désactivation IPv6 (R13, R22) |
no-mac | MAC / AppArmor (R37, R45) |
needs-hibernation | Conserve l’hibernation (portables) |
needs-jit | Autorise le JIT (Java, .NET, V8, Wasm) |
needs-usb-hotplug | Désactive USBGuard |
Déroger à une règle précise
Section intitulée « Déroger à une règle précise »Une règle unique se contourne avec une justification obligatoire :
darkone.system.security.exceptions = { R9.rationale = "Conteneurs rootless requis en développement.";};MAC, pare-feu, fail2ban
Section intitulée « MAC, pare-feu, fail2ban »- MAC / AppArmor (R37, R45) : confinement applicatif ; SELinux est structurellement non supporté sur NixOS (exceptions R46–R49 par défaut).
- Pare-feu & réseau : durcis par la catégorie
server(modulenetwork). - fail2ban : bannit les IP après tentatives répétées ; service à activer dans le catalogue.
Confinement des services et amorçage
Section intitulée « Confinement des services et amorçage »Deux règles demandent une décision explicite de l’administrateur :
- Bac à sable systemd (R52, R55, R63) : le confinement complet s’applique aux
unités déclarées dans
darkone.security.services.hardenedUnits— vide par défaut, car un durcissement aveugle casserait des services. On y ajoute les unités au cas par cas après test. - Amorçage et chiffrement (R3, R5, C6) : le module avertit si le Secure
Boot ou LUKS ne sont pas détectés, mais ne reconfigure pas le démarrage. Ces
protections se déclarent dans la configuration disque de l’hôte (
disko,lanzaboote).
darkone.security.services.hardenedUnits = [ "nginx" "gitea" ];