我们目前正在对运行 CentOS 的服务器进行 PCI 合规性评估。
我们遇到了很多“严重”问题,但建议进行修复。解决问题的建议主要是将软件包更新到最新版本。我以为这是个好建议,直到我运行了“sudo yum update”,然后再次运行该扫描,令人沮丧的是,问题并没有消失。
我与我们的托管服务提供商(这是一个专用服务器)进行了交谈,他们说虽然版本是最新的,但它会有各种补丁来修复已知的安全问题。
他们建议对软件包运行一个变更日志命令,然后对扫描中标记的每个严重问题提出申诉。所以我针对第一个问题创建了一个申诉,它要求提供软件包的版本、补丁级别以及我认为我们免于申诉的原因。
那么,在 CentOS 中,显示每个单独安装的软件包的版本号和补丁级别的最简单方法是什么?
答案1
rpm -q <package name>
将为您提供软件版本号以及软件包发布号,但您需要调查其内容rpm --changelog <package name>
以确定已应用了哪些补丁。
答案2
列出所有包:
rpm -qa
列出所有匹配简单模式的包:
rpm -qa 'kernel*'
答案3
您的 PCI 审计员是个白痴(令人惊讶)。他们只是运行像 nessus 这样的自动化工具,它什么也不做,只是将服务报告的版本与漏洞列表进行比较上游版本——他们不会说“嘿,这是该软件包的补丁级别 N,RedHat 已经修补了所有已知漏洞”。
最后,你必须获得报告中指出的易受攻击的 CVE 列表(如果审计人员甚至不能给你这个……那么,他们是白痴,所以你已经完蛋了)然后翻阅 CentOS 变更日志,看看它们是否已经修复(可能还有一个安全报告系统可以查看)。RHN 有某种 CVE 查找服务,但由于你没有为 RHEL 付费,所以你可能无法访问它。