¿Cuál es la mejor solución para administrar la contraseña de root de miles de servidores?

12

Soy un administrador del sistema. En el entorno de producción, necesito administrar miles de servidores. Mis colegas y yo utilizamos un servidor de administración central y distribuimos su clave pública a través de otros servidores. Entonces, podemos usar este servidor de administración para enviar ssh a otros servidores.

A veces necesitamos usar la contraseña de root, por ejemplo, cuando el servidor está inactivo, necesitamos usar iLO para determinar la razón.

Actualmente, utilizamos una contraseña de root compartida. No es seguro También busqué una solución de servidor único como OPIE(Contraseñas de un solo uso en todo), pero como tenemos tantos servidores, esta no es una muy buena idea.

EDITAR:

Lo que quiero de la solución de administración de contraseña es:

  1. Debe ser seguro, por lo que One-time Password es una gran solución.
  2. La contraseña se puede ingresar fácilmente, a veces necesitamos conectar el monitor al servidor o con iLO como mencioné anteriormente.
  3. La solución debería funcionar incluso si el servidor está fuera de línea (sin ninguna conexión de red)

Por lo tanto, no es una buena idea establecer la contraseña de root en una cadena larga y aleatoria, aunque se genera a partir de algún comando conocido (como openssl passwd). Es difícil de recordar, y a veces es difícil de generar (sin mi computadora portátil)

yegle
fuente
1
¿Ya estás usando un sistema de gestión de configuración como títere? ¿Que estas usando?
Zoredache
Puppet ++ para esto.
Tom O'Connor
Usamos cfengine :-)
yegle

Respuestas:

5

Puede usar Puppet para eliminar el cambio de contraseña en todos sus servidores. Definiría rootusar el usertipo así:

    user { 'root':
            ensure => present,
            password => '$1$blablah$blahblahblahblah',
    }

Para generar la contraseña cifrada:

openssl passwd -1 -salt "blah"

Sugeriría tal vez cambiarlo cada mes más o menos --- tal vez usando un esquema que sus SA memorizaron. También puede distribuirlo a través de un método seguro o ponerlo en una caja fuerte.

Belmin Fernandez
fuente
3

Siempre puedes establecer una contraseña deshabilitada. Esto evitaría cualquier acceso de red a la raíz, y si inicia en modo de usuario único, la mayoría de las distribuciones se iniciarán directamente en un shell.

Esto probablemente no sea un problema de seguridad tan grande como podría pensar. Es trivial omitir la contraseña de root de todos modos, a menos que haya bloqueado grub con una contraseña, casi cualquiera podría simplemente decirle a grub que inicie bash en lugar de initrd.

Por supuesto, esto puede significar que, en su lugar, debería descubrir cómo proteger con contraseña su gestor de arranque.

Zoredache
fuente
0

Puede usar contraseñas de un solo uso con una administración central. Sé que esto no se ajusta a "debe funcionar cuando eth está desconectado y se accede al servidor con iLO".

De todos modos: la pregunta es, con qué frecuencia el servidor está fuera de línea.

Entonces podría pensar en la siguiente configuración:

Use una solución OTP administrada centralmente como privacyidea ( http://www.privacyidea.org ). Puede asignar varios tokens OTP diferentes al usuario raíz. Cada token tiene un PIN de OTP diferente y es un dispositivo diferente. Por lo tanto, todos sus colegas pueden iniciar sesión como usuario root, pero en el registro de auditoría verá qué token autenticado, para que pueda saber qué colega inició sesión en cada momento.

En los servidores, debe configurar pam_radius para pasar la solicitud de autenticación a RADIUS y privacyIDEA.

Gorrón. Ahora su servidor se desconecta. En este caso deberías jugar con tu pila de pam. Podría pensar en algo como:

auth sufficient pam_unix.so
auth required pam_radius.so use_first_pass

Para que pueda iniciar sesión con una contraseña fija sin conexión, de lo contrario, la contraseña se entrega a pam_radius y se valida como OTP contra privacyIDEA.

Vea este tutorial https://www.howtoforge.com/manage-two-factor-authentication-in-your-serverfarm-with-privacyidea .

cornelinux
fuente