Login remoto da raiz

8

Eu sei que uma das primeiras coisas que você faz para proteger um servidor é não permitir o login root remoto.

As senhas são muito fracas; o que as pessoas acham de permitir somente o login root via chaves ssh ou outros métodos sem senha.

Quais métodos são os melhores? É melhor não arriscar? É ssh-ing com uma conta secundária e usando su - realmente adicionando alguma segurança?

Como as pessoas no serverfault.com acessam o root em um servidor remoto?

    
por Kousha 28.02.2010 / 05:10

4 respostas

9

Na maioria das vezes, pouco é obtido desabilitando os logins raiz remotos. Isso ajuda marginalmente a impor uma política que administra o login através de suas próprias contas e su a root conforme necessário (ou usa sudo possivelmente com sudosh ... dependendo de suas políticas).

Criar senhas de raiz extremamente longas e complicadas (com efeito, desde que você ainda não esteja usando o antigo hashing de sal de DES de 12 bits para suas senhas) é quase tão eficaz para impor tal política.

Um site com o qual estou familiarizado tinha um sistema no qual as senhas exclusivas eram geradas aleatoriamente para cada host, armazenadas em um banco de dados e enviadas para os sistemas. Os administradores precisavam usar ssh com suas contas normais e sudo para a maioria das operações. No entanto, a senha raiz era acessível a eles por meio de um serviço da Web interno baseado em SSL (que exigia ainda mais seu token RSA SecurID e PIN). A busca de uma senha de root implicou a inserção de uma justificativa (geralmente um link para um número de ticket da Remedy (TM)) e acessos onde periodicamente auditados. Uma das poucas razões aceitáveis para usar a senha raiz diretamente foi nos casos em que um sistema foi parado em fsck durante o processo de inicialização ... e sulogin estava exigindo uma senha raiz real para executar manualmente a verificação do sistema de arquivos e processos de reparo. (Houve alguma discussão sobre métodos alternativos para isso - que são relativamente fáceis para o Linux, mas ficam muito mais difíceis à medida que você tenta estender seus procedimentos para considerar os muitos sistemas herdados HP-UX, AIX e SunOS e Solaris mais antigos que ainda estavam em produção nesse ambiente).

Existem casos-chave em que uma senha root é necessária --- ou pelo menos é a melhor alternativa disponível. Mantê-lo disponível, ao mesmo tempo em que o torna suficientemente robusto contra os tipos de ameaças que você pode prever, geralmente é sua melhor estratégia.

Outro site que conheço tem uma abordagem bastante elegante para o gerenciamento descentralizado de contas. Eles possuem pacotes user-* e sudo- * (pense em RPMs) que são instalados nos sistemas usando os procedimentos normais de gerenciamento de pacotes e a infraestrutura de automação. No caso deles, o pacote sudo- * tem uma dependência no pacote user-* correspondente. Isso é bom porque permite ter clusters de máquinas com contas localizadas (todas as contas são administradores, desenvolvedores, equipe de suporte ou contas "headless") e elimina a dependência de LDAP / NIS ou outros serviços de identidade e autenticação em rede. (Isso reduz o acoplamento entre os sistemas, tornando-os significativamente mais robustos).

Um pensamento que eu gosto sobre essa abordagem é que dá flexibilidade. Qualquer pessoa com acesso sudo pode emitir um comando para adicionar um usuário normal ou outra conta de usuário sudo . Então, se estou trabalhando em um ticket, qualquer pessoa que já tenha acesso a um sistema pode facilmente me dar acesso. Não há atrasos enquanto um ticket para me adicionar a alguma lista de controle de acesso em alguns bancos de dados centrais tritura através de algum processo de aprovação centralizado e finalmente propaga uma mudança de volta para o sistema em questão. Qualquer um dos sudo -ers autorizados no sistema pode me dar acesso e depois me remover. (Sim, se eu fosse mal e eles me caíssem sudo Eu poderia modificar coisas maliciosamente para manter o acesso ... na verdade, há algumas coisas que eu poderia fazer como um usuário normal para manter o acesso após essa remoção. No entanto, essa não é a ameaça que eles estão preocupados.Meu acesso ainda é limitado a um número relativamente menor de sistemas em geral, por isso o impacto de uma conta comprometida é ainda mais limitado do que a maioria dos esquemas semelhantes que eu vi.

    
por 28.02.2010 / 07:48
2

Se você desabilitar o acesso à raiz remota, você impedirá que atacantes remotos obtenham root diretamente - eles terão que interromper outra conta, obter acesso à máquina e tentar obter acesso ao root. É um passo extra.

Geralmente, o root está desativado para acesso remoto. SU funciona bem. Se algo realmente quebrar, sempre haverá acesso direto à caixa para corrigi-lo.

Se você quer ser mais rigoroso - apenas desabilite totalmente o root, é para isso que o sudo está. Novamente, com essa abordagem, você ainda pode obter acesso root baixando para o modo de usuário único - a la Ubuntu. Embora, acredito que eles usaram um init corrigido para isso, de acordo com seus documentos.

Além disso, você pode configurar o modo ocioso para dar início a usuários inativos caso seus terminais sejam deixados abertos e os PCs também estejam abertos. Você pode forçar todos os usuários a usar chaves, mas o gerenciamento de chaves pode ser difícil.

Um único host de registro de passagem como um sistema de tipo breakglass também forçou uma camada adicional de proteção e uma trilha de auditoria.

    
por 28.02.2010 / 05:19
2

Sugiro que você configure o sistema para permitir o acesso root SOMENTE no console.

Caso contrário, usando o sudo com a opção de senha, permita que usuários selecionados acessem comandos priv'd. BTW, perceba que o sudo pode ser projetado para restringir uma conta de usuário a certos comandos, se desejar. Sudo, deixa uma "marca" no log do sistema que foi usado. sudo é melhor que su porque a senha root não é divulgada. Assim, você pode alterar a senha do root e o usuário usando o sudo não seria mais sábio.

O uso permitido de sudo para chegar a comandos priv'd deve ser acompanhado por mudanças de senha periódicas forçadas com a frequência dependendo do ambiente.

    
por 28.02.2010 / 07:25
1

nunca permitir raiz

configura o sistema para permitir acesso via chaves somente sem senhas

configure o sudo para os usuários autorizados a fazer alterações por meio da conta raiz

    
por 28.02.2010 / 05:16