Sto cercando di unirmi a Ubuntu 16.04 a un dominio Windows (directory attiva) usando realmd + sssd. Fondamentalmente stavo seguendo questo post che ha funzionato abbastanza bene e sono stato in grado di unirmi al mio server e ho potuto autenticarmi con successo come utente AD. Tuttavia mancano due pezzi nell'integrazione:
- Registra il nome host del server in DNS
- Usa sssd-sudo per l'autorizzazione utente
Registra il nome host del server in DNS
Come accennato, mi sono unito con successo all'AD utilizzandorealm 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
Tuttavia, nonostante l'unione riuscita, il mio server non è noto alle altre macchine del dominio utilizzando il suo nome host ip-172-28-5-174.mydomain.int
. Ho trovato questa documentazione che menziona un dyndns_update
impostazione nel file sssd.conf.
Come sto usando realm. La configurazione sssd viene generata automaticamente eseguendo il comando join. Il file di configurazione generato è simile al seguente:
[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
Cioè in qualche modo ho bisogno di aggiungere dyndns_update = True
a questo file generato. Ma come?
Utilizza sssd-sudo per l'autorizzazione utente
Inoltre voglio fare in modo che sssd legga la mia configurazione sudo da AD. Penso che questo possa essere ottenuto usando sssd-sudo, ma questo deve essere abilitato/configurato anche nel file sssd.conf aggiungendo sudo
ai servizi sssd e usa sudo_provider = ldap
per il mio dominio. Ancora una volta non sono in grado di capire come farlo con realm.
Fondamentalmente voglio che il mio file di configurazione generato assomigli a questo:
[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
Qualche idea su come ottenerlo?
Risposta accettata:
Se vuoi che Active Directory gestisca sudoers
, devi caricare uno schema specializzato in AD e quindi creare le tue regole utilizzando uno strumento come ADSI Edit. Questa procedura dettagliata ha funzionato per me su Ubuntu 14.04. I punti salienti sono:
- Importa
schema.ActiveDirectory
- Crea regole seguendo la manpage sudoers-ldap
- Aggiorna
etc/nsswitch.conf
per includeresss
tra le voci susudoers =
linea - Aggiorna
etc/sssd/sssd.conf
per includere:sudo
tra le voci suiservices =
linea- un
[sudo]
vuoto sezione (non sono richieste configurazioni, ma Redhat afferma che ciò attiva la corretta configurazione del supporto sudo) - una riga come
sudo_provider = ad
(sssd docs su pagure.org afferma che il provider sudo è abilitato per impostazione predefinita per ldap, ad e ipa, quindi potrebbe essere facoltativo)
Quando ripeto questo processo per il 16.04 (ovvero le stesse regole AD del 14.04), in realtà sto riscontrando altri problemi. Apparentemente, questo non è raro. È possibile che ci sia un bug nella versione di sudo inclusa nella 16.04.
- In linea di principio, l'aggiornamento manuale all'ultima versione dovrebbe risolvere questo problema.
- Il normale
sudo
pacchetto (nonsudo-ldap
) è il pacchetto giusto se vuoi SSSD (e nonsudo
) per gestire la connessione ldap. In particolare, l'installazione disudo-ldap
non ha prodotto log insssd_sudo.log
mentre il normalesudo
pacchetto fatto. - Mentre
sssd_sudo
ora mostraReturning 2 rules for [<user>@<domain>]
,sudo -l
continua a rispondere conSorry, user <user>@<domain> may not run sudo on <host>
quindi potrebbero esserci altri problemi da risolvere.
La mia situazione potrebbe non essere tipica, tuttavia, poiché sto riscontrando problemi aggiuntivi che non sembrano essere comuni. Ad esempio, ho riscontrato problemi durante l'esecuzione di realm join
che sono stati risolti utilizzando soluzioni alternative da questa domanda di errore del server.
Se hai trovato la tua strada qui a causa di problemi di realmd/sssd/sudo in 16.04, ecco alcuni altri problemi segnalati che potrebbero essere utili (non necessariamente correlati direttamente al problema dell'OP):
- Problema relativo al netgroup dell'host IPA (maggiori informazioni sull'elenco degli utenti di free-ipa)
- Si è verificato un problema noto con la risoluzione delle dipendenze di realmd. Come accennato nella discussione, l'installazione di packagekit risolve per molti (incluso noi). Potrebbe esserci un problema separato con la versione 16.04.
Stiamo valutando 16.04 per l'aggiornamento, quindi potremmo metterlo in secondo piano, ma speriamo che il nostro lavoro di gambe aiuti gli altri.