
Creo que esta será mi primera publicación en el lado de StackExchange. Sin embargo, sé que esto debe poder configurarse porque lo he visto implementado anteriormente, pero en realidad no sé cómo se implementa.
Lo que estoy buscando hacer es en RedHat 7/8 o derivado... ¿Cómo puedo hacer que un usuario tenga que realizar las siguientes escaladas de privilegios?
<user> -> <user>.adm -> root
- Los usuarios de IdM en el grupo ssh_users pueden conectarse mediante SSH a los servidores desde cualquier lugar de la red.
- Los administradores de dominio en IdM no se pueden usar para SSH a servidores y no están en el grupo.
- Los usuarios que sean administradores de dominio deben conectarse mediante SSH a su usuario estándar
sudo su - <user>.adm
. No pueden llegar directamente a la raíz. - Los usuarios que sean administradores de dominio y que también tengan acceso raíz primero
sudo su - <user>.adm
debensudo su - root
- No todos los administradores de dominio tienen permiso para obtener acceso a la raíz.
En última instancia, los administradores de dominio son los administradores del sistema con permisos relevantes para mantener, solucionar problemas y remediar el sistema. Los ingenieros de sistemas tienen permiso para obtener root, lo que les otorga todos los permisos en el sistema. Esto también incluye la delegación de responsabilidades donde solo las cuentas de auditoría <user>.isso
tienen permisos para eliminar registros fuera del usuario raíz. Que es, en última instancia, lo que está frenando esta exigencia.
Lo que realmente estoy buscando es documentación que (porque estoy quedando en blanco) pueda indicarme la dirección correcta o roles/libros de estrategias de Ansible que funcionalmente realicen este tipo de enfoque de privilegios mínimos. ¡Cualquier ayuda sería muy apreciada!
Respuesta1
Los usuarios que sean administradores de dominio y que también tengan acceso raíz primero
sudo su - <user>.adm
debensudo su - root
Conceptualmente yopensarque lo que debes querer y necesitar lograr es:
Todos los administradores tienen dos cuentas personales:
- una cuenta de usuario "normal"
- una cuenta de administrador
Para obtener derechos completos de administrador en un servidor Linux:
el administrador primero debe iniciar sesión con su cuenta de usuario habitual
<user>
Una vez que inician sesión en el servidor, aumentan sus privilegios iniciando sesión en su cuenta de administrador personal.
<user>.adm
sudo su - <user>.adm
solicita la contraseña de la<user>
cuenta y luego, con privilegios de root, sustituye el usuario por<user>.adm
.- ^^^ Ese es el enfoque equivocado en mi humilde opinión.
Debería desear que sus administradores utilicensu - <user>.adm
Eso significa que su administrador deberá ingresar su contraseña de la<user>.adm
cuenta (en lugar de la contraseña de la<user>
cuenta) para iniciar sesión como<user>.adm
.- Entonces, siempre y cuando sus administradores no tengan la misma contraseña en su cuenta adm que en su cuenta normal, una contraseña comprometida no será suficiente para convertirse en root en todos sus servidores. ¡GANAR!
- Además, no se
sudo
requiere ninguna política para su cuenta de usuario habitual<user>
. ¡GANAR!
Una vez que haya iniciado sesión con una cuenta de administrador personal, debería permitirle realizar todas las acciones que requieran
root
privilegios.Eso requiere establecer una
sudo
política. Hay información más que suficiente al respecto.Mi preferencia es usar el
#includedir /etc/sudoers.d
mecanismo incluido en la mayoría de/etc/sudoers
las políticas modernas (¡#
no hay comentarios!) y soltar un archivo (que no incluye.
en el nombre del archivo) y configurar políticas de esa manera.Una opción es tener una póliza para
hbruijn.adm
personalmente, es decir/etc/sudoers.d/hbruijn_adm
:# /etc/sudoers.d/hbruijn_adm # sudo policy that allow HBruijn's admin account to perform all # as any user, without prompting for a password hbruijn.adm ALL = NOPASSWD: ALL
Alternativamente, cuando todas las cuentas de administrador a las que se les permite obtener privilegios de root completos en sistemas Linux pertenecen a un grupo específico, configure una política basada en grupo.
Lo implícito es que usted, además, impide que sus administradores puedan iniciar sesión directamente en su cuenta de administrador.
Esto puede ser, por ejemplo, para que el acceso remoto SSH se logre mediante el uso de una DenyUsers
directiva en los servidores /etc/ssh/sshd_config
para evitar que un usuario específico, o usuarios que coincidan con un patrón, inicien sesión:
# /etc/ssh/sshd_config
#here go defaults for all connections/users
PasswordAuthentication no
PubkeyAuthentication no
...
DenyUsers *.adm
Como alternativa, utilice algo similar DenyGroups
para configurar una política basada en grupo.