Como posso manter as contas de usuário consistentes em várias máquinas?

10

Agora eu tenho um Raspberry Pi que roda o Debian Wheezy. Eu tenho algumas máquinas (4 físicas, 2 virtuais) aqui e gostaria de unificar as contas de usuários nessas máquinas.

As máquinas que eu executo têm os seguintes derivados Debian instalados nelas:

  • Debian Wheezy (armhf)
  • Debian estável (amd64)
  • Debian Unstable (amd64)
  • Ubuntu 14.04 (amd64)

Como posso ter as contas de usuário configuradas em todas as máquinas igualmente? Eu quero que o nome, o nome longo, a senha e o UID sejam consistentes.

No futuro, gostaria de unificar outras partes da configuração, talvez

  • HTCondor
  • Mountpoints (Samba)
  • /etc/apt/sources.list
  • Atualizações não assistidas

Como eu uso diferentes variantes do Ubuntu e do Debian, o sources.list diferirá um pouco, mas será o mesmo em cada distribuição.

Qual seria uma boa abordagem para isso?

    
por Martin Ueding 06.07.2014 / 21:01

1 resposta

9

Você basicamente tem duas opções.

  1. Use o sistema de autenticação local de cada máquina e envie as alterações de credenciais para todas elas.
  2. Use um servidor de autenticação centralizado.

1. Autenticação local sincronizada

Existem vários produtos que facilitam isso. Marionete , Chef , Ansible e Sal são alguns dos mais comuns. Todas essas ferramentas se enquadram no que é conhecido como " Gerenciamento de configuração ".

Basicamente você teria um repositório no qual você define suas credenciais de autenticação como código. O "código" seria tão simples quanto uma diretiva que especifica o nome de usuário e a senha com hash. Em seguida, você sincroniza esse código com todas as suas máquinas e executa a ferramenta CM escolhida. A ferramenta CM atualizaria as credenciais de autenticação local de cada usuário (também criando o usuário, se necessário).

Como você disse que deseja fazer outros tipos de configuração também, essa pode ser a solução mais apropriada.

2. Autenticação centralizada

A forma mais comum de autenticação centralizada é o LDAP. A execução de um servidor LDAP pode parecer assustadora, mas existem algumas boas soluções em pacotes, como o FreeIPA , que o tornam facilmente gerenciável.

Agora, um dos seus primeiros pensamentos pode ser: "Quero que a autenticação funcione mesmo se o servidor central estiver inativo". Isso é facilmente realizado usando SSSD . Quando um usuário entra pela primeira vez em um servidor, o SSSD consulta o LDAP (ou kerberos, se empregado) e, se as credenciais forem válidas, ele as armazena em cache na máquina local. Se o servidor LDAP não estiver disponível, ele voltará a usar seu cache. Assim, desde que um usuário tenha efetuado login uma vez, ele poderá continuar a fazer login se o LDAP não estiver disponível.

3. Combinação dos dois

Você também pode usar uma combinação das duas soluções. Isso é muito comum em ambientes corporativos de larga escala, mas também pode ser empregado em pequena escala. Basicamente, você teria um servidor de autenticação centralizado e usaria uma ferramenta CM para configurar os clientes para usá-lo.

    
por 07.07.2014 / 08:39

Tags