Estoy tratando de unir Ubuntu 16.04 a un dominio de Windows (directorio activo) usando realmd + sssd. Básicamente, estaba siguiendo esta publicación que funcionó bastante bien y pude unirme a mi servidor y autenticar con éxito como usuario de AD. Sin embargo, faltan dos piezas en la integración:
- Registrar el nombre de host del servidor en DNS
- Usar sssd-sudo para autorización de usuario
Registrar el nombre de host del servidor en DNS
Como se mencionó, me uní con éxito al AD usandorealm join --user=dpr MYDOMAIN.INT --install=/
:
[email protected] ~ # realm list
mydomain.int
type: kerberos
realm-name: MYDOMAIN.INT
domain-name: mydomain.int
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: libnss-sss
required-package: libpam-sss
required-package: adcli
required-package: samba-common-bin
login-formats: %[email protected]
login-policy: allow-realm-logins
Sin embargo, a pesar de la unión exitosa, mi servidor no es conocido por las otras máquinas en el dominio que usan su nombre de host ip-172-28-5-174.mydomain.int
. Encontré esta documentación que menciona un dyndns_update
configuración en el archivo sssd.conf.
Como estoy usando realm. La configuración de sssd se genera automáticamente emitiendo el comando de unión. El archivo de configuración generado se ve así:
[sssd]
domains = mydomain.int
config_file_version = 2
services = nss, pam
[domain/mydomain.int]
ad_domain = mydomain.int
krb5_realm = MYDOMAIN.INT
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%[email protected]%d
access_provider = ad
Es decir, de alguna manera necesito agregar dyndns_update = True
a este archivo generado. ¿Pero cómo?
Usar sssd-sudo para autorización de usuario
Además, quiero hacer que sssd lea mi configuración de sudo de AD. Creo que esto se puede lograr usando sssd-sudo, pero también se debe habilitar/configurar en el archivo sssd.conf agregando sudo
a los servicios sssd y use sudo_provider = ldap
para mi dominio. Nuevamente, no puedo averiguar cómo hacer esto con realm.
Básicamente, quiero que mi archivo de configuración generado se vea así:
[sssd]
domains = mydomain.int
config_file_version = 2
services = nss, pam, sudo
[domain/mydomain.int]
id_provider = ad
access_provider = ad
sudo_provider = ldap
ad_domain = mydomain.int
krb5_realm = MYDOMAIN.INT
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%[email protected]%d
¿Alguna idea sobre cómo se puede lograr esto?
Respuesta aceptada:
Si desea que Active Directory administre sudoers
, debe cargar un esquema especializado en AD y luego crear sus reglas usando una herramienta como ADSI Edit. Este tutorial funcionó para mí en Ubuntu 14.04. Los aspectos más destacados son:
- Importar
schema.ActiveDirectory
- Cree reglas siguiendo la página de manual de sudoers-ldap
- Actualizar
etc/nsswitch.conf
para incluirsss
entre las entradas desudoers =
línea - Actualizar
etc/sssd/sssd.conf
para incluir:sudo
entre las entradas enservices =
línea- un
[sudo]
vacío sección (no se requieren configuraciones, pero Redhat afirma que esto desencadena la configuración adecuada del soporte de Sudo) - una línea como
sudo_provider = ad
(Los documentos sssd en pagure.org afirman que el proveedor sudo está habilitado de forma predeterminada para ldap, ad e ipa, por lo que esto puede ser opcional)
Cuando repito este proceso para 16.04 (es decir, las mismas reglas de AD que 14.04), en realidad tengo otros problemas. Aparentemente, esto no es raro. Es posible que haya un error en la versión de sudo incluida en 16.04.
- En principio, la actualización manual a la última debería resolver este problema.
- El
sudo
habitual paquete (nosudo-ldap
) es el paquete correcto si desea SSSD (y nosudo
) para gestionar la conexión ldap. Específicamente, instalandosudo-ldap
no produjo registros ensssd_sudo.log
mientras que elsudo
regular el paquete lo hizo. - Mientras
sssd_sudo
ahora muestraReturning 2 rules for [<user>@<domain>]
,sudo -l
sigue respondiendo conSorry, user <user>@<domain> may not run sudo on <host>
por lo que puede haber otros problemas que necesiten ser resueltos.
Sin embargo, es posible que mi situación no sea típica, ya que tengo problemas adicionales que no parecen ser comunes. Por ejemplo, tuve problemas para ejecutar realm join
que se resolvieron utilizando soluciones alternativas de esta pregunta de falla del servidor.
Si encontró su camino aquí debido a problemas de realmd/sssd/sudo en 16.04, aquí hay algunos otros problemas informados que pueden ser útiles (no necesariamente directamente relacionados con el problema del OP):
- Problema del grupo de red del host de IPA (más información en la lista de usuarios de ipa gratis)
- Hay un problema conocido con la resolución de dependencias de realmd. Como se mencionó en la discusión, la instalación de packagekit se resuelve para muchos (incluidos nosotros). Puede haber otro problema con la versión 16.04.
Estamos evaluando la actualización 16.04, por lo que podemos dejar esto en un segundo plano, pero esperamos que nuestro trabajo preliminar ayude a otros.