Я работаю над проектом, в котором мы должны иметь возможность сообщать и периодически сообщать о том, какое программное обеспечение установлено на наших различных серверах Linux / Unix. Я смотрел на это, Как определить, какое программное обеспечение / роли сервер Linux «обслуживает» клиентов?, публикация и это, Агент инвентаризации с открытым исходным кодом, разместил и не смог найти информацию, которая могла бы предложить ответ на мою проблему. Я не уверен, что агент OCS будет сообщать о серверах Linux / Unix, как это происходит в Windows. Существуют ли какие-либо сценарии, программное обеспечение с открытым исходным кодом, программные агенты и т. Д., Которые можно использовать для работы на большом количестве серверов Linux / Unix, чтобы сообщать о том, какое программное обеспечение установлено и какие версии установлены?
=========================
Обновления для ясности:
Я ищу надежный способ определить, существует ли конкретное программное обеспечение на машине Linux / Unix. В идеале это было бы удаленное решение, в котором я мог бы указать его на рассматриваемые серверы и получить результаты, указывающие, существует ли рассматриваемое программное обеспечение в этом ящике или нет. Кроме того, следует ли мне беспокоиться о следующих проблемах, связанных с установленным программным обеспечением на хосте Linux / Unix?
Как я могу справиться с этими условиями, а также выяснить, существует ли программное обеспечение?
netcat
к purrmeow
, статически скомпилируйте его и запустите, вызвав libc вместо прямого выполнения.Вы можете попытаться идентифицировать любые файлы, используя содержимое первых нескольких байтов для проверки исполняемые магические числа а затем отметьте все, у кого нет дома. Это позаботится о случайных или невиновных установках. Однако вам будет трудно, если кто-то захочет что-то поставить на место и скрыть от вас.
Чтобы быть по-настоящему хитрым, можно встроить исполняемый файл в какой-нибудь мусорный раздел файла, отобразить его, а затем перейти к нему из памяти. Там, где есть желание, есть хакер ... так что остерегайтесь ограничений любого метода, который вы выберете, если это функция аудита.
ErikA дает вам разумный совет. Вместо того, чтобы гадать, что у вас запущено, вы должны указать, что вы хотите запустить.
Но возможно план может помочь вам перейти из текущего состояния в то, в котором вы должны быть.
На самом деле это не так уж и сложно создать скрипт вручную через ssh.
Тем не менее, я думаю, что вы поступаете неправильно. Вам следует начать развертывание через систему управления конфигурацией, которая обеспечит нахождение ваших серверов в определенном, воспроизводимом состоянии с контролем версий.
Какая у вас ОС? Вы можете получить эту информацию из диспетчера пакетов вашей системы (rpm -qa), SNMP (используя что-то вроде snmpwalk -v2c -c communityname hostname 1.3.6.1.2.1.25.6.3.1.2
) или решение по управлению конфигурацией по вашему выбору ... Предыдущая рекомендация Blueprint тоже очень хороша.
Вы можете взглянуть на автономный сценарий аудита Linux (Ubuntu, Fedora и т. Д.) Для Open-AudIT. Это немного устарело, но должно предоставить то, что вам нужно.
http://www.open-audit.org/downloads.php
Отказ от ответственности - я разработчик.
Мы достаточно успешно использовали OCS Inventory. https://www.ocsinventory-ng.org/en/