Add BIO/NCSC hardening as opt-in modules (nothing auto-enabled) #6
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Discussion
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Help Wanted
Status
Need More Info
Prio - Hoog
Prio - Laag
Prio - Middel
styling
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
MinBZK/DAWO-NixOS#6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The generic profile ships secure boot, the desktop and
networking/client, but no system hardening, no audit/log/time sources and no USB control. For a government workstation the measuring stick is BIO + the NCSC guidelines, so today every operator adds all of that per host by hand. I run these controls on my own deployment and would like to upstream them.Proposal: a set of hardening capabilities, one file each under
modules/<category>/, following the existing layout. All opt-in, nothing is auto-enabled inprofiles-dawo-generic. The generic image stays the neutral grounding; the org/host picks the posture by importing what it wants. That keeps the image org-neutral and avoids forcing policy on a consumer.Set:
boot/hardening,nixos/hardening,services/{openssh,journald,chrony},services/usbguard(default-off and needs an allowlist, otherwise it blocks newly plugged devices, which is the obvious foot-gun), plus the more specialisednixos/{apparmor,pam-u2f,pam-oath,pki-overheid},services/{pcscd,auditd}andnetworking/{dns-tls,egress-deny}.Every control is mapped to its norm and origin in
docs/standards.md(BIO/NCSC, with CIS-DIL / ANSSI R-numbers / DISA STIG cross-refs and what came from securix/bureautix). It also lists the deliberate deviations. For example module loading and IPv6 are not disabled, because those break Netbird/WireGuard and connectivity respectively, and no SIEM shipper is included, since that is the org's choice and we only provide the sources.A draft is up on my fork for reference:
bram.buijs:feat/overheid-baseline.Question: is this welcome upstream, and is "ship everything, auto-enable nothing" the right default posture versus a small always-on base set? If so I'll open the PR.
Hardening als opt-in modules (BIO/NCSC) — niks standaard aanto Hardening als opt-in modules (BIO/NCSC). Geen modules standaard aanHardening als opt-in modules (BIO/NCSC). Geen modules standaard aanto Add BIO/NCSC hardening as opt-in modules (nothing auto-enabled)@bram.buijs zie de overkoepelende discussie in #8
@bram.buijs since we're adopting the workflow you've suggested in #8 (comment) , can we close this issue and continue the conversation there?
Yes, will close this issue.