Inventário ou auditoria de software Linux instalado

4

Eu estou trabalhando em um projeto onde precisamos ser capazes de dizer e relatar periodicamente em qual software está instalado em nossos vários servidores Linux / Unix. Eu olhei para isto, Como inventar qual software / função um servidor Linux está" servindo "para clientes? , postando e isso, Agente de inventário de código aberto , postando e não foi capaz de localizar informações que sugiram uma resposta ao meu problema. Não tenho certeza se o agente do OCS reportaria em servidores Linux / Unix como acontece no Windows. Existem scripts, software de código aberto, agentes de software, etc. que podem ser usados para executar um grande número de servidores Linux / Unix para relatar qual software está instalado e quais versões estão instaladas?

=========================

Atualizações para maior clareza:

Estou procurando uma maneira confiável de determinar se um determinado software existe em uma máquina Linux / Unix. Idealmente, esta seria uma solução remota onde eu poderia apontá-la para os servidores em questão e tê-la retornando os resultados indicando se o software em questão existe nessa caixa ou não. Além disso, devo estar preocupado com os seguintes problemas relacionados ao software instalado em um host Linux / Unix?

  1. Software instalado a partir de pacotes
  2. Software instalado a partir da fonte
  3. Software instalado em um local desconhecido ou inesperado

Como eu poderia lidar com essas condições e descobrir se o software existe?

    
por John 08.05.2012 / 16:53

5 respostas

4

  1. Verifique o banco de dados de gerenciamento de pacotes
  2. Não é perfeitamente confiável, mas varre todo o sistema de arquivos em busca dos arquivos executáveis ou nomes de arquivos esperados.
  3. O mesmo que o número 2, mas não conte se alguém desejar renomear netcat para purrmeow , compilá-lo estaticamente e executá-lo chamando libc em vez de uma execução direta.

Você pode tentar identificar os arquivos usando o conteúdo dos primeiros bytes para verificar os números mágicos executáveis e observe qualquer um que não tenha uma casa. Isso cuidará de instalações de violação acidental ou inocente. Você será pressionado, no entanto, se alguém quiser colocar algo no lugar e mantê-lo escondido de você.

Para ser realmente sorrateiro, pode-se incorporar um executável em alguma seção de lixo do arquivo, mmap-lo e, em seguida, a memória saltar para ele. Onde há um testamento, há um hacker ... então, cuidado com as limitações de qualquer método que você escolher, se esta for uma função de auditoria.

    
por 09.05.2012 / 17:22
2

Isso não seria tão difícil de criar scripts manualmente via ssh.

Dito isso, acho que você está fazendo isso da maneira errada. Você deve começar a implantar por meio de um sistema de gerenciamento de configuração que garantirá que seus servidores estejam em um estado específico, reproduzível e controlado por versão.

    
por 08.05.2012 / 17:01
2

ErikA está lhe dando bons conselhos. Em vez de adivinhar o que você está executando, você deve especificar o que você deseja executar.

Mas talvez o plano possa ajudá-lo a sair do estado atual para o estado em que você deve estar.

    
por 08.05.2012 / 17:04
2

Qual sistema operacional você está executando? Você pode extrair essas informações do gerenciador de pacotes do seu sistema (rpm -qa), SNMP (usando algo como snmpwalk -v2c -c communityname hostname 1.3.6.1.2.1.25.6.3.1.2 ) ou uma solução de gerenciamento de configuração de sua escolha ... A recomendação anterior do Blueprint também é muito boa.

    
por 08.05.2012 / 17:08
1

Você pode dar uma olhada no script de auditoria autônomo do Linux (Ubuntu, Fedora, etc) para o Open-AudIT. É um pouco datado, mas deve fornecer o que você procura depois.

link

Aviso de isenção de responsabilidade - Eu sou o desenvolvedor.

    
por 09.05.2012 / 02:43