Problemas para unirse a un dominio de Active Directory


9

Estoy tratando de unir un servidor Ubuntu 16.04 a un dominio de Windows 2003 R2 siguiendo la SSSD de Ubuntu y la Guía de Active Directory . Mi administrador dice que desde el lado del controlador, es parte del dominio. Pero parece que SSSD no puede iniciarse y net ads joinfalla.

El krb5.confinstalador lo modificó y ahora tiene esto:

kyle@Server21:~$ cat /etc/krb5.conf
[libdefaults]
        default_realm = COMAPNYNAME.LOCAL

En una instalación anterior, pensé que había algo más [realms]que se solicitó durante la instalación, pero no puedo recordar qué y esta vez no se solicitó.

Mi smb.conf:

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = COMPANYNAME
   client signing = yes
   client use spnego = yes
   kerberos method = secrets and keytab
   realm = COMPANYNAME.LOCAL
   security = ads

Mi sssd.conf:

kyle@Server21:~$ sudo cat /etc/sssd/sssd.conf
[sssd]
services = nss, pam
config_file_version = 2
domains = COMPANYNAME.LOCAL

[domain/COMPANYNAME.LOCAL]
id_provider = ad
access_provider = ad
override_homedir = /home/%d/%u

Aunque parece que el servicio SSSD no puede comenzar:

kyle@Server21:~$ systemctl status sssd.service
● sssd.service - System Security Services Daemon
   Loaded: loaded (/lib/systemd/system/sssd.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2016-06-22 09:57:57 EDT; 37min ago
  Process: 16027 ExecStart=/usr/sbin/sssd -D -f (code=exited, status=1/FAILURE)

Jun 22 09:57:55 Server21 sssd[16038]: Starting up
Jun 22 09:57:55 Server21 sssd[16041]: Starting up
Jun 22 09:57:55 Server21 sssd[16042]: Starting up
Jun 22 09:57:56 Server21 sssd[be[16043]: Starting up
Jun 22 09:57:57 Server21 sssd[be[16043]: Failed to read keytab [default]: No such file or directory
Jun 22 09:57:57 Server21 sssd[16031]: Exiting the SSSD. Could not restart critical service [COMPANYNAME.LOCAL].
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Control process exited, code=exited status=1
Jun 22 09:57:57 Server21 systemd[1]: Failed to start System Security Services Daemon.
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Unit entered failed state.
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Failed with result 'exit-code'.

Y como la guía dice que la propiedad y los permisos son importantes:

kyle@Server21:~$ sudo ls -la /etc/sssd
total 12
drwx--x--x   2 sssd sssd 4096 Jun 21 14:34 .
drwxr-xr-x 103 root root 4096 Jun 22 10:21 ..
-rw-------   1 root root  172 Jun 21 14:22 sssd.conf

Mi nsswitch.conf:

kyle@Server21:~$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat sss
group:          compat sss
shadow:         compat sss
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files sss
ethers:         db files
rpc:            db files

netgroup:       nis sss
sudoers:        files sss

Mi hosts:

kyle@Server21:~$ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       Server21.COMPANYNAME.LOCAL Server21
192.168.11.11   Server21.COMPANYNAME.LOCAL Server21

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Aquí es donde comienza el problema. Utilizando sudopara ejecutar kinitresultados en lo siguiente:

kyle@Server21:~$ sudo kinit adminstrator
kinit: Client 'adminstrator@COMPANYNAME.LOCAL' not found in Kerberos database while getting initial credentials

Sin sudoembargo, se autenticará si dejo caer el :

kyle@Server21:~$ kinit -V administrator
Using default cache: /tmp/krb5cc_1000
Using principal: administrator@COMPANYNAME.LOCAL
Password for administrator@COMPANYNAME.LOCAL:
Authenticated to Kerberos v5

Y puedo verificar el boleto:

kyle@Server21:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@COMPANYNAME.LOCAL

Valid starting       Expires              Service principal
06/23/2016 13:41:55  06/23/2016 23:41:55  krbtgt/COMPANYNAME.LOCAL@COMPANYNAME.LOCAL
        renew until 06/24/2016 13:41:48

Pero cuando intento unirme al dominio:

kyle@Server21:~$ sudo net ads join -k
Failed to join domain: failed to lookup DC info for domain 'COMPANYNAME.LOCAL' over rpc: An internal error occurred.

Ya había recibido el NT_STATUS_UNSUCCESSFULmensaje mencionado en la guía, pero pude resolverlo modificando mi hostsarchivo.

La guía habla sobre verificar que la cuenta de la computadora se creó en el Active Directory. Y mi administrador dice que puede ver la máquina muy bien, así que creo que está bien. La segunda opción de verificación no me dice qué se supone que debo recuperar de ese comando, pero no recibo nada, así que supongo que no funciona.

Entonces, ¿dónde me estoy equivocando aquí?


Editar:

No estoy seguro de lo que hice, pero SSSD ahora se está ejecutando.


Ubuntu 14.04 usó upstart, no systemd. Esa salida es sospechosa.
muru

@muru Perdón por el error tipográfico. Estoy en 16.04. La pregunta ha sido editada.
embedded.kyle

Respuestas:


3

El problema parece haber sido que mi administrador había creado una entrada en el controlador de dominio para este servidor. Aparentemente, esto causó un conflicto que hizo que Kerberos encontrara el siguiente error al intentar unirse:

kyle@Server21:~$ sudo net ads join -k
Failed to join domain: failed to lookup DC info for domain 'COMPANYNAME.LOCAL' over rpc: An internal error occurred.

No estoy seguro de que este error haya sido del todo exacto, ya que mi administrador dijo que el servidor se unió al dominio de su parte e realmdindicó que también me uní:

kyle@Server21:~$ realm join COMPANYNAME.LOCAL
realm: Already joined to this domain

Los pasos que seguí para obtener una unión Kerberos exitosa fueron los siguientes:

  1. El administrador eliminó la entrada en el controlador de dominio
  2. Reran la configuración de Kerberos usando: sudo dpkg-reconfigure krb5-config
  3. Elija las opciones en la configuración para agregar el controlador de dominio explícitamente a la [realms]sección dekrb5.conf
  4. Cambió el nombre de host para garantizar que se creó un nuevo registro
  5. Sacó un nuevo boleto usando kinit
  6. Se unió al dominio usando sudo net ads join -k

Resultado final:

kyle@SERV21:~$ sudo net ads join -k  
Using short domain name -- COMPANYNAME  
Joined 'SERV21' to dns domain 'CompanyName.Local'

0

Creo que te falta la pestaña. Puede crearlo a través de la herramienta kadmin. escriba kadmin y en el indicador escriba ayuda para ver cómo agregar la tabla de claves.


/etc/krb5.keytabya existe y tiene algunas cosas cifradas intercaladas con el nombre del servidor y el nombre de dominio. ¿Necesito crear uno adicional?
embedded.kyle
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.