it-swarm-pt.tech

Devemos desativar o usuário root?

Devemos remover a senha de root, desativar o login remoto e basicamente exigir que os administradores usem o Sudo para realizar ações administrativas?

alt text

21
jldugger

Todos os meus servidores têm a conta root desativada (sp_pwdp definido como *). Isso requer Sudo para todos os acessos root. [1] O objetivo disso é que todas as atividades do superusuário sejam auditadas, para que as pessoas possam ver o que foi feito no sistema.

Para uma opção mais radical, você pode fazer Sudo escrever em um arquivo de log (ao contrário de syslog) e tornar o arquivo apenas anexado (usando chattr no Linux, ou chflags no BSD). Dessa forma, ninguém pode editar a auditoria posteriormente.

[1] Eu também tenho uma política de não executar um Shell de root ou fazer o Shell escapar de um processo de root. (É normal usar Sudo sh -c '...' para fazer pipelines ou redirecionamentos.)

16
Chris Jester-Young

I enfaticamente não recomendo desabilitar o usuário root. Desabilite ou restrinja logins de root (via securetty e via sshd_config e via PAM e via o que você tem) Se seu sistema permite, limita os privilégios de root ou divide a função de root (semelhante a como RSBAC faz isso.) Mas, por favor, por favor , não desabilite a conta root removendo a senha, caso contrário, será impossível entrar no sistema através de sulogin. sulogin é usado por todos os scripts de inicialização que eu conheço no caso de erros sérios relatados pelo fsck - e isso significa que você será bloqueado no sistema se o sistema de arquivos raiz for corrompido.

Para esclarecer: Por "desabilitar a conta root removendo a senha", quero dizer os vários mecanismos que terminam com um! ou um * no campo de senha de/etc/shadow ou similar. Não quero dizer "alterar o mecanismo de login do root para que não seja solicitada uma senha".

15
Mihai Limbăşan

Tenho a conta root habilitada em todos os meus servidores. Todos os administradores possuem seu próprio usuário e devem se logar através dele. De lá, eles mudam para root. (root ssh está desabilitado)

Mantenha a contagem de administradores baixa. Apenas as pessoas que realmente precisam de acesso root naquele servidor possuem a senha.

Não sou fã de Sudo. É muito fácil apenas fazer 'Sudo bash' para um shell root. Estou ciente de que isso pode ser desativado, mas por que se preocupar? Apenas limite os usuários que podem realizar tarefas de administrador e conversar uns com os outros. Temos uma política de não permitir que os terminais raiz sejam abertos sem supervisão. Então é logar, su, fazer o trabalho, sair.

Nota: Eu trabalho em uma empresa razoavelmente pequena (funcionários de 50 e poucos anos) e nós temos apenas 2 administradores de meio período (1 windows/1 linux). Essa maneira de fazer as coisas pode não ser a melhor quando você tem ordens de magnitude mais usuários. Eu pessoalmente ainda não usaria o Sudo. Existem outras maneiras de registrar a atividade do root.

3
Gert M

Desativar a senha de root é uma falsa "boa idéia". No dia em que você precisar, você realmente precisará. (de acordo com sua configuração, você pode precisar fazer login no modo de usuário único, por exemplo)

Desativar o login remoto raiz pode ser relevante, mas apenas se você puder fazer logon localmente.

E sim, o Sudo deve ser instalado em cada um de seus servidores. É útil e fácil de configurar. Por que você gostaria de não usá-lo?

2
Benoit

Eu apenas desabilito o acesso SSH para root e exijo que os usuários (geralmente são apenas desenvolvedores) usem as chaves ssh. Existem muitos ataques de dicionário e alterar a porta SSH não é uma opção para nós.

Dessa forma, você não precisa confiar na capacidade de ninguém de escrever uma boa senha. Uma vez dentro, apenas os administradores têm permissões para o Sudo.

2
pablasso

Eu sei que este tópico é muito antigo, mas há algumas falhas importantes na lógica dos artigos vinculados e estou me sentindo "rant'ie" - o Sudo permite tanto a lista branca quanto a lista negra. Não apenas preto como eles especificam no artigo vinculado - Isso ignora a ideia de AAA (Autenticação, Autorização e Auditoria) - su e Sudo permitem autenticação gradativa e responsabilidade.

Cenário 1 Um administrador acidentalmente introduz algum código não autorizado a um sistema, logado como root o código tem acesso completo e o administrador pode nunca saber o que aconteceu. Pelo menos com logins graduados (por exemplo, su/Sudo), o administrador será solicitado a autenticar se o código invasor tentar usar direitos elevados ... Se ele não aumentar, ele estará restrito aos direitos do usuário, o que deve resultar em danos mínimos.

Cenário 2 Um administrador desonesto deseja obter informações/fazer uma alteração. Eles se conectam ao console (acesso físico ao console, HP iLo/similar ou acesso ao console vGuest), logam como root e fazem o que desejam. A menos que haja uma conta nomeada/cartão de acesso usado para obter acesso ao console, provavelmente não há uma trilha de auditoria.

  1. Certifique-se de que eles realmente são quem dizem ser. O roubo de identidade não é o problema, a verificação de identidade é.
  2. Verifique a autorização deles, forneça apenas o que eles precisam no momento. A autorização graduada permite que eles subam quando precisam.
  3. Audite tudo, tenha um registro para saber quem, fez o quê, quando e onde. De preferência, por que também
2
Mike

Os autores de Owl Secure Distribuion (e Solar designer) têm um ponto de vista oposto cuidadosamente justificado; veja, por exemplo, a resposta https://unix.stackexchange.com/questions/8581/which-is-the-safest-way-to-get-root-privileges-Sudo-su-or-login/ 8660 # 866 para uma apresentação de suas reivindicações. O problema de auditar as ações do superusuário (qual pessoa fez o quê) também é abordado em seu ponto de vista (basicamente, a solução é ter vários usuários root com nomes diferentes).

1
imz -- Ivan Zakharyaschev

Você deve exigir que todos usem Sudo para cada comando root como uma política. Nunca há uma razão para executar o "Sudo bash" ou algo semelhante, é apenas por conveniência, por ignorância ou para encobrir seus rastros.

Se você desabilitar logins para a conta root diretamente, você prejudica sua capacidade de consertar o sistema quando há problemas graves.

Se você não conseguir convencer seus administradores a se autenticarem como eles próprios e executarem o Sudo para cada comando executado como root, e a não dividir isso em um Shell, você terá problemas sérios para os quais não há solução técnica.

1
carlito