Como você pode evitar a mudança de senha do root no linux?

7

Estou configurando um servidor ao qual outras pessoas terão acesso sudo via ssh. Eles podem instalar coisas e fazer alterações como acharem melhor, no entanto, eu ainda preciso gerenciar o servidor, instalar patches e atualizações de software etc.

Eu estou querendo saber se eu mantenho a senha de root para que eu sempre possa fazer o que eu preciso, eu posso de alguma forma desabilitar as pessoas com o sudo de serem capazes de alterá-lo com o sudo.

    
por bwizzy 09.08.2009 / 00:55

12 respostas

14

Você tem que pensar sobre isso assim. Se você der a eles a senha de root, ou uma rota para ela, você está essencialmente perguntando "como posso dar root a eles, exceto por todos os momentos em que eu magicamente não quero que eles a tenham". E a resposta é "você não pode. Computadores não funcionam assim".

    
por 09.08.2009 / 01:22
13

Você pode permitir seletivamente certos comandos com o sudo, mas deve ter cuidado para não permitir programas que permitam acesso ao shell, gravar em links sym ou um dentre alguns outros problemas. Veja uma página sobre scripts seguros do sudo: link

Você sempre pode esperar que eles não saibam sobre o comando chattr ;-)

    
por 09.08.2009 / 01:11
5

Acho que a resposta aqui depende de você estar tentando impedi-los de alterar a senha de maneira mal-intencionada para mantê-lo fora ou apenas descuidadamente recebendo a senha porque eles esqueceram que você precisa de acesso. No primeiro caso, você terá muitos problemas. Eu não sei em que circunstância você daria aos usuários acesso root à caixa, mas ainda estar preocupado com isso, mas o melhor que você pode fazer é tentar limitar seu acesso aos comandos através do sudo, que como outros mencionaram é complicado na melhor das hipóteses. Neste último caso, parece que a solução seria criar um usuário com privilégios de sudo. Ninguém vai alterar acidentalmente a senha da sua conta para que você não tenha que se preocupar com alguém simplesmente cometer um erro, ou até mesmo mudar a senha por um bom motivo e esquecer de falar sobre isso porque você sempre pode entrar em contato com ela. sua conta e alterá-lo de volta.

    
por 09.08.2009 / 02:05
4

O SELinux pode fazer o que você está procurando, embora seja como usar um machado de batalha nuclear para acertar uma mosca, ou qualquer que seja a cotação do Hitchhiker . Se você estiver configurado no Linux em vez de no Solaris (e seu brilhante RBAC), a opção mais fácil de implementar provavelmente será configurar o sudo para permitir apenas os comandos necessários.

    
por 09.08.2009 / 17:35
3

Existem algumas opções:

  • Você pode usar o PAM (Módulos de autenticação conectáveis) para permitir o login como root, independentemente do que eles configuram a senha para. Existem muitos módulos disponíveis , então vou deixar esse pendurado.
  • Você cria 'um segundo usuário root' abrindo / etc / passwd e adicionando um novo usuário com o mesmo UID como root (0). Em seguida, adicione uma senha no arquivo / etc / shadow para esse usuário específico. Isso permitirá que você efetue login como root e, mesmo que altere a senha para 'root' - seu login ainda funcionará.
  • Crie um shellscript que é executado periodicamente para verificar se o hash do usuário raiz em / etc / shadow para root corresponde ao que você deseja que seja. Se não for, o hash é alterado de volta.

Como outros apontaram, dar acesso root permitirá que eles façam absolutamente o que quiserem no sistema e se realmente quiserem bloquear você; eles podem. As opções acima, no entanto, tornam-se mais difíceis ou menos transparentes para elas.

    
por 09.08.2009 / 10:57
2

O Solaris resolveu isso tornando o root um "papel" para que ninguém tenha uma senha root e o usuário root não pode efetuar login no sistema. Para impedir que alguém bloqueie você, há muitas opções de segurança refinadas; então você pode fazer com que eles façam a maioria das coisas do root com "pfexec" (equivalente ao sudo), mas você pode ser capaz de impedir que eles revoguem seus privilégios de sudo.

[[Eu não sou um fã do Solaris, mas existem algumas coisas muito boas no Solaris além do ZFS e do DTrace. Pena que o oráculo extingue a chama]]

    
por 09.08.2009 / 15:46
2

Em vez de impedi-los de alterar a senha, apenas defina uma política que eles não têm permissão para fazer isso. Em seguida, você pode configurar algo como auditd para assistir ao arquivo de senha e notificá-lo sobre alterações.

    
por 09.08.2009 / 18:25
1

O que você quer não é razoável. Dar raízes às pessoas de qualquer forma lhes permitirá destruir seu sistema. Mesmo que o seu acesso seja através de um sudo altamente regulado, um idiota esperto ou malicioso ou realmente perturbado poderá causar o caos.

Você confia neles ou não.

Se você está apoiando as necessidades deles e a empresa está pagando para apoiá-los, é sua máquina, não sua; você está lá apenas para mantê-lo funcionando, apesar de tudo o que eles fazem. Talvez depois de assá-lo algumas vezes você possa perguntar ao seu chefe se você pode dar aos clientes menos acesso ou, caso contrário, a empresa terá que continuar pagando para consertar a bagunça. Seja qual for - é o seu centavo.

Se é o seu computador e você está fazendo um favor a esses outros, peça educadamente para eles serem legais.

Dito isso - você sempre pode inicializar a partir do CD (ou outra mídia somente leitura). Eles ainda serão capazes de eliminar os outros sistemas de arquivos ou montar o / etc com seus próprios / etc, mas tudo que você precisa fazer para colocar o sistema de volta em algum nível rudimentar de funcionalidade.

Você também pode usar algo como openvz e fornecer a cada usuário sua própria instância. Eles não serão capazes de eliminar todo o sistema e poderão instalar seu próprio software em sua fatia. Muitos lugares usam isso para hospedagem na web, onde eles dão aos clientes "root" na fatia VZ.

    
por 09.08.2009 / 06:03
1

Se você não puder usar um sistema com RBAC, como Solaris, HP-UX ou AIX, poderá implementar o RBAC no Linux com o grsec patch.

    
por 24.09.2009 / 12:10
0

É onde um tipo de usuário de acesso da camada intermediária precisa ser usado. Eu acho que se um tipo de usuário existir com privilégios customizáveis (acesso padrão e alguns dos acessos root), seria legal. Também para evitar que este usuário altere por exemplo o arquivo de senhas (como o linux é baseado em arquivos) nós poderíamos restringir as permissões de acesso ao arquivo de senhas por não estar disponível para aquele usuário. em seguida, insira uma senha para o BIOS para impedir que o usuário altere o arquivo / etc / shadow com um flash ou CD inicializável de terceiros.

O acima é apenas uma teoria para desenvolvedores Linux e não tem certeza se é possível ...

    
por 27.10.2015 / 00:04
-4

impede que eles alterem qualquer senha:

chattr +i /etc/shadow
    
por 09.08.2009 / 01:26
-4

Não importa por que os usuários fazem perguntas. A resposta "Você não pode" não é verdade! A resposta está listada na parte inferior da página "man sudoers". É chamado de "Whitelist with an exception", e estou realmente implementando isso para a empresa em que trabalho. Veja o que você faz -

  1. Adicione os usuários que você deseja bloquear a um grupo
  2. Edite o arquivo do sudoer - visudo
  3. Adicione isto ao arquivo do sudoer (testgroup é o grupo ao qual você adicionou os usuários)

%testgroup ALL = (ALL) ALL

%testgroup ALL = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

%testgroup ALL = !/usr/sbin/visudo

  1. Feito

Isso impede que os usuários do sudo alterem a senha do root, mas permite que todos os outros sejam alterados E impede que editem o arquivo sudoers. Há outras coisas que você provavelmente deve adicionar a isso, como impedir que um usuário altere o grupo em que ele está, mas esperamos que você obtenha a essência.

    
por 25.06.2015 / 18:24