Desabilitando o ssh como root nas caixas do Linux e os desafios de escrever scripts

4

É uma sugestão comum de pessoas preocupadas com a segurança para desabilitar o ssh como root nas caixas do Linux. Minha pergunta é esta:

Digamos que você normalmente escreve muitos scripts com ssh em um grande número de caixas de Linux e executa várias tarefas de nível raiz. Se você desabilitar o ssh como root, como você faz a manutenção diária que requer privilégios de root?

Naturalmente, o sudo é uma opção, mas você precisa digitar sua senha toda vez que executar um comando. E se seus scripts executassem uma variedade de tarefas? E se você tiver que executar esse script em um grande número de hosts?

Claro, você pode definir o parâmetro NOPASSWD, mas isso não é um risco de segurança?

Apenas refletindo aqui. Quer receber o feedback da comunidade. Eu estou procurando uma maneira relativamente segura de ssh para caixas Linux e executar tarefas de nível raiz.

    
por beaconfield 12.03.2013 / 22:43

4 respostas

6

Existem muitas coisas que você pode fazer. Esta é uma lista parcial:

  • Se o script realmente precisar ser executado periodicamente, coloque-o no crontab e pare de executá-lo manualmente.

  • Use um sistema como o MCollective (relacionado, mas não exatamente parte do fantoche) para executar comandos remotamente em um grande número de máquinas de uma só vez.

  • Use as chaves ssh para permitir logins raiz de usuários específicos. Isso carrega um risco de auditoria, na medida em que a pessoa que efetuou login não pode ser registrada, portanto, é realmente apropriada apenas para instalações muito pequenas.

  • Em /etc/sudoers , especifique apenas os scripts específicos que podem ser executados sem uma senha; qualquer outra coisa exigiria uma senha.

por 12.03.2013 / 22:47
4

Se você regularmente "escreve um script para executar tarefas como root sobre ssh", você deve pensar seriamente em configurar o Puppet / Chef / CFEngine / Ansible / Salt / Rundeck.

    
por 12.03.2013 / 22:53
2

Você não precisa digitar a senha toda vez: Se você executar o sudo em um tempo relativamente curto, não precisará digitá-lo. Se houver tarefas mais longas, é possível executar sudo -s para obter um shell de root.

Uma vantagem de usar o sudo para isso sobre o ssh direto como root é que a) você não precisa compartilhar uma senha de root sobre várias pessoas b) pode ler logs para descobrir quem está infectado. Isso pode não ser necessário desde que você esteja sozinho, mas isso pode mudar.

    
por 12.03.2013 / 22:46
2

Se houver alguns comandos específicos que você precisa executar, você pode configurar o sudo (por meio do arquivo /etc/sudoers ) para permitir que uma determinada lista de usuários (e / ou grupos) execute esses comandos sem uma senha.

    
por 12.03.2013 / 22:48