Gerenciamento de patches em vários sistemas

1

Estou encarregado de auditar a configuração de segurança de um importante farm de servidores Unix. Até agora, criei uma maneira de avaliar a configuração básica, mas não as atualizações instaladas.

  • O problema é que não posso confiar nas ferramentas de gerenciamento de pacotes dessas máquinas. De fato, alguns deles não sincronizaram com o repositório por um longo tempo (então eu não posso fazer um "yum check-updates" no Redhat, por exemplo). Alguns desses servidores nem estão conectados à internet e usam um repositório da empresa.

  • Outro problema é que eu tenho vários sistemas de destino: AIX, Debian, Centos / Redhat, etc ... Então a versão pode ser diferente (AIX) e as ferramentas disponíveis serão diferentes.

  • E por último, mas não menos importante, não consigo instalar nada no sistema de destino. Então eu preciso usar um script para recuperar as informações e: processá-lo diretamente ou salvar as informações para poder processá-las mais tarde em um servidor (o que pode acontecer de executar uma distribuição diferente daquela na qual as informações foram recuperadas ).

As melhores ideias que pude encontrar foram:

  • recupera a lista de pacotes instalados na máquina (dpkg -l, por exemplo, no debian) e processa-o em um servidor dedicado (Analisando diretamente o arquivo "Packages" dos repositórios do Debian). Ainda assim, o problema permanece o mesmo para AIX e Redhat ...

  • ou use os scripts do Nessus para avaliar a vulnerabilidade nos pacotes instalados, mas acho isso um pouco sujo.

Alguém conhece alguma maneira melhor / eficiente de fazer isso?

P.S: Eu já tomei tempo para rever algumas respostas para problemas semelhantes. Infelizmente Chef, fantoche, ... não atende aos requisitos que eu tenho que cumprir.

Editar: Longa história curta. Eu preciso ter a lista de atualizações ausentes em um sistema Unix, assim como o MBSA no Windows. Eu não estou autorizado a instalar nada neste sistema, pois não é meu. Tudo o que tenho são linguagens de scripts.

Obrigado.

    
por Pierre 01.07.2013 / 20:54

1 resposta

1

É comum ter algum tipo de serviço de cache de proxy atuando como intermediário entre os repositórios upstream e as máquinas de destino. Isso ajuda a economizar largura de banda e torna as implementações mais rápidas, no mundo RHEL / CentOS que seria spacewalk , no Debian e derivados a debmirror e no mundo AIX possivelmente um servidor NIM.

Devido à ausência de ruby no AIX (embora existam algumas portas), o gerenciamento de configuração apropriado para o seu ambiente seria cfengine . Se isso parece um exagero, você também pode tentar ansible , que requer apenas python . E há pyhton mesmo para AIX.

Também é comum e até esperado que as versões, nome dos serviços, nome dos pacotes, etc ... difiram de plataforma para plataforma. Você precisa lidar com a separação de dados e código. Se um sistema de gerenciamento de configuração maduro não atender aos seus requisitos, duvido seriamente que um monte de scripts feitos em casa seja usado.

O terceiro requisito: "Não consigo instalar nada no sistema de destino ..." não está claro, e parece estar em conflito com o fato de você estar usando repositórios privados.

Por último, mas não menos importante, o gerenciamento de pacotes é apenas 1% das tarefas que você precisa executar para proteger e auditar seus sistemas.

    
por 01.07.2013 / 21:24