En ocasions necessitem afegir un equip GNU/Linux al nostre domini Active Directory. En el cas d’Ubuntu Desktop, des de la versió 22.04 tenim una opció en la instal·lació que podem marcar i ens pregunta les dades del domini per a afegir l’equip automàticament. Si no marquem eixa opció, o amb altres distribucions, podem fer-ho manualment de diverses formes. Una de les més senzilles és utilitzant sssd.
Els paquets que necessitarem són:
El dimoni de serveis de seguretat del sistema (System Security Services Daemon, SSSD) és un servei que permet accedir a mecanismes d’autenticació i directoris remotos com LDAP, Active Directory i regnes kerberos. Això permet als usuaris autentificar-se en un equip local utilitzant un compte del servidor.
A més, igual que fa Windows, SSSD manté una caché d’identitats en l’equip local la qual cosa permet a un usuari iniciar sessió encara que el servidor no estiga disponible si ja l’ha iniciat abans en aquest equip.
El fitxer de configuració és /etc/sssd/sssd.conf
.
L’instal·lador d’Ubuntu Desktop inclou una opció per a afegir l’equip que estem instal·lant al domini en el procés d’instal·lació del sistema operatiu:
Si marquem aquesta opció en la següent pantalla ens demana el nom del domini i un compte per a afegir l’equip al domini (normalment el de l’Administrador):
Per a instal·lar els paquets que necessite escrivim:
apt-get install realmd sssd-ad sssd-tools adcli
Ara podem provar que l’equip troba el domini amb:
sudo realm -v discover mydomain.lan
Ens ha de mostrar el nom del domini i la IP del DC.
Per últim afegim l’equip al domini amb
realm join -v -U Administrador mydomain.lan
L’opció -v
és per a obtindre més informació del procés.
Si tot ha funcionat ja tenim equip afegit al domini. Si falla per falta de permisos (Couldn’t authenticate to active directory SASL(-1)) és que no tenim instal·lat kerberos així que ho instal·lem ara.
Per a instal·lar kerberos fem:
sudo apt install krb5-user
Durant el procés d’instal·lació s’ens demana el nom del regne (ens pregunta pel realm que és com kerberos anomena al domini on s’autenticarem). Indicarem el nom del nostre domini en majúscules (per exemple MYDOMAIN.LAN). Si no ho fem així més avant (al executar el comando kinit
) obtindrem un error (KDC reply did not match expectations while getting initial credentials). Podem canviar el nom del domini en el fitxer /etc/krb5.conf
editant la línia default_realm.
Per últim editem el fitxer de configuració de kerberos (/etc/krb5.conf
) i afegim en la secció [libdefaults]
la línia:
rdns = false
Ara tornem a executar el comando per a afegir l’equip al domini realm join
i tot ha de funcionar correctament.
A continuació canviem el nom del nostre equip per a que incloga el domini
hostnamectl set-hostname mymachine.mydomain.lan
Ja tenim l’equip afegit al domini i el podem vore des de l’eina Usuaris i equips d’Active Directory. També podem obtindre informació de qualsevol usuari del domini des de la terminal de l’equip amb:
id Administrador@mydomain.lan
Podem iniciar sessió amb un usuari del domini amb
su Administrador@mydomain.lan
o
sudo login Administrador@mydomain.lan
Encara ens queden unes coses per configurar per a millorar la usabilitat del sistema. En el fitxer de configuració de sssd /etc/sssd/sssd.conf
trobem les línies:
cache_credentials = True
. Es guarden les credencials d’un usuari quan inicia sessió i la propera vegada és el mateix equip el que li dona accés sense haver de contactar amb un DC (Windows també ho fa)use_fully_qualified_names = True
. Per a iniciar sessió s’ha de posar el FQDN de l’usuari (usuari@domini) en compte de només l’usuari. Podem posar-ho a false només si treballam amb un únic domini i no té relacions de confiança amb altres.La primera vegada que un usuari del domini inicia la sessió en l’equip no es crea per defecte el seu home. Per a que es cree executem el comando:
sudo pam-auth-update --enable mkhomedir
Per defecte la pantalla d’inici d’Ubuntu només mostra els usuaris locals per a iniciar sessió. Però polsant en ‘No es troba en la llista’ podem escriure manualment en nom de l’usuari.