-
Hardline 0.4.0 Stable
released this
2026-10-19 04:12:06 +00:00 | 49 commits to main since this releaseA–F security grade, a self-contained HTML report, scheduled
watchre-audits,hardline explain, and RHEL 9 / Rocky Linux 9 / AlmaLinux 9 support with guarded firewalld.Released 2026-10-19.
Added
- An A–F security grade, weighted by severity, in
auditoutput and the JSON report (grade.letter,grade.percent). A failing high-severity control caps an A at B. hardline report [--out FILE]: the audit as a self-contained HTML page with the grade, a "fix first" list and a link for every finding. No scripts or external requests (strict CSP), light and dark themes, works on phones and prints cleanly.--outcreates a new 0600 file and never overwrites or follows an existing path.hardline watch enable|disable|run|status: a systemd timer (hourly, daily or weekly, with jitter and catch-up after downtime) that re-audits and compares with the previous run. A grade drop, a newly failing control or an outside edit to a file Hardline wrote exits 1, sohardline-watch.serviceshows insystemctl --failedandOnFailure=hooks fire. Skips a run while a change awaitsconfirmor another hardline command holds the lock. Results go to/var/lib/hardline/watch.json(0600).hardline explain <id> [--json]: why a control matters, exactly what it checks, whatapplywrites, the preflight checks, and how to undo it. Works offline and without root; an unknown id suggests close matches. The text comes fromcontrols/guides.toml, which also builds the website, so the CLI and https://sudosecurity.org/hardline/ never disagree.- RHEL 9, Rocky Linux 9 and AlmaLinux 9 support for the
baselineprofile: dnf/rpm package handling,sshd.service, a newselinux-enforcingcheck in phase 3, and SELinux labels restored on every file Hardline writes. Tested on Rocky 9.8 and AlmaLinux 9.8 VMs with SELinux enforcing. - Guarded firewalld support on RHEL 9, Rocky Linux 9 and AlmaLinux 9: when firewalld isn't running,
apply --phase 2installs it if needed, opens SSH and every listening port in the default zone while keeping existing zone rules, validates withfirewall-offline-cmd --check-config, and starts it under the confirm/revert/boot guard. Rollback restores the zone file exactly and stops firewalld again. Tested on Rocky 9 with SELinux enforcing. - Controls can be limited to one distro family with
os = ["debian"]oros = ["rhel"].
Fixed
- Boot-guard reverts now also stop units the reverted change enabled; disabling alone didn't cancel a start job already queued for that boot.
- Rollback disables units before restoring files. Before, reverting an nftables change failed with "Unit file hardline-firewall.service does not exist" because the unit file was already removed, so the boot guard reported a failed revert.
audit,diff,status,controlsand dry-runapplyexit 3 when stdout fails for a reason other than a closed pipe (for example a full disk), instead of exiting 0 with a truncated report.- The dpkg lock wait is one 5-minute budget for the whole package install, not 5 minutes per
apt-getcall.
Install
Prebuilt binaries are published for the latest release only. Use the latest release, or build this tag from source:
git clone --branch v0.4.0 https://git.sudosecurity.org/sudosecurity/hardline.git && cd hardline cargo build --release --lockedFull changelog: https://git.sudosecurity.org/sudosecurity/hardline/compare/v0.3.1...v0.4.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- An A–F security grade, weighted by severity, in