systemadmin.es > Autenticación > Configuración de sudo mediante OpenLDAP y sssd

Configuración de sudo mediante OpenLDAP y sssd

En el caso de tener la autenticación mediante un OpenLDAP, no tiene sentido tener que configurar los sudos en local cuando los usuarios están en OpenLDAP. Vamos a ver cómo configurar sssd para almacenar la configuración de sudo en un OpenLDAP

Primero tendremos que cargar el schema en el OpenLDAP:

dn: cn=sudo,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: sudo
olcAttributeTypes: {0}( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser' DESC 'User(s
 ) who may  run sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substrin
 gsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: {1}( 1.3.6.1.4.1.15953.9.1.2 NAME 'sudoHost' DESC 'Host(s
 ) who may run sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substring
 sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: {2}( 1.3.6.1.4.1.15953.9.1.3 NAME 'sudoCommand' DESC 'Com
 mand(s) to be executed by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4
 .1.1466.115.121.1.26 )
olcAttributeTypes: {3}( 1.3.6.1.4.1.15953.9.1.4 NAME 'sudoRunAs' DESC 'User(
 s) impersonated by sudo (deprecated)' EQUALITY caseExactIA5Match SYNTAX 1.3
 .6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: {4}( 1.3.6.1.4.1.15953.9.1.5 NAME 'sudoOption' DESC 'Opti
 ons(s) followed by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466
 .115.121.1.26 )
olcAttributeTypes: {5}( 1.3.6.1.4.1.15953.9.1.6 NAME 'sudoRunAsUser' DESC 'U
 ser(s) impersonated by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.
 1466.115.121.1.26 )
olcAttributeTypes: {6}( 1.3.6.1.4.1.15953.9.1.7 NAME 'sudoRunAsGroup' DESC '
 Group(s) impersonated by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.
 1.1466.115.121.1.26 )
olcAttributeTypes: {7}( 1.3.6.1.4.1.15953.9.1.8 NAME 'sudoNotBefore' DESC 'S
 tart of time interval for which the entry is valid' EQUALITY generalizedTim
 eMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.12
 1.1.24 )
olcAttributeTypes: {8}( 1.3.6.1.4.1.15953.9.1.9 NAME 'sudoNotAfter' DESC 'En
 d of time interval for which the entry is valid' EQUALITY generalizedTimeMa
 tch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1
 .24 )
olcAttributeTypes: {9}( 1.3.6.1.4.1.15953.9.1.10 NAME 'sudoOrder' DESC 'an i
 nteger to order the sudoRole entries' EQUALITY integerMatch ORDERING intege
 rOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
olcObjectClasses: {0}( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' DESC 'Sudoer 
 Entries' SUP top STRUCTURAL MUST cn MAY ( sudoUser $ sudoHost $ sudoCommand
  $ sudoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $ sudoOrder $ su
 doNotBefore $ sudoNotAfter $ description ) )

Y preparamos el árbol (deberemos adaptar) para contener dicha información:

dn: ou=SUDOers,o=systemadmin
changetype: add
objectclass: organizationalUnit
objectclass: top
ou: SUDOers
description: sudo configuration

dn: cn=defaults,ou=SUDOers,o=systemadmin
changetype: add
objectclass: top
objectclass: sudoRole
cn: defaults
description: Default sudoOption’s go here
sudoOption: env_keep+=SSH_AUTH_SOCK

Cargamos un sudo inicial para probar la configuración, por ejemplo:

%wheel ALL=(ALL:ALL) ALL

Lo transformamos en:

dn: cn=wheel,ou=SUDOers,o=systemadmin
changetype: add
objectclass: top
objectclass: sudoRole
cn: wheel
description: Allow members of the nttdata group to su to the nttdata user
sudoUser: %wheel
sudoHost: ALL
sudoCommand: ALL
sudoRunAsUser: ALL

A continuación modificamos el /etc/sssd/sssd.conf que ya tenemos configurado previamente para la autenticación con lo siguiente:

[sssd]
config_file_version = 2
services = nss, pam, sudo
domains = default

(...)
[domain/default]
sudo_provider = ldap
(...)

A continuación reiniciamos sssd pare aplicar los cambios:

/etc/init.d/sssd restart

Para finalmente habilitarlo modificando el /etc/nsswitch.conf para añadir sss para sudoers. Evidentemente también podemos quitar files si no queremos que use el fichero de sudoers local:

sudoers: files sss

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>