In precedenza, nel capitolo sull'impostazione di un servente Samba, è stato illustrato come integrare quest'ultimo in un dominio MS-Windows NT o in una active directory di MS-Windows.
In particolare si è visto come questo sia possibile impostando il livello di sicurezza al valore domain ed eseguendo il comando net o smbpasswd con opportune opzioni.
Grazie a Winbind, che è uno strumento di Samba presente dalla versione 2.2.2, diventa addirittura possibile l'autenticazione degli utenti GNU/Linux (attenzione: utenti GNU/Linux, non utenti Samba) presso un controller di active directory MS-Windows.
Ciò può essere molto utile in quei contesti in cui si vogliano inserire elaboratori con GNU/Linux in reti già consolidate su piattaforma MS-Windows, utilizzando le informazioni su utenti e gruppi preesistenti senza essere costretti a ridefinirle anche per le macchine GNU/Linux.
Winbind è costituito da un piccolo gruppo di componenti disponibili all'interno del pacchetto samba-common; in dettaglio ne fanno parte:
una libreria per NSS (Name Service Switch);
una libreria per i moduli PAM (Pluggable Authentication Modules);
Il servizio NSS è presente in tutte le moderne librerie C e permette di ottenere i dati relativi a utenti, gruppi e nodi, da varie fonti (ad esempio NIS, DNS, ecc.); Winbind diventa un'ulteriore fonte di informazioni per NSS relativamente a utenti e gruppi di una active directory MS-Windows.
Il PAM è un sistema generalizzato per la gestione dei metodi di autenticazione per molteplici servizi (quelli per cui esistono le librerie PAM relative); grazie all'apposita libreria PAM, Winbind fornisce anche il servizio di autenticazione.
Per poter interagire con una active directory occorre poi che sulla macchina GNU/Linux siano installati i pacchetti relativi alla parte cliente e relativa configurazione di Kerberos5 e cioè:
krb5-user-x.y.z.deb
krb5-conf-x.y.z.deb
In queste dispense non vengono forniti dettagli sul funzionamento e sulla configurazione di Kerberos ma solo le informazioni indispensabili affinché la macchina GNU/Linux possa ottenere il ticket di autenticazione dal servente Kerberos, cioè dal controller di active directory.
Si suppone che il dominio di active directory al quale appartengono gli utenti sia planck.local e che il relativo servente MS-Windows si chiami win2003.
Iniziamo con la configurazione di /etckrb5.conf
:
|
Occorre poi intervenire nel file /etc/smb.conf
inserendo le direttive seguenti:
|
Con winbind separator si imposta il carattere usato per ottenere il nome utente GNU/Linux dall'unione di nome di dominio e nome utente MS-Windows; il valore predefinito corrisponde a \
, ma è sconsigliabile, in quanto ha un significato speciale nella shell di GNU/Linux; la scelta del carattere + non dovrebbe invece comportare problemi.
Con template shell si imposta la shell degli utenti.
Con template homedir si definisce la directory personale degli utenti; nell'esempio si usano le variabili %D e %U in modo che ogni utente abbia come directory /home/nome_dominio_win/nome_utente_win
.
winbind uid e winbind gid permettono di impostare gli intervalli di numeri di identificazione per utenti e gruppi che Winbind utilizza per riabbinare gli utenti e i gruppi MS-Windows a utenti e gruppi GNU/Linux.
winbind enum users e winbind enum groups permettono di attivare l'enumerazione di gruppi e utenti.
Le modifiche ai file di configurazione dei moduli PAM devono essere effettuate con molta attenzione in quanto errori in questa fase possono anche causare l'impossibilità di accedere al sistema. Può quindi essere opportuno fare una copia dei file interessati alle modifiche in modo da poter ripristinare la situazione precedente in ogni momento e anche tenere aperta una sessione di riserva come utente root dalla quale intervenire in caso di necessità.
Maggiori informazioni sul funzionamento dei moduli PAM non possono essere fornite in questa sede.
In testa al file /etc/pam.d/common-account
deve essere aggiunta la seguente riga:
|
In testa al file /etc/pam.d/common-auth
deve essere aggiunta la seguente riga:
|
Inoltre cambiare la riga:
|
in:
|
In testa al file /etc/pam.d/common-password
deve essere aggiunta la seguente riga:
|
In testa al file /etc/pam.d/common-session
deve essere aggiunta la seguente riga:
|
Questa è molto importante in quanto permette la creazione automatica della directory personale dell'utente al primo accesso alla macchina GNU/Linux secondo quanto inserito nel file smb.conf
:
template homedir = /home/%D/%U
Nel file /etc/nsswitch.conf
, contenente la configurazione del servizio NSS, è necessario aggiungere Winbind tra le fonti dei dati relativi a utenti e gruppi. Ad esempio:
|
L'ordine con cui vengono elencate le fonti è significativo e quindi è opportuno lasciare la priorità a files oppure a compat in modo che per primi siano interrogati i file di sistema (/etc/passwd
e /etc/group
).
Per prima cosa occorre ottenere il ticket dal servente MS-Windows con il comando:
#
kinit Administrator@PLANCK.LOCAL
cui segue la richiesta della parola d'ordine di Administrator (che si suppone essere un utente amministrativo del domain controller).
Affinché l'autenticazione Kerberos funzioni correttamente occorre che tutte le macchine coinvolte siano sincronizzate relativamente all'orario di sistema. |
Si può verificare il buon esito del comando precedente con:
#
klist
che fornisce la lista dei ticket presenti nella relativa cache.
A questo punto si deve inserire la macchina GNU/Linux nella active directory MS-Windows:
sul servente MS-Windows 200x con la MMC (Microsoft Management Console) attraverso lo strumento «Utenti e computer di Active Directory», aggiungere il servente Samba alla active directory.
eseguire quindi, sulla macchina GNU/Linux, il comando seguente:
#
net ads join -UAdministrator%parola_d'ordine -Swin2003.planck.local
Affinché il comando abbia successo occorre anche che il nome del controller della active directory sia risolvibile; in caso non si abbia a disposizione un servente DNS basta aggiungere al file /etc/hosts
una riga come la seguente (dove si suppone che 192.168.56.101 sia il numero IP della macchina controller):
|
Infine si devono avviare i servizi samba e winbind:
#
/etc/rc.d/init.d/samba start
#
/etc/rc.d/init.d/winbind start
Per verificare il buon funzionamento di Winbind eseguire i comandi:
#
wbinfo -u
#
wbinfo -g
con i quali si elencano rispettivamente utenti e gruppi della active directory MS-Windows (vedere la figura 7.11).
|
Si possono usare anche i comandi:
#
getent passwd
#
getent group
per ottenere gli elenchi di tutti gli utenti e gruppi utilizzabili, sia quelli della active directory che quelli propri di GNU/Linux.
Infine si può procedere all'accreditamento sulla macchina GNU/Linux di un utente della active directory MS-Windows (vedere figure 7.12 e 7.13 notando in 7.12 la creazione automatica della directory dell'utente al primo accesso).
Può essere interessante fare in modo che le directory personali dei vari utenti che si accreditano sui clienti GNU/Linux siano fisicamente residenti sulla macchina MS-Windows e vengano esportate al momento dell'avvio delle macchine GNU/Linux.
Per ottenere ciò basta inserire nel file /etc/fstab
di ogni macchina GNU/Linux la riga seguente:
|
Si suppone che sui clienti le directory personali vengano create in /home/PLANCK/
, come mostrato in tutti gli esempi precedenti, e che esse risiedano sul servente come risorsa condivisa home (cui si devono ovviamente assegnare gli opportuni permessi in ambiente MS-Windows).
Grazie alle opzioni impostate in sede di montaggio (gid, dir_mode, file_mode) le directory personali risultano pienamente gestibili dagli utenti membri del gruppo Domain Users e quindi dai rispettivi proprietari (vedere figura. 7.15).
Si presti però attenzione al fatto che qualsiasi utente della active directory, una volta accreditatosi in GNU/Linux, ha il controllo su tutte le directory personali disponibili in /home/PLANCK
, cosa che rende questa soluzione praticabile solo a livello didattico e comunque in contesti in cui non siano importanti la sicurezza e la privacy dei dati.