Skip to content

Add Linux support: auditd, journald, shell logging, offline prep - #2

Merged
SecClay merged 1 commit into
masterfrom
linux-support
Oct 16, 2026
Merged

SecClay merged 1 commit into
masterfrom
linux-support

Conversation

@ClaySecAI

Copy link
Copy Markdown
Owner

Summary

Adds Linux support alongside the Windows scripts.

  • linux/install.sh installs auditd with the Neo23x0 ruleset (Apache-2.0, bundled with its license) and adjusts UID_MIN from /etc/login.defs.
  • Keeps more audit history (200 MB x 10 logs) and writes audit events to disk synchronously.
  • Makes journald persistent with rate limiting off.
  • Logs interactive bash commands to syslog (local6); --no-shell-logging skips it.
  • --with-sysmon installs Sysmon for Linux from Microsoft's package repo. Experimental, opt-in, and not bundled.
  • --dry-run, --revert (tracks files it created and backs up files it edits) and a lab-only confirmation, mirroring the Windows script.
  • Re-enables kernel auditing as the last step. Restarting journald on Ubuntu 22.04 switches it back off, which CI caught.
  • linux/prepare-offline.sh downloads the packages (apt, dnf/dnf5, yum, zypper, pacman) with a SHA256SUMS file for air-gapped labs; install.sh --offline-dir verifies it before installing.

Testing

tests/test-linux.sh runs dry-run, offline prep, offline install, a real exec event check (ausearch), a re-run and --revert. CI runs it on Ubuntu 22.04 and 24.04, and all jobs pass, including the existing Windows Server 2022/2025 jobs.

Fedora runs in a container, so it validates package install (dnf5), config edits and revert only. There is no systemd or kernel audit there, so the live checks are skipped and reported as skipped.

Not yet tested: RHEL-family (Rocky/Alma, dnf4 and the service auditd restart path), Debian, Kali, openSUSE (zypper), Arch (pacman), and --with-sysmon.

Not included

macOS, and Windows audit coverage changes (separate work).

linux/install.sh:
- installs auditd and the Neo23x0 ruleset (Apache-2.0, bundled with its
  license), adjusting UID_MIN from /etc/login.defs
- keeps more audit history (200 MB x 10 logs) and writes events to disk
  synchronously
- makes journald persistent with rate limiting off
- logs interactive bash commands to syslog (local6)
- --with-sysmon installs Sysmon for Linux from Microsoft's repo
  (experimental, opt-in, not bundled)
- --dry-run, --revert (tracks created files and backs up edited ones),
  and a lab-only confirmation, mirroring the Windows script
- re-enables kernel auditing as the last step (restarting journald on
  Ubuntu 22.04 switches it off)

linux/prepare-offline.sh downloads the packages (apt, dnf/dnf5, yum,
zypper, pacman) with a SHA256SUMS file for air-gapped labs.

tests/test-linux.sh and CI jobs run the flow on Ubuntu 22.04 and 24.04,
and the dnf paths in a Fedora container (no systemd there, so the live
kernel checks are skipped).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@SecClay
SecClay merged commit 8ccfc58 into ClaySecAI:master Oct 16, 2026
5 checks passed
ClaySecAI added a commit that referenced this pull request Oct 17, 2026
Add Linux support: auditd, journald, shell logging, offline prep
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants