运行时依赖
安装命令
点击复制技能文档
Linux 安全扫描脚本 scripts/security-audit.sh — 所有检查的单一入口点。该脚本是自包含的、可移植的,并且可以在任何现代 Linux 系统上运行。它可以自动检测可用的工具(ss/netstat、ufw/iptables/nftables、journalctl)并跳过不可用的工具。
快速开始 运行完整审计: bash scripts/security-audit.sh --all 或无参数(与 --all 相同): bash scripts/security-audit.sh
个别检查 运行任何单个检查: 命令 检查内容 --ssh 检查 sshd_config 中的 PermitRootLogin、PasswordAuthentication、Port 和 Protocol --ports 检查监听的 TCP 端口(使用 ss 或 netstat) --firewall 检查 ufw 状态、iptables 过滤规则和 nftables 规则集 --failed-logins 检查 lastb 输出和 journalctl 中的 SSH 身份验证失败(过去 24 小时) --sudoers 检查 Sudoers 文件权限(必须为 440)、文件存在、NOPASSWD 条目和完整的 sudo 访问授权 --world-writable 检查 /etc、/tmp、/var、/home、/opt 目录中的可写文件(深度 3) --suid 检查所有 SUID 二进制文件、风险评估和不寻常路径检测
示例: bash scripts/security-audit.sh --ssh --failed-logins
完整审计工作流 运行 bash scripts/security-audit.sh --all 该脚本将输出一个彩色化的报告到 stdout 一个结构化的 markdown 报告存储在 $REPORT 变量中(在同一 shell 会话中可访问) 对于程序化使用,请将输出重定向到文件
常见发现和建议 SSH 加固:禁用 root 登录、禁用密码身份验证、使用密钥身份验证、更改默认端口 防火墙:确保仅打开必要的端口;更倾向于默认拒绝 Sudoers:尽可能避免使用 NOPASSWD;保持权限为 440;审计谁具有完整的 sudo 访问权限 SUID:审查不寻常的 SUID 路径;最小化 SUID 二进制文件;检查常见的已知 CVE(例如 pkexec、sudo 等) 可写文件:这些是安全风险 —— 调查为什么它们是可写的并限制权限
注意 需要 root/sudo 权限来执行一些检查(failed-logins 读取 /var/log/btmp,ss 显示进程信息) 完全在 shell 中运行 —— 没有外部依赖项,仅使用标准 Linux 工具 尊重权限边界 —— 不可访问的检查将被记录,而不是强制执行
使用 GitHub、API 和 CLI 等工具可以进一步增强安全扫描脚本的功能。