我负责审计Unix服务器重要农场的安全configuration。 到目前为止,我想出了一种方法来评估基本configuration,而不是安装的更新。
这里的问题是我不能相信这些机器上的包pipe理工具。 确实,其中一些很长一段时间没有与存储库同步(所以我不能在Redhat做一个“yum check-updates”)。 有些服务器甚至连接到互联网,并使用公司存储库。
另一个问题是,我有多个目标系统:AIX,Debian,Centos / Redhat等…因此,版本可能不同(AIX),可用的工具将有所不同。
最后但并非最不重要的是,我无法在目标系统上安装任何东西。 所以我需要使用脚本来获取信息,并且可以:直接处理它,或者保存信息以便稍后在服务器上处理它(这可能碰巧运行的是与检索信息的分布不同的分布)。
我能想到的最好的想法是:
要么检索机器上已安装的软件包列表(例如debian上的dpkg -l),并在专用服务器上处理它(直接parsingdebian软件库的“Packages”文件)。 不过,AIX和Redhat的问题仍然是一样的。
或使用Nessus的脚本来评估安装的软件包的漏洞,但我觉得这有点脏。
有没有人知道这样做的更好/有效的方式?
PS:我已经花时间回顾了类似问题的一些答案。 不幸的是, 厨师,傀儡……不符合我必须满足的要求。
编辑:长话短说。 我需要在Windows系统上有像MBSA一样的Unix系统缺失更新列表。 我没有权限在这个系统上安装任何东西,因为它不是我的。 我所有的都是脚本语言。
谢谢。
通常有一些代理caching服务充当上游存储库和目标机器之间的媒介。 它有助于节省带宽,并在RHEL / CentOS世界中进行更快速的部署,这将是spacewalk ,Debian和衍生产品debmirror ,在AIX世界可能是NIM服务器。
鉴于AIX缺乏ruby(尽pipe有些端口确实存在),适合您的环境的configurationpipe理将是cfengine 。 如果这看起来有点矫枉过正,你也可以尝试一下,只需要python 。 甚至还有AIX的pyhton 。
服务的版本,服务的名称,软件包的名称等等也是常见的甚至是预期的,每个平台都有所不同。 你需要处理分离数据和代码。 如果一个成熟的configurationpipe理系统不能满足你的要求,我真的怀疑,一堆自酿的脚本会。
第三项要求:“我不能在目标系统上安装任何东西……”根本不明确,而且似乎与您使用私人回购的事实相冲突。
最后但并非最不重要的一点,pipe理软件包只是您为了保护和审计系统而需要执行的任务的1%。