openscap通过oscap xccdf eval命令配合ssg基准文件可完成规范合规扫描;需先验证安装与策略文件路径,再指定profile(如cis、stig)、输出xml结果和html报告,并可选fetch-remote-resources提升准确性。

直接用 oscap xccdf eval 命令配合 SSG(SCAP Security Guide)提供的标准基准文件,就能完成一次规范、可复现的系统安全配置合规性巡检扫描。关键不是“能不能扫”,而是选对策略、看清结果、避免误操作。
确认环境与内容就绪
确保已安装基础组件:
-
yum install -y openscap-scanner scap-security-guide(RHEL/CentOS)或apt install -y openscap-utils scap-security-guide(Ubuntu/Debian) - 验证内容路径存在:
/usr/share/xml/scap/ssg/content/下应有类似ssg-rhel8-ds.xml的文件(版本需匹配当前系统) - 运行
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml查看支持的 profile 列表,例如xccdf_org.ssgproject.content_profile_cis、_stig、_pci-dss等
执行标准合规扫描并生成报告
以 RHEL 8 扫描 CIS Level 1 基线为例,推荐这条命令:
sudo oscap xccdf eval \ --profile xccdf_org.ssgproject.content_profile_cis \ --results scan-results.xml \ --report scan-report.html \ --fetch-remote-resources \ /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
-
--profile决定检查哪套标准,CIS 侧重通用加固,STIG 更严苛,PCI-DSS 聚焦支付场景 -
--results输出结构化 XML,便于后续解析或存档 -
--report生成带详情和修复指引的 HTML 报告,打开即可浏览 -
--fetch-remote-resources启用后可拉取最新 OVAL 定义,提升检测准确性(需联网)
快速定位问题与理解修复逻辑
HTML 报告中每条失败项都分三块:
- Description:规则作用(如“禁止 root 远程 SSH 登录”)
- Rationale:为什么必须满足(如“防止高权限账户暴露于网络”)
- Remediation:怎么修——重点看这里
修复方式按图标区分:
- bash 图标:提供可复制粘贴的命令(如
sed -i '/^PermitRootLogin/c\PermitRootLogin no' /etc/ssh/sshd_config),建议先在测试机验证再上线 - ansible 图标:对应 Ansible Playbook 片段,适合批量部署
- 无图标项:涉及人工审批、物理控制、日志保留周期等策略类要求,不能靠脚本解决,需走流程确认
进阶:按需裁剪扫描范围
不建议全量扫描所有规则。可用 tailoring 或自定义 profile 提升效率:
- 导出当前基准的可调参数:
oscap xccdf generate fix --profile xccdf_org.ssgproject.content_profile_cis /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml > cis-tailor.xml - 编辑
cis-tailor.xml,关闭不适用项(如禁用 IPv6 相关检查),再用--tailoring-file cis-tailor.xml加载执行 - 也可用
oscap xccdf resolve预处理 profile,生成精简版 XCCDF 文件供重复使用











