Qual é a melhor solução para gerenciar senhas de raiz de milhares de servidores?

12

Sou administrador do sistema. No ambiente de produção, preciso gerenciar milhares de servidores. Meus colegas e eu usamos um servidor de gerenciamento central e distribuímos sua chave pública por meio de outros servidores. Portanto, podemos usar esse servidor de gerenciamento para o ssh em outros servidores.

Às vezes, precisamos usar a senha de root, por exemplo, quando o servidor está inativo, precisamos usar o iLO para determinar o motivo.

Atualmente, usamos uma senha de root compartilhada. Não é seguro. Eu também olhei para uma solução de servidor único como OPIE (senhas únicas em tudo), mas como temos muitos servidores, essa não é uma boa ideia.

EDITAR:

O que eu quero da solução de gerenciamento de senha é:

  1. Deve ser seguro, por isso, a Senha única é uma ótima solução.
  2. A senha pode ser facilmente digitada, às vezes precisamos anexar o monitor ao servidor ou com o iLO, como mencionei acima.
  3. A solução deve funcionar até mesmo o servidor está offline (sem conexão de rede)

Portanto, não é uma boa idéia definir a senha raiz para uma string longa e aleatória, embora seja gerada a partir de algum comando conhecido (como openssl passwd ). É difícil lembrar, e às vezes é difícil gerar (sem meu laptop por perto)

    
por yegle 21.12.2011 / 06:52

3 respostas

5

Você pode usar o Puppet para enviar a alteração da senha para todos os seus servidores. Você definiria root usando o user type assim:

    user { 'root':
            ensure => present,
            password => '$1$blablah$blahblahblahblah',
    }

Para gerar a senha criptografada:

openssl passwd -1 -salt "blah"

Eu sugeriria talvez mudá-lo todo mês, talvez usando um esquema que seus SAs memorizassem. Você também pode distribuí-lo por um método seguro ou colocá-lo em um cofre.

    
por 21.12.2011 / 12:14
3

Você pode sempre definir uma senha desativada. Isso impediria qualquer acesso de rede ao root e, se você inicializasse no modo de usuário único, a maioria das distribuições será inicializada diretamente em um shell.

Isso provavelmente não é um problema de segurança tão grande quanto você imagina. É trivial ignorar a senha do root de qualquer maneira, a menos que você tenha bloqueado o grub com uma senha, praticamente qualquer um poderia simplesmente dizer ao grub para iniciar o bash ao invés do initrd.

É claro que isso pode significar que, em vez disso, você deve descobrir como proteger seu carregador de senha com senha.

    
por 21.12.2011 / 08:34
0

Você pode usar senhas de uma vez com um gerenciamento central. Eu sei que isso não serve para "deve funcionar quando eth está offline e servidor acessado com o iLO".

De qualquer forma: a questão é, com que frequência o servidor está off-line.

Você pode pensar na seguinte configuração:

Use uma solução OTP gerenciada centralmente, como privacyidea ( link ). Você pode atribuir vários tokens OTP diferentes ao usuário root. Cada token tem um PIN OTP diferente e é um dispositivo diferente. Assim, todos os seus colegas podem fazer login como usuário root, mas no log de auditoria, você verá qual token é autenticado, para que você possa saber qual colega fez o login no momento.

Nos servidores, você precisa configurar o pam_radius para passar a solicitação de autenticação para o RADIUS e privacyIDEA.

Que pena. Agora seu servidor fica offline. Neste caso, você deve jogar com sua pilha de pam. Eu poderia pensar em algo como:

auth sufficient pam_unix.so
auth required pam_radius.so use_first_pass

Para que você possa fazer o login com uma senha fixa off-line e, caso contrário, a senha será entregue ao pam_radius e validada como OTP contra privacyIDEA.

Veja este link .

    
por 05.02.2015 / 19:50