scripts/security-audit.sh — the single entry point for all checks.
The script is self-contained, portable, and works on any modern Linux system. It auto-detects available tools (ss/netstat, ufw/iptables/nftables, journalctl) and gracefully skips unavailable ones.
Run a full audit:
bash scripts/security-audit.sh --all
Or with no arguments (same as --all):
bash scripts/security-audit.sh
Run any single check by name:
| Command | What it checks |
|---|---|
| --- | --- |
--ssh | PermitRootLogin, PasswordAuthentication, Port, Protocol in sshd_config |
--ports | Listening TCP ports (ss or netstat) |
--firewall | ufw status, iptables filter rules, nftables ruleset |
--failed-logins | lastb output and journalctl SSH auth failures (last 24h) |
--sudoers | Sudoers file permissions (must be 440), files present, NOPASSWD entries, full sudo access grants |
--world-writable | World-writable files in /etc, /tmp, /var, /home, /opt (depth 3) |
--suid | All SUID binaries, risk assessment, unusual path detection |
Example:
bash scripts/security-audit.sh --ssh --failed-logins
bash scripts/security-audit.sh --all$REPORT variable (accessible within the same shell session)共 1 个版本