关键在“准”而非“快”,自动化巡检需对齐合规标准(如等保2.0、CIS)、检查项精准映射条款编号,分采集、聚合、报告三层实现,输出含可验证命令、备份路径及元数据,配合定时执行、告警与归档。

关键不在“快”,而在“准”——自动化巡检脚本能快速生成合规报告,前提是检查项对齐标准、输出结构可解析、结果能映射到具体条款。不拼速度,拼的是检查逻辑与合规框架的咬合度。
对齐合规基线,先筛再检
别一上来就写脚本。先明确用哪套标准:等保2.0二级?CIS Linux Benchmark?还是行业特定要求(如金融行业额外要求SSH双因子)?然后只保留适用项:
- 剔除容器环境里无意义的GRUB密码检查
- 云主机跳过物理控制台登录策略
- 标注每项对应的标准编号(如“[等保2.0 8.1.2.3]”),方便后续报告溯源
脚本设计:检查与报告分离,但数据同源
一个函数干两件事会难维护。推荐分层实现:
-
采集层:每个检查封装为独立函数(
check_ssh_permitroot、check_auditd_running),统一返回PASS/WARN/FAIL+ 简明描述 + 条款编号 -
聚合层:巡检结束后,用
awk或轻量 Python 脚本读取所有输出,统计各状态数量、提取 FAIL/WARN 条目、计算得分(例:满分100,每项 FAIL 扣10分) - 报告层:模板化生成文本或 Markdown 报告,含【高危项】【建议项】【处置命令】三栏,每条都带原始检查编号
让报告真正“合规可用”
监管或审计方不看花哨图表,要的是可验证、可追溯、可整改的内容:
- 每项问题必须附带执行命令和当前输出(如:
ss -tuln | grep :22→ 显示tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=1234,fd=3))) - 敏感操作(如修改
/etc/shadow)必须记录备份路径(/etc/shadow.bak.1745829360) - 报告头部注明巡检时间、主机名、内核版本、脚本版本号,确保结果可复现
落地提醒:定时+告警+归档缺一不可
脚本跑通只是第一步,真正在用才产生价值:
- 用
crontab固定每天凌晨执行,日志按日期命名存入/var/log/audit/ - 对
FAIL条目自动发邮件或企业微信消息(用curl调 Webhook 即可) - 保留最近30天报告,旧报告自动压缩归档,避免磁盘占满

















