Samba e Active Directory (2 di 3): interrogare il dominio

samba

Dopo aver introdotto Active Directory ed aver configurato SAMBA per l’integrazione con un dominio vengono affrontati in questa seconda puntata i metodi per l’interrogazione dei domini: come ricavare le informazioni sugli utenti ed i gruppi, come accedere ad un computer di dominio ed eseguirvi un comando.
Il tutto attraverso gli strumenti offerti da SAMBA, dalla linea di comando.

Interrogazioni

Tra gli strumenti che samba mette a disposizione dalla linea di comando per l’interrogazione delle varie componenti del dominio ne verranno analizzati tre: net, già utilizzato nel precedente articolo per aggiungere la macchina al dominio, smbclient, un’interfaccia simile a quella di FTP ma utilizzabile per accedere a condivisioni Microsoft Windows e wbinfo, programma che interroga il demone winbind, la componente si SAMBA che si interfaccia con il servizio Active Directory.

net

l’opzione user del comando net associata alla specifica di -l consente di ricavare l’elenco utenti del dominio specificato nel file di configurazione di SAMBA:

$ net -U Administrator ads user -l
Enter Administrator's password:
 
User name             Comment
-----------------------------
user1                 Utente di test #1
Guest                 Built-in account for guest access to the computer/domain
...
...

Allo stesso modo specificando l’opzione group è possibile ottenere l’elenco gruppi:

$ net -U Administrator ads group -l
Enter Administrator's password:
 
Group name            Comment
-----------------------------
Exchange Servers      This group contains all the Exchange servers. This group should not be deleted.
Exchange Organization Users in this group will have permission to read and modify all Exchange configuration. This group should not be deleted.
Exchange Recipient Ad Users in this group can manage Exchange user attributes in the Active Directory and perform select mailbox operations. This group should not be deleted.
...
...

net permette anche di creare, cancellare e rinominare utenti e gruppi, ad esempio per creare il gruppo test_group il comando sarà:

$ net -U Administrator ads group ADD test_group
Administrator's password: 
Group test_group added

Parallelamente un utente potrà esser creato come segue:

$ net -U Administrator ads user ADD test_user
Administrator's password: 
User test_user added

Purtroppo net non consente ancora di operare sull’appartenenza dei gruppi, che è prevista nelle versioni future di SAMBA. Tutti le opzioni disponibili possono essere visionate nella man page del comando accessibile digitando man net.

smbclient con il ticket KERBEROS

Il tool smbclient offre un’interfaccia testuale con comandi simili a quelli ftp attraverso i quali è possibile interrogare ed agire su cartelle relative a condivisioni di tipo SMB/CIFS (cioè Microsoft Windows). Se già da questo punto di vista lo strumento appare subito utilissimo esiste un ulteriore vantaggio che lo rende indispensabile per le architetture Linux integrate con Active Directory: infatti smbclient può utilizzare l’autenticazione KERBEROS descritta nel precedente articolo per connettersi ai servizi remoti.
Prima di presentare gli esempi di utilizzo è quindi necessario fare acquisire al sistema il ticket KERBEROS attraverso il comando kinit:

$ kinit -V Administrator@DOMINIO.IT
Password for Administrator@DOMINIO.IT:
Authenticated to Kerberos v5

Il sistema è quindi in possesso della verifica necessaria per presentarsi ai servizi remoti. Utilizzando l’opzione -k di smbclient è possibile ad esempio sfogliare un computer di dominio del quale si conosce l’indirizzo IP o il nome. Nel nostro caso il sistema si chiama Test-win03 e l’invocazione di smbclient con i parametri utilizzati elencherà tutte le condivisioni disponibili sul server pubblico Microsoft:

$ smbclient -k -L Test-win03
OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]
 
       Sharename           Type      Comment
       ---------           ----       -------
       print$              Disk       Driver della stampante
       C$                  Disk       Condivisione predefinita
       IPC$                IPC        IPC remoto
       ADMIN$              Disk      Amministrazione remota
       HPLaserJ            Printer   HP LaserJet 4100 Series PS
       musica              Disk      
OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]
 
	Server               Comment
	---------            -------
 
	Workgroup            Master
	---------            -------

L’output del comando mostra quali condivisioni sono disponibili sul server remoto, su queste è quindi possibile eseguire dei comandi. Ad esempio per effettuare il listato del contenuto della cartella musica è possibile invocare smbclient in questa forma:

$ smbclient -k //Test-win03/musica -c "ls"
OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]
  .                                   D        0  Mon Feb 16 17:13:06 2009
  ..                                  D        0  Mon Feb 16 17:13:06 2009
  Cartoni Animati                     D        0  Mon May 19 13:39:51 2008
  Collaborazioni                      D        0  Mon Feb 16 11:17:12 2009
  Cover                               D        0  Thu Dec 18 16:04:02 2008
...
...

smbclient dispone inoltre di una shell, in tutto e per tutto simile ad una shell di tipo ftp. Per accedervi è sufficiente invocare smbclient senza altri paramente che il già citato -k ed il nome della macchina seguito dalla cartella:

$ smbclient //Test-win03/musica -k
OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: >

I comandi disponibili nell’interfaccia si ottengono digitando help:

smb: >help
?              altname        archive        blocksize      cancel         
case_sensitive cd             chmod          chown          del            
dir            du             exit           get            getfacl        
hardlink       help           history        lcd            link           
lowercase      ls             mask           md             mget           
mkdir          more           mput           newer          open           
print          prompt         put            pwd            q              
queue          quit           rd             recurse        reget          
rename         reput          rm             rmdir          showacls       
setmode        stat           symlink        tar            tarmode        
translate      volume         vuid           logon          listconnect    
showconnect    !

Altre informazioni utili su smbclient sono ottenibili attraverso la man page (man smbclient) del programma.

wbinfo

L’ultimo comando illustrato è wbinfo che come anticipato permette di interrogare il demone winbind responsabile delle comunicazione tra SAMBA ed Active Directory e l’integrazione dei due sistemi. In particolare il demone si occupa di effettuare il mapping delle utenze, di associare cioè l’identificativo univoco presente sul dominio ad un identificativo univoco LOCALE alla macchina SAMBA.
Per capire quanto illustrato, si osservi il seguente comando:

$ for i in `wbinfo -u --domain=DOMINIO.IT`; do wbinfo -i "$i"; done
DOMINIO.ITuser1:*:10000:10004:User 1:/home/DOMINIO.IT/user1:/bin/bash
DOMINIO.ITuser2:*:10001:10004:User 2:/home/DOMINIO.IT/user2:/bin/bash
DOMINIO.ITuser3:*:10002:10004:User 3:/home/DOMINIO.IT/user3:/bin/bash
DOMINIO.ITuser4:*:10003:10004:User 4:/home/DOMINIO.IT/user4:/bin/bash
...
...

L’elenco ricavato dal comando è del tutto simile a quanto contenuto nel file /etc/passwd di sistema, ad ogni utenza è infatti associato un identificativo univoco, un gruppo, una home dir ed una shell di login.
Anche in questo caso tutte le opzioni disponibili per il comando wbinfo sono disponibili nella man page (man wbinfo).

Conclusioni

L’esito dell’ultimo comando illustrato introduce quello che sarà l’argomento della prossima ed ultima puntata di questa serie: l’integrazione di Active Directory con il login di sistema attraverso la configurazione di PAM.

Articoli della serie

Samba e Active Directory (1 di 3): diventare parte di un Dominio
Samba e Active Directory (2 di 3): interrogare il dominio
Samba e Active Directory (3 di 3): configurare pam per l’autenticazione locale

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

Tags: , ,