rpm -V 验证目的

rpm -V 验证目的

我被告知我应该这样做,rpm -Va因为:

必须配置操作系统,以便系统文件和命令的加密哈希与供应商值匹配...如果没有加密完整性保护,未经授权的用户可能会在不被发现的情况下更改系统命令和文件

所以 arpm -Va | grep '^..5'已经完成,如果有任何返回,那就是应该是一个问题

通过从 DVD 进行全新安装,我可以成功满足该标准。

不过,我也是告诉配置文件,例如,/etc/ssh/sshd_config更不用说/etc/audit/audit.rules一些明显的其他文件来使系统正常运行,更改这些文件当然会导致这些文件与供应商值不匹配,因此rpm -Va返回的主要是S.5....T

有人可以解释一下这样做的目的或理由吗?以及grep '^..5'应该如何工作?有没有一种方法可以使这项工作顺利进行——是的,我更改了 .conf 文件,但已rpm更新为不将指定的包标记为已改变的

答案1

首先从简单的部分开始,该grep '^..5部分研究以任意两个字符开头且后跟 的行的输出5。这5代表(从man rpm):

5 摘要(以前的 MD5 总和)不同

作为相应文件已更改的相当好的指示器。

接下来,我鼓励任何rpm -Va | grep ...调查忽略配置文件。正如您所指出的,这些文件旨在由系统管理员更改。幸运的是,它们在rpm -Va输出中用标记表示c

输出的格式是一个 9 个字符的字符串,一个可能的属性标记:

c %config configuration file.
d %doc documentation file.
g %ghost file (i.e. the file contents are not included in the package payload).
l %license license file.
r %readme readme file.

来自包头,后跟文件名。

...所以我会考虑以下内容:

sudo rpm -Va | awk '/^..5/ && $2 != "c"'

grep ^..5...它将这个想法与忽略被分类为配置文件的文件联系在一起。或者,您可以捕获每个标记的输出行,然后将您接受更改风险的配置文件“列入白名单”——然后,当假定的静态配置文件发生更改时,您会收到警报。

如果不重新打包 RPM,我不知道如何更新 RPM 数据库中的摘要以表明您已更改配置文件,这就是我建议上述解决方法的原因。

相关内容