问题
在某些情况下,怀疑来自 rpm 安装的系统中的文件已被更改、更改或者篡改。
例如,系统被黑,ssh 的二进制文件被篡改。
如何检查自安装以来是否对其进行了更改?
https://onitroad.com 更多教程
解决方法
使用以下命令验证并检查自安装后使用 rpm 或者 yum 安装在系统上的文件是否已更改:
# rpm -V [PACKAGE_NAME]
如果自安装以来我们在 rpm 中更改了任何文件,它将在上述命令输出中列出。
每行将以一个特定的标志开始,指示更改。
每个标志的含义如下表所示:
标志 | 含义 |
---|---|
S | 文件大小不同 |
M | 模式不同(包括权限和文件类型) |
5 | MD5 总和不同 |
D | 设备主要/次要编号不匹配 |
L | readLink(2) 路径不匹配 |
U | 用户所有权不同 |
G | 组所有权不同 |
T | mTime 不同 |
例子
- 怀疑SSH服务器被篡改。
所以我们先检查一下分发文件的rpm:
# yum provides */sshd openssh-server
所以 openssh-server 是在系统中提供 ssh 二进制文件的 rpm。
- 接下来,检查 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 校验和和修改时间戳。
- 这里我们可以尝试使用yum重新安装包,从存储库中获取原始分发文件:
# yum reinstall openssh-server
在这个特殊的例如。
需要重启SSH服务器。
# service sshd restart
对于基于 systemd 的发行版,请使用 systemctl 重新启动服务:
# systemctl restart sshd
日期:2020-09-17 00:13:15 来源:oir作者:oir