Problemi di accesso a un dominio di Active Directory


9

Sto cercando di unire un server Ubuntu 16.04 a un dominio Windows 2003 R2 seguendo la Guida di Ubuntu SSSD e Active Directory . Il mio amministratore dice che dal lato del controller fa parte del dominio. Ma SSSD non sembra avviarsi e net ads joinnon riesce.

Il è krb5.confstato modificato dal programma di installazione e ora ha questo:

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

In una precedente installazione ho pensato che ci fosse qualcos'altro [realms]che era stato richiesto durante l'installazione, ma non ricordo cosa e questa volta non è stato chiesto.

Il mio 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

Il mio 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

Anche se il servizio SSSD non sembra avviarsi:

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

E poiché la guida afferma che la proprietà e le autorizzazioni sono importanti:

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

Il mio 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

Il mio 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

Qui è dove inizia il problema. L'utilizzo sudoper eseguire i kinitrisultati è il seguente:

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

Autenticherà se lascio cadere sudoperò:

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

E posso verificare il biglietto:

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

Ma quando provo ad entrare nel 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.

In precedenza avevo ricevuto il NT_STATUS_UNSUCCESSFULmessaggio menzionato nella guida ma ero in grado di risolverlo modificando il mio hostsfile.

La guida parla della verifica che l'account del computer sia stato creato in Active Directory. E il mio amministratore dice che può vedere bene la macchina, quindi credo che vada bene. La seconda opzione di verifica non mi dice cosa dovrei ottenere da quel comando ma non ricevo nulla quindi suppongo che non funzioni.

Quindi dove sbaglio qui?


Modificare:

Non sono sicuro di quello che ho fatto, ma ora SSSD è in esecuzione.


Ubuntu 14.04 ha usato upstart, non systemd. Quell'uscita è sospetta.
Muru,

@muru Ci scusiamo per l'errore di battitura. Sono il 16.04. La domanda è stata modificata.
embedded.kyle

Risposte:


3

Il problema sembra essere stato che il mio amministratore aveva creato una voce sul controller di dominio per questo server. Ciò apparentemente ha causato un conflitto che ha causato il verificarsi del seguente errore in Kerberos:

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.

Non sono sicuro che questo errore sia stato del tutto accurato poiché il mio amministratore ha detto che il server è stato unito al dominio da parte sua e ha realmdindicato che anch'io sono stato aggiunto:

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

I passaggi che ho seguito per ottenere un join Kerberos di successo sono stati i seguenti:

  1. L'amministratore ha rimosso la voce nel controller di dominio
  2. Eseguire nuovamente la configurazione di Kerberos utilizzando: sudo dpkg-reconfigure krb5-config
  3. Scegliere le opzioni nella configurazione per aggiungere esplicitamente il controller di dominio alla [realms]sezione dikrb5.conf
  4. Modificato il nome host per garantire la creazione di un nuovo record
  5. Ho preso un nuovo biglietto usando kinit
  6. È entrato nel dominio usando sudo net ads join -k

Risultato finale:

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

0

Penso che ti manchi il keytab. Puoi crearlo tramite lo strumento kadmin. digitare kadmin e nel prompt digitare help per vedere come aggiungere il keytab.


/etc/krb5.keytabesiste già e ha alcune cose crittografate intervallate dal nome del server e dal nome di dominio. Devo crearne uno aggiuntivo?
embedded.kyle
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.