首页/系统/信创系统运维速查/rpm -Va 系统文件完整性核对
安全加固65 条

rpm -Va 系统文件完整性核对

rpm -Va 比对全部已装包文件与 RPM 数据库记录(校验和/权限/属主/大小),快速发现被替换的系统文件;输出留档后过滤研判。

信创系统运维速查系统更新于 2026-10-13

rpm -Va 是做什么的

rpm -Va 把系统上所有已安装包的文件与 RPM 数据库里记录的属性逐一比对,检查文件大小、权限、属主、属组、符号链接目标、修改时间与内容摘要,输出任何不一致的条目。它是 RPM 系系统(麒麟、openEuler 等)上快速发现系统文件被替换或改动的手段之一,代价是输出量大、误报多,因此正确做法是先落盘留档,再按规则过滤后研判。

基本信息

适用平台RPM 系发行版,deb 系对应 debsums 等工具
全量核对rpm -Va,输出到文件便于过滤
单文件核对rpm -Vf /usr/bin/ls
所属包查询rpm -qf /usr/bin/ls
权限要求普通用户即可运行,读取部分文件需 root

典型使用场景

  • 安全事件后快速筛查系统二进制是否被替换
  • 等保核查要求主机具备完整性检查手段,作为定期巡检项
  • 变更后核对:确认升级或打补丁只影响了预期文件
  • 排查异常进程时确认其可执行文件未被篡改
  • 交付验收阶段留存一份基线输出,后续对比使用
  • 与 AIDE 等工具交叉验证,提高结论可信度

全量与单文件核对

全量与单文件核对
rpm -Va > /tmp/rpm-va.txt 2>&1        # 完整输出落盘留档
wc -l /tmp/rpm-va.txt                 # 先看条目规模
# 过滤配置与文档类差异,聚焦二进制与库
grep -vE ' c | d |/var/log|/etc/' /tmp/rpm-va.txt | head -40
rpm -Vf /usr/bin/ls                   # 核对单个文件
rpm -qf /usr/bin/ls                   # 确认文件属于哪个包
grep '5' /tmp/rpm-va.txt | head -20   # 只看摘要(校验和)失配的条目

第二列标记读法

标记含义关注程度
S文件大小变化与内容变化常同时出现
M权限或文件类型变化权限被改动需重点确认
5内容摘要不一致最需要关注,说明内容被改
U属主变化可能被提权或被误改
G属组变化权限体系变动线索
T修改时间变化与正常升级时间对照
标记多位同时出现时以内容摘要(5)与权限(M)最为关键:配置文件(标记 c)与文档(标记 d)的差异多为正常变更,二进制与库文件的摘要失配才需要深入核实。
输出量很大,先重定向到文件再过滤,避免在终端里翻看整屏内容漏掉关键行;保留原始输出文件,作为后续比对与说明的依据。

易错点

  • 直接看全量输出不做过滤,条目太多导致重要失配被淹没,实际等于没查
  • 看到校验和失配就直接认定为入侵,忽略正常升级与配置调整的可能,应先对照变更记录
  • 把配置文件与文档差异当成异常,产生大量噪音,掩盖真正需要处理的问题
  • 不保存原始输出,事后无法说明检查范围与结论依据

数据来源与参考

  • man 8 rpm(-V 校验)
  • RHEL 文档(验证包完整性)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌