Está logando como um usuário compartilhado um mau hábito?

35

Eu trabalhei em organizações onde, em vez de criar um novo usuário do Ubuntu por pessoa que deseja entrar em uma máquina, os administradores de sistema simplesmente adicionam a chave ssh de cada usuário a .ssh/authorized_keys , e todos ssh s ao máquina como ( por exemplo, ) ubuntu@host ou ec2-user@host . (Aliás, eu também vi isso praticado em Mac minis compartilhados em um ambiente de laboratório.) Essa prática é aceita ou um antipadrão?

Os hosts em questão são usados principalmente para testes, mas também são realizadas ações que normalmente exigem configuração por usuário e são acompanhadas como feitas por um usuário específico, como a criação e o envio de confirmações de git, que são feitas atualmente usando um usuário git genérico.

    
por user22a6db72d7249 10.02.2016 / 20:07

5 respostas

42

Sim, é um mau hábito. Ele se baseia na suposição básica de que ninguém mal-intencionado está (ou estará) por perto e que ninguém comete erros. Ter uma conta compartilhada torna trivial que as coisas aconteçam sem responsabilidade e sem qualquer limite - um usuário que quebra algo o quebra para todos.

Se o motivo desse esquema de compartilhamento de arquivos é simplesmente reduzir o custo administrativo de criar novas contas e configurações de compartilhamento, talvez os administradores devam investir algum tempo em um sistema de automação como Ansible , Chef , Puppet ou Salt que torna as coisas como criar contas de usuário em várias máquinas extremamente simples.

    
por 10.02.2016 / 20:34
7

Para começar, isso não me choca, e eu trabalho em um ambiente extremamente seguro. Todo mundo tem seu próprio usuário e máquina e chave ssh, e para trabalhar em um servidor nós ssh, como root ou como outro usuário, através de uma retransmissão de registro, se necessário. Tudo o que fazemos é registrado como tendo sido feito pelo dono da chave ssh, então a responsabilidade é boa.

Qual seria a alternativa? Muitas coisas devem ser feitas como um determinado usuário, para não mencionar o root. Sudo Tudo bem com certas tarefas muito restritas, mas não com o administrador do sistema.

No entanto, não tenho certeza sobre o seu último parágrafo, você quer dizer que alguém poderia forçar um git a cometer um usuário genérico? Isso quebraria a responsabilidade, e quebrar a prestação de contas é ruim. Nós fazemos o git da máquina onde estamos logados e nos autenticamos para git com a nossa chave ssh ...

Autenticação, autorização e contabilidade (AAA) é a expressão clássica: você é autenticado com sua chave ssh, você está autorizado a fazer qualquer coisa que o usuário genérico possa fazer porque sua chave está nas authorized_keys e você precisa o que você faz pode ser revisto depois do fato.

    
por 10.02.2016 / 20:47
3

Depende claramente do caso de uso do sistema. Se é sistema para testar de vez em quando está bem para mim. Nós também temos esses sistemas. Se a empresa não tem nenhum tipo de gerenciamento de identidade (LDAP, IPA), criar um novo usuário sem qualquer controle remoto em um sistema aleatório é um fardo.

Mas, para o trabalho diário, quando alguém cometer erros e deixar a empresa inteira incapaz de operar, não é uma boa ideia.

    
por 10.02.2016 / 23:11
3

Todas essas respostas abordam a preocupação de responsabilidade, que é um problema importante e real em si, mas usar uma conta compartilhada também permite ataques não tão sutis a outros usuários:

Considere um invasor criando um script ssh malicioso que registra a senha digitada e a coloca no PATH desse usuário compartilhado (o que é feito facilmente). Agora, a próxima pessoa que fizer login nessa máquina com o usuário compartilhado e decidir ssh em algum outro lugar (desta vez com sua conta pessoal, não compartilhada) poderá ter uma surpresa desagradável.

Basicamente, usar uma conta compartilhada em um computador é como beber no banho de pés na piscina pública.

    
por 12.02.2016 / 00:15
1

Em geral, compartilhar uma conta é uma má ideia pelos seguintes motivos:

  1. Cada configuração feita para esse usuário afeta todo mundo que faz login. (Promt, aliases, ...)
    1. Você perde a possibilidade de descobrir quem fez o quê (responsabilidade)
    2. Um erro na configuração da conta (por exemplo, excluir acidentalmente o ssh kay) afeta todos que usam essa conta de usuário (nesse exemplo, bloquear).

E com certeza há ainda mais desvantagens ... Mas eu não quero entrar mais nisso.

O ponto é, pode ser que você esteja enfrentando a necessidade de compartilhar uma conta para gerenciar um serviço que é executado sob uma determinada conta de usuário, onde todos os administradores devem poder acessar.

Em tal configuração, você tem a possibilidade de compartilhar essa conta para fazer o login (para as exceções acima, prefiro não fazer isso) ou você faz login individualmente e alterna o usuário para a conta compartilhada (eu sugeriria isso).

As ferramentas de auditoria ainda permitirão acompanhar quem executou o quê, mas ainda compartilhando a mesma conta.

    
por 12.02.2016 / 06:50