Eseguire il join su Active Directory da Ubuntu Server 14.04
Avviso: Sto notando che nonostante l’integrazione ed il login con i permessi del dominio funzionino quello che non va tanto sono le condivisioni Samba, nel senso che funzionano solo se prima è stato effettuato almeno un login locale, gli utenti con i quali non è stato effettuato il login locale non riescono ad accedere alle condivisioni Samba.
Nota: Riprendo l’articolo già scritto Eseguire il join su Active Directory da Ubuntu Server e lo adatto alla prova fatta con Ubuntu Server 14.04, ad esempio per creare un server NAS, in quanto il pacchetto PowerBroker Identity Services Open ( PBIS ) pare avere seri problemi con l’integrazione con Samba 4.
Per questa operazione userò l’autenticazione Kerberos e i pacchetti realmd e sssd presenti nei repository ufficiali.
Nella prova ho usato la versione Ubuntu Server LTS 14.04.3.
Nota: onde evitare eventuali problemi di utenza o di profilo si consiglia di avere un utente locale diverso dall’utente di dominio.
Si installano i pacchetti necessari:
1 |
sudo apt-get install krb5-user realmd sssd sssd-tools adcli samba-common-bin |
Verrà richiesto molto probabilmente il dominio da usare in Kerberos, basta metterlo maiuscolo ( es. DOMAIN.LOC ), nell’eventualità non venisse richiesto serve andare poi a editare a mano il file /etc/krb5.conf.
Per testare se l’autenticazione funziona, proviamo ad aprire un tiket con l’utente amministratore di dominio:
1 |
sudo kinit administrator@DOMAIN.LOC |
Per verificare che il ticket sia stato rilasciato basta eseguire:
1 |
sudo klist |
Ora si passa a configurare realmd, si deve editare il suo file di configurazione in /etc/realmd.conf, nel mio caso però il file non esisteva e ho dovuto crearlo:
1 2 3 4 5 6 7 8 9 10 11 |
[service] automatic-install = no [users] default-home = /home/%D/%U default-shell = /bin/bash [domain.loc] computer-ou = DC=domain,DC=loc automatic-id-mapping = yes fully-qualified-names = no |
Si controlla se il dominio viene rilevato:
1 |
sudo realm discover domain.loc |
Se è tutto corretto si può procedere all’associazione:
1 |
sudo realm join domain.loc |
Se tutto va come dovrebbe si può poi ad esempio ottenere la lista degli amministratori di dominio:
1 |
sudo getent group 'Domain Admins' |
Ora è possibile eseguire il login alla macchina utilizzando gli utenti di dominio, volendo è possibile anche limitare l’accesso e decidere chi solo può accedere:
1 2 3 |
sudo realm deny --all sudo realm permit administrator sudo realm permit -g 'Domain Admins' |
Per far creare la cartella home al primo accesso occorre modificare il file /etc/pam.d/common-session aggiungendo la riga:
1 |
session required pam_mkhomedir.so skel=/etc/skel umask=0022 |
Per configurare Samba si edita il file smb.conf, e si impostano poi i seguenti parametri:
1 2 3 4 5 6 7 8 9 10 11 |
[global] workgroup = DOMAIN [share] path = /path/to/share read list = @"Domain Users@DOMAIN.LOC" write list = user@DOMAIN.LOC,@"group@DOMAIN.LOC" valid users = user@DOMAIN.LOC,@"group@DOMAIN.LOC",@"Domain Users@DOMAIN.LOC" writeable = yes public = yes browsable = yes |
Dopo volendo è possibile anche dare ad un utente o ad un gruppo di dominio i diritti di sudo, si esegue il comando visudo e si aggiunge a fine file (qui i nomi utente e gruppi vanno senza @DOMAIN.LOC):
1 2 |
user ALL=(ALL:ALL) ALL %group ALL=(ALL:ALL) ALL |
Al termine delle operazione è consigliato un riavvio della macchina, dopodichè è possibile eseguire il login come utente di dominio.
Per maggiori informazioni rimando alla documentazione ufficiale e all’articolo da cui ho preso spunto: