Problème pour rejoindre un domaine Active Directory


9

J'essaie de joindre un serveur Ubuntu 16.04 à un domaine Windows 2003 R2 en suivant le guide Ubuntu SSSD et Active Directory . Mon administrateur dit que du côté du contrôleur, il fait partie du domaine. Mais SSSD ne semble pas pouvoir démarrer et net ads joinéchoue.

Le a krb5.confété modifié par l'installateur et a maintenant ceci:

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

Lors d'une installation précédente, je pensais qu'il y avait quelque chose d'autre [realms]qui avait été demandé pendant l'installation, mais je ne me souviens pas de quoi et cela n'a pas été demandé cette fois-ci.

Mon 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

Mon 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

Bien que le service SSSD ne semble pas pouvoir démarrer:

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'.

Et puisque le guide dit que la propriété et les autorisations sont 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

Mon 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

Mon 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

Voici où commence le problème. Utilisation sudode l'exécution des kinitrésultats dans les éléments suivants:

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

Il s'authentifiera si je laisse tomber sudocependant:

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

Et je peux vérifier le ticket:

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

Mais quand j'essaye de rejoindre le domaine:

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.

J'avais déjà reçu le NT_STATUS_UNSUCCESSFULmessage mentionné dans le guide mais j'ai pu le résoudre en modifiant mon hostsfichier.

Le guide explique comment vérifier que le compte d'ordinateur a été créé dans Active Directory. Et mon administrateur dit qu'il peut très bien voir la machine, donc je pense que ça va. La deuxième option de vérification ne me dit pas ce que je suis censé récupérer de cette commande mais je ne reçois rien donc je suppose que cela ne fonctionne pas.

Alors, où vais-je me tromper ici?


Éditer:

Je ne suis pas sûr de ce que j'ai fait, mais SSSD fonctionne maintenant.


Ubuntu 14.04 a utilisé upstart, pas systemd. Cette sortie est louche.
muru

@muru Désolé pour la faute de frappe. Je suis le 16.04. La question a été modifiée.
embedded.kyle

Réponses:


3

Le problème semble avoir été que mon administrateur avait créé une entrée sur le contrôleur de domaine pour ce serveur. Cela a apparemment provoqué un conflit qui a fait que Kerberos rencontre l'erreur suivante lors de la tentative de connexion:

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.

Je ne suis pas sûr que cette erreur était entièrement exacte, car mon administrateur a déclaré que le serveur était joint au domaine de son côté et a realmdindiqué que j'étais également joint:

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

Les étapes que j'ai suivies pour obtenir une jointure Kerberos réussie étaient les suivantes:

  1. L'administrateur a supprimé l'entrée dans le contrôleur de domaine
  2. Réexécutez la configuration Kerberos en utilisant: sudo dpkg-reconfigure krb5-config
  3. Choisissez les options dans la configuration pour ajouter explicitement le contrôleur de domaine à la [realms]section dekrb5.conf
  4. Modification du nom d'hôte pour garantir la création d'un nouvel enregistrement
  5. A tiré un nouveau ticket en utilisant kinit
  6. A rejoint le domaine en utilisant sudo net ads join -k

Résultat final:

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

0

Je pense que vous manquez le keytab. Vous pouvez le créer via l'outil kadmin. tapez kadmin et dans l'invite, tapez help pour voir comment ajouter le keytab.


/etc/krb5.keytabexiste déjà et contient des éléments chiffrés entrecoupés du nom du serveur et du nom de domaine. Dois-je en créer un supplémentaire?
embedded.kyle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.