La escalada de privilegios impide la raíz directamente

La escalada de privilegios impide la raíz directamente

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>.admdebensudo 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>.issotienen 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>.admdebensudo su - root

Conceptualmente yopensarque lo que debes querer y necesitar lograr es:

Todos los administradores tienen dos cuentas personales:

  1. una cuenta de usuario "normal"
  2. una cuenta de administrador

Para obtener derechos completos de administrador en un servidor Linux:

  1. el administrador primero debe iniciar sesión con su cuenta de usuario habitual<user>

  2. 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 utilicen su - <user>.adm
      Eso significa que su administrador deberá ingresar su contraseña de la <user>.admcuenta (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 sudorequiere ninguna política para su cuenta de usuario habitual <user>. ¡GANAR!
  3. Una vez que haya iniciado sesión con una cuenta de administrador personal, debería permitirle realizar todas las acciones que requieran rootprivilegios.

    Eso requiere establecer una sudopolítica. Hay información más que suficiente al respecto.

    Mi preferencia es usar el #includedir /etc/sudoers.dmecanismo incluido en la mayoría de /etc/sudoerslas 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.admpersonalmente, 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 DenyUsersdirectiva en los servidores /etc/ssh/sshd_configpara 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 DenyGroupspara configurar una política basada en grupo.

información relacionada