问题

在某些情况下,怀疑来自 rpm 安装的系统中的文件已被更改、更改或者篡改。
例如,系统被黑,ssh 的二进制文件被篡改。
如何检查自安装以来是否对其进行了更改?

如何检查任何 RPM 文件是否被篡改
https://onitroad.com 更多教程

解决方法

使用以下命令验证并检查自安装后使用 rpm 或者 yum 安装在系统上的文件是否已更改:

# rpm -V [PACKAGE_NAME]

如果自安装以来我们在 rpm 中更改了任何文件,它将在上述命令输出中列出。
每行将以一个特定的标志开始,指示更改。
每个标志的含义如下表所示:

标志含义
S文件大小不同
M模式不同(包括权限和文件类型)
5MD5 总和不同
D设备主要/次要编号不匹配
LreadLink(2) 路径不匹配
U用户所有权不同
G组所有权不同
TmTime 不同

例子

  1. 怀疑SSH服务器被篡改。
    所以我们先检查一下分发文件的rpm:
# yum provides */sshd
openssh-server

所以 openssh-server 是在系统中提供 ssh 二进制文件的 rpm。

  1. 接下来,检查 openssh-server rpm 提供的文件是否有任何更改:
# rpm -V openssh-server

如果任何文件被篡改,它将在上面的命令输出中列出。
类似于下面的东西:

S.5....T. /usr/sbin/sshd

这里的 falgs 表示 SSH 服务器二进制文件已被篡改:

S file Size differs
5 MD5 sum differs
T mTime differs

该文件与随 RPM 一起分发的文件具有不同的大小、MD5 校验和和修改时间戳。

  1. 这里我们可以尝试使用yum重新安装包,从存储库中获取原始分发文件:
# yum reinstall openssh-server

在这个特殊的例如。
需要重启SSH服务器。

# service sshd restart

对于基于 systemd 的发行版,请使用 systemctl 重新启动服务:

# systemctl restart sshd
日期:2020-09-17 00:13:15 来源:oir作者:oir