Soy nuevo en Ansible. La mayoría de las guías de aprovisionamiento de VPS que he visto hasta ahora hacen esto:
- deshabilitar el inicio de sesión de root
- crear un nuevo usuario que solo pueda iniciar sesión con
ssh
(no con contraseña) - agregue el nuevo usuario al
wheel
grupo, con permiso de sudo sin contraseña
Entiendo (1) y (2), pero no (3).
Seguramente sin contraseña sudo
es como iniciar sesión como root
? Entiendo el beneficio (conveniencia), pero ¿no es esto altamente inseguro?
Me doy cuenta de que los administradores ejecutan sus redes de varias maneras, por lo que podría decirse que esto es "subjetivo", pero esta es una práctica MUY común, incluso se muestra en varios documentos oficiales de Ansible, así como en guías publicadas por empresas de hosting. Va en contra del sentido común. ¿Cuál es la lógica detrás de esto?
Respuestas:
Si la cuenta de servicio puede hacer sudo sin contraseña, entonces debe proteger el acceso a esa cuenta.
Tener la cuenta no tiene una contraseña y usar solo las claves ssh para iniciar sesión, logra esto, siempre que también pueda mantener segura la clave privada ssh.
fuente
El nuevo usuario creado en (2) solo puede iniciar sesión con la clave SSH, sin contraseña. La clave SSH brinda acceso indirecto a la raíz. Entonces, esto es equivalente a solo permitir el inicio de sesión raíz con una clave.
Como la cuenta no tiene una contraseña, no es posible
sudo
solicitar una contraseña. También Ansible necesita poder ejecutar comandos. Tener una contraseña adicional para proporcionar en el mismo lugar que la clave no aumentaría la seguridad.fuente
El problema es que ansible es para administradores y automatización, por lo que si necesita ingresar una contraseña para ejecutar un script, no es realmente la mejor manera. Tampoco es seguro almacenar la contraseña de sudo en un archivo o base de datos y obtenerla cada vez que ejecute el libro de jugadas. Por lo tanto, la combinación de sudo sin contraseña y la autenticación con ssh Keys es el mejor método para garantizar la seguridad y sin problemas al ejecutar el libro de jugadas. También eres administrador y sabes lo que estás programando en el libro de jugadas. Entonces el libro de jugadas no puede destruir sus servidores.
fuente