Problem
Currently users have to either apply all rules (syshardn apply --level moderate) or manually specify individual rule IDs (--rules LNX-001 --rules LNX-002). This works but doesn't fit different environments well:
- Web servers need SSH hardening but not desktop services
- Workstations need screensaver locks but may keep USB storage
- PCI-DSS compliance needs specific controls, not all CIS rules
- Minimal server images need just kernel/filesystem rules
Manually building rule lists for each scenario is tedious and hard to share.
Solution
Add support for "profiles" - named bundles of rules that can be applied with a single command:
# Instead of listing 15 rule IDs...
syshardn apply --profile cis-level1-server
# Or combine multiple profiles
syshardn apply --profile web-server --profile pci-compliance
Implementation (v1 Scope)
From our discussion in #10, focus on core functionality:
Storage: Profiles stored as YAML in ~/.syshardn/profiles/
Creation Methods:
- Direct YAML editing (for power users)
- Simple CLI commands for quick setup
CLI Commands:
syshardn profile list
syshardn profile show cis-level1-server
syshardn profile copy cis-level1-server my-server
syshardn profile create my-profile --include "LNX-2*" --exclude LNX-602
Profile YAML Format
Need to document a clear template showing how to structure profile YAML files.
Integration Points
syshardn check --profile name (check compliance against profile)
syshardn apply --profile name (apply rules from profile)
- Profile resolution should work with existing
--rules, --level, --category flags
Problem
Currently users have to either apply all rules (
syshardn apply --level moderate) or manually specify individual rule IDs (--rules LNX-001 --rules LNX-002). This works but doesn't fit different environments well:Manually building rule lists for each scenario is tedious and hard to share.
Solution
Add support for "profiles" - named bundles of rules that can be applied with a single command:
Implementation (v1 Scope)
From our discussion in #10, focus on core functionality:
Storage: Profiles stored as YAML in
~/.syshardn/profiles/Creation Methods:
CLI Commands:
syshardn profile list syshardn profile show cis-level1-server syshardn profile copy cis-level1-server my-server syshardn profile create my-profile --include "LNX-2*" --exclude LNX-602Profile YAML Format
Need to document a clear template showing how to structure profile YAML files.
Integration Points
syshardn check --profile name(check compliance against profile)syshardn apply --profile name(apply rules from profile)--rules,--level,--categoryflags