solução de servidor de auditoria centralizada para gerenciamento de servidor múltiplo [fechado]

4

Temos dezenas de servidores Linux e vários desenvolvedores, e cada um dos desenvolvedores abrange partes dos servidores.

Atualmente, cada servidor tem uma conta de administrador, se alguém quiser gerenciar esse servidor, o pubkey dele será adicionado às chaves s_autorizadas da conta de administrador do servidor, para que ele possa acessar e editar esse servidor. Mas não é uma boa solução:

  • A porta ssh de cada servidor não deve ser aberta ao público, é perigosa.
  • Se um servidor for acessado por várias pessoas com a mesma conta, não poderemos informar quem está conectado.
  • É difícil remover ou revogar a chave ssh de alguém para esses servidores.

Então, acho que deveria haver uma solução melhor:

  • Um servidor de auditoria e administração ssh centralizado.
  • Cada servidor permite apenas o acesso à porta ssh deste servidor.
  • Este servidor pode gerenciar a conta de usuários e acessar privilégios para cada servidor.
  • O desenvolvedor usa esse servidor de auditoria para fazer operações de servidor, todas as ações devem ser registradas e alertar outras pessoas quando ele estiver fazendo algo perigoso.
  • Se este servidor estiver inativo, há uma solução de acesso de emergência.

Se alguém conhece alguma solução como essa? Obrigado.

    
por linjunhalida 02.11.2015 / 09:12

3 respostas

7

Each server's ssh port should not open to the public, it is dangerous.

Isso não é verdade, especialmente se você estiver usando chaves com boas frases secretas e tiver logins de senha desativados (você ainda não o fez).

If one server is accessed by multiple person with the same account, we cannot tell who is logged in.

Em seu cenário atual, isso está correto - as contas compartilhadas não são uma boa coisa. No entanto, com registros detalhados do sshd a> você pode ver quem efetuou login quando.

It is hard to remove or revoke someone's ssh key for those server's.

Existem ferramentas disponíveis que permitirão que isso seja automatizado - fantoche, chef, ansible etc - ferramentas de gerenciamento de configuração em geral.

Uma solução geral para você problema é

  • Forneça a todos uma conta própria (automatize-a com uma ferramenta de gerenciamento de configuração)
  • Pare de usar contas compartilhadas.
  • Conceda acesso adequado a sudo a todos.
  • Use o rsyslog para enviar todos os logs para um servidor de log central.

Isso permite que você registre os usuários individuais que acessam o sistema. Com uma educação adequada, você também pode registrar usuários individuais usando a conta administrativa.

    
por 02.11.2015 / 09:35
0

Talvez confira Monkeyspere. Ele permite que você configure um servidor de chaves central onde você pode revogar as chaves do usuário (pense nisso como Web of Trust para chaves ssh)

link

    
por 02.11.2015 / 13:42
-1

Não forneça acesso de raiz aos desenvolvedores nos servidores! Use alguma ferramenta de gerenciamento central como chef ou cfengine3 e deixe que os desenvolvedores escrevam teplates, que são aplicados aos servidores. Você pode enviar esses modelos para o Git / SVN / Whatever para acompanhar as alterações.

Além disso, você pode usar a VPN para acessar seus servidores. Seus servidores não precisam estar abertos para todo o mundo, não precisa ter o ip público também.

    
por 02.11.2015 / 10:45

Tags