我正在开发一个项目,我们需要能够定期告知并报告在我们的各种Linux / Unix服务器上安装了哪些软件。 我已经看了这个, 如何清点一个Linux服务器是什么软件/angular色“服务”客户端? ,张贴和这个, 开源库存代理 ,发布,并无法find信息,将build议我的问题的答案。 我不确定OCS Agent是否会像Windows一样在Linux / Unix服务器上报告。 是否有任何脚本,开源软件,软件代理等可以用来运行大量的Linux / Unix服务器来报告什么软件安装和安装什么版本?
=========================
更新的清晰度:
我正在寻找一种可靠的方法来确定Linux / Unix机器上是否存在特定的软件。 理想情况下,这将是一个远程解决scheme,我可以指向有问题的服务器,并返回结果,指示相关软件是否存在于该框中。 另外,我应该关心在Linux / Unix主机上安装软件的相关问题吗?
如何在处理这些情况的同时查明软件是否存在?
netcat重命名为purrmeow ,静态编译它,并通过调用libc而不是直接执行来运行它。 您可以尝试使用前几个字节的内容来识别任何文件,以检查可执行的幻数 ,然后记下没有家的任何文件 。 这将照顾意外或无辜的违规安装。 但是,如果有人想把某个东西放在适当的位置,并将它隐藏起来,那么你会很难受。
要真正偷偷摸摸,可以将一个可执行文件embedded到文件的某个垃圾文件中,然后将其映射到内存中。 哪里有意愿,哪里就有黑客……所以,如果这是一个审计职能,那么要小心任何方法的局限性。
通过ssh手动编写脚本实际上并不那么困难。
这就是说,我认为你会以这种错误的方式去做。 您应该通过configurationpipe理系统开始部署,这将确保您的服务器处于特定的,可重现的版本控制状态。
ErikA给你提供合理的build议。 不要猜测你正在运行什么,你应该指定你想要运行的东西。
但也许蓝图可以帮助你从现在的状态变成你应该进入的状态。
你在运行什么操作系统? 您可以从系统的软件包pipe理器(rpm -qa),SNMP(使用类似snmpwalk -v2c -c communityname hostname 1.3.6.1.2.1.25.6.3.1.2 )或您select的configurationpipe理解决scheme中获取此信息。早期的Blueprintbuild议也非常好。
您可以看看Open-Audit的独立Linux(Ubuntu,Fedora等)审计脚本。 这有点过时,但应该提供你以后的。
http://www.open-audit.org/downloads.php
免责声明 – 我是开发人员。