Eu sou novo no Ansible. A maioria dos guias de provisionamento de VPS que vi até agora fazem isso:
- desativar o root do login
- crie um novo usuário que possa fazer login apenas com
ssh
(sem senha) - adicione o novo usuário ao
wheel
grupo, com permissão sudo sem senha
Eu entendo (1) e (2), mas não (3).
Certamente sem senha sudo
é como fazer login como root
? Entendo o benefício (conveniência), mas isso não é altamente inseguro?
Sei que os administradores administram suas redes de várias maneiras e, portanto, isso pode ser considerado "subjetivo", mas essa é uma prática MUITO comum, até mostrada em vários documentos oficiais e em guias publicados por empresas de hospedagem. Isso vai contra o senso comum. Qual é a lógica por trás disso?
Respostas:
Se a conta de serviço puder executar o sudo sem senha, você deverá proteger o acesso a essa conta.
Ter a conta sem uma senha e usar apenas chaves ssh para fazer login nela, faz isso, desde que você também mantenha a chave privada ssh segura.
fonte
O novo usuário criado em (2) pode efetuar login apenas com a chave SSH, sem senha. A chave SSH fornece acesso raiz indireto. Portanto, isso é equivalente a apenas permitir o login root com uma chave.
Como a conta não possui uma senha, não é possível
sudo
solicitar uma senha. O Ansible também precisa ser capaz de executar comandos. Ter uma senha adicional para fornecer no mesmo local da chave não aumentaria a segurança.fonte
O problema é que ansible é para administradores e automação, portanto, se você precisar digitar uma senha para executar um script, não será realmente a melhor. Também não é seguro armazenar a senha do sudo em um arquivo ou banco de dados e obtê-la sempre que executar o manual. Portanto, a combinação do sudo sem senha e a autenticação com as chaves ssh é o melhor método para garantir a segurança e sem problemas, executando o manual. Você também é um administrador e sabe o que está programando no manual. Portanto, o manual não pode destruir seus servidores.
fonte