USARE SAMBA-TNG, PERCHE' LA "FIDUCIA" E' UNA COSA SERIA...
Continua con questo articolo la breve serie dedicata ad alcuni aspetti "avanzati" dell'uso di Samba.
Dopo avere esaminato il mese scorso la possibilità di integrare completamente una macchina Linux in un dominio Windows NT o in una active directory Windows 2000 grazie all'utilizzo congiunto di Samba e del demone Winbind, mi occuperò stavolta di Samba-TNG, della sua installazione come PDC (Primary Domain Controller) e della creazione di relazioni di fiducia (trust relationship) con un Server Windows NT.
Samba TNG (The Next Generation) è un filone di sviluppo di Samba, separato da quello ufficiale e creato nell'ottobre del 2000 allo scopo di fornire il maggior numero possibile di funzionalità a livello di controller di dominio.
In particolare la possibilità di creare delle relazioni di fiducia con un server Windows NT non è prevista con la versione ufficiale di Samba mentre rientra tra le caratteristiche peculiari di Samba TNG.
Installazione
Prima di tutto occorre naturalmente scaricare il pacchetto Samba-TNG dal sito:
www.samba-tng.org
La versione più recente disponibile (ad ottobre 2002) è la alpha-2.6.1 e può essere scaricata in due formati diversi il "tar-gz" e il "bzip2":
samba-tng-alpha-2.6.1-tar.gz
samba-tng-alpha-2.6.1-tar.bz2
Ovviamente il file scaricato deve essere copiato in una directory opportuna, ad esempio in /usr/src
e decompresso con il comando:
tar xvfz samba-tng-alpha-2.6.1-tar.gz
oppure
bunzip2 samba-tng-alpha-2.6.1-tar.bz2
Tutti i file e le directory del pacchetto vengono estratte nella nuova directory /usr/src/samba-tng-alpha-2.6.1 (da qui in poi indicata con $SAMBA_INST).
A questo punto ci si posiziona in $SAMBA_INST/source e si procede con i classici comandi:
./configure --prefix=/dir-installazione
make all
make install
Se tutto va bene si dovrebbero avere i componenti di Samba-TNG installati nella directory indicata con l'opzione --prefix= (per defualt /usr/local/samba, da qui in avanti indicata con $SAMBA_TNG). Al suo interno vengono create, dal processo di installazione, varie ulteriori directory tra cui le più importanti sono:
bin contenente alcuni programmi di servizio come testparm, smbclient, rpcclient e altri (per una lista più completa e relative brevi descrizioni si può consultare il documento $SAMBA_INST/docs/htmldocs/samba.7.html);
sbin contenente i demoni del pacchetto;
lib con le librerie e il file di configurazione;
man con i file di manuale;
private destinata a ospitare i file con i dati di utenti e gruppi;
var contenente i file di log.
Configurazione
Come per il "fratello" più noto e usato, anche per Samba-TNG è necessario impostare le opzioni di configurazione nel file smb.conf. A questo scopo si può utilizzare un file di configurazione standard fornito con il pacchetto e denominato:
$SAMBA_INST/examples/smb.conf.default.
Si può copiarlo in $SAMBA_TNG/lib/smb.conf e trasformarlo opportunamente.
La struttura e la sintassi del file sono le stesse note a chiunque abbia configurato almeno una volta la versione "ufficiale" di Samba.
Ecco alcune delle più importanti direttive da variare o inserire nel file nella sezione [global]:
workgroup = INF-TNG
server string = SAMBA-SERVER-TNG
encrypt password = yes
wins server = WINS-SERVER
# oppure
# wins support = yes
smb passwd file = $SAMBA_TNG/private/smbpasswd
domain user map = $SAMBA_TNG/private/domainuser.map
domain group map = $SAMBA_TNG/private/domaingroup.map
local group map = $SAMBA_TNG/private/localgroup.map
Un breve commento sui valori scelti:
con workgroup si imposta il nome del dominio di cui Samba è PDC;
server string è meno importante in quanto serve solo a dare la descrizione del server Samba;
encrypt password = yes è necessario quando si lavora in rete con macchine Windows98/NT o più recenti;
wins server permette di indicare il nome del server wins presente in rete;
in alternativa, con wins support = yes si può configuarare Samba come server wins della rete;
con smb password filesi indica il file contenente i dati degli utenti Samba;
Le ultime tre direttive permettono di impostare altrettanti file che associano rispettivamente nomi di utenti, nomi di gruppi di dominio e nomi di gruppi locali di Windows NT a nomi di utenti e nomi di gruppi Linux.
Le altre impostazioni del file smb.conf, comprese eventuali condivisioni, possono essere fatte in base alle proprie esigenze tenendo presente che il server Samba deve agire da PDC per il dominio INF-TNG; a questo proposito rimando alla consultazione della documentazione in linea di Samba, a precedenti articoli della rivista o al lavoro "Dispense su Samba" del sottoscritto, reperibile all'indirizzo www.linuxdidattica.org.
Attivazione di Samba-TNG
Prima di attivare i demoni di Samba-TNG ci si deve posizionare in $SAMBA_TNG ed eseguire:
mkdir private
chmod 700 private
cd private
touch smbpasswd domaingroup.map domainuser.map localgroup.map
chmod 700 smbpasswd
I demoni di Samba-TNG da attivare sono ben 11 contro i due di Samba. Ecco una loro breve descrizione (per qualche dettaglio in più si possono consultare le pagine del manuale in $SAMBA_TNG/man):
smbd, fornisce i servizi di condivisione di file e stampanti per i client Windows o Linux;
nmbd fornisce il supporto per la risoluzione dei nomi NetBIOS e per il browsing delle risorse di rete;
browserd, è progettato per occuparsi del servizio di browse in maniera simile al servizio "Browser" di Windows NT; attualmente però le liste di browsing sono ancora gestite dal demone nmbd;
lsarpcd, fornisce supporto al servizio "Local Security Authority" usato per gestire le informazioni di account;
netlogond, fornisce l'autenticazione stile Windows NT per gli utenti NT;
samrd, dà la possibilità di usare un certo numero di funzioni per la gestione del database SAM (Security Access Manager);
spoolssd, fornisce un servizio di stampa in stile Windows NT;
srvsvcd, fornisce i servizi di un server Windows NT come quelli che si trovano nel menu "Server Manager" di NT;
svcctld, fornisce la possibilità di amministrazione remota del server Samba;
winregd, permette, ad utenti con sufficienti privilegi, di usare i comandi REGEDT32.EXE su NT, REGEDIT.EXE su Windows 9x o regedit su Linux-Samba, per variare le chiavi nel registro di sistema anche da remoto;
wkssvcd, fornisce un servizio simile a quello "Workstation" di Windows NT che si occupa di instradare sulla rete richieste di vario genere come ad esempio accesso a dischi condivisi.
Per effettuare l'attivazione senza problemi si può utilizzare uno script già pronto fornito nel pacchetto e denominato:
$SAMBA_INST/source/script/samba-init.d
Al suo interno occorre solo valorizzare opportunamente la riga prefix ponendola uguale a $SAMBA_TNG.
Ovviamente occorre sincerarsi di non avere in precedenza attivato i demoni del Samba "ufficiale" (l'uso contemporaneo di Samba e Samba-TNG sarà argomento dell'articolo del prossimo mese).
Gestione del dominio e creazione della relazione di fiducia
A questo punto occorre definire gli utenti del dominio gestito da Samba-TNG usando il comando:
$SAMBA_TNG/bin/samedit -S . -U root -N
con il quale entriamo nell'editor del database SAM contenente tutte le informazioni sugli utenti. Il significato delle opzioni è: connessione al server localhost (-S .), come utente root, senza password.
Al prompt dell'editor è possibile digitare help per avere una lista dei comandi disponibili; quello che serve è comunque il comando:
createuser cimelio INF-TNG -p password_di_cimelio
che crea l'utente di nome cimelio (che deve essere un utente già definito sul sistema Linux) con relativa password.
Questo permette all'utente cimelio di collegarsi al dominio da una macchina Windows 9x.
Il passo successivo consiste nell'includere una macchina Windows NT workstation nel dominio gestito da Samba-TNG. Supponendo che il nome di tale macchina sia WORK-NT, i comandi da eseguire sono i seguenti:
groupadd computer
useradd -g computer -d $SAMBA_TNG/machines -s /bin/false WORK-NT$
e, in samedit:
createuser root -p passwd_di_root
la password qui indicata non deve essere necessariamente la stessa che root ha nel sistema Linux.
Altra operazione da svolgere è l'inserimento nel file $SAMBA_TNG/private/domaiuser.map della riga:
root=Administrator
Solo a questo punto è possibile unirsi al dominio INF-TNG dalla macchina WORK-NT fornendo l'account Administratore e la password indicata sopra per root.
Passiamo infine alla creazione della relazione di fiducia con un server NT: a questo scopo occorre definire, sia come utenti Linux, sia come utenti SAM, il nome del server NT (supponiamo sia SERVER-NT) e il nome del dominio (supponiamo sia INF-NT) entrambi completati dal simbolo $.
useradd -g computer -d $SAMBA_TNG/machines -s /bin/false INF-NT$
useradd -g computer -d $SAMBA_TNG/machines -s /bin/false SERVER-NT$
e, in samedit
createuser INF-NT$ -i -p password
createuser SERVER-NT$ -i -p password
Sul server NT occorre entrare in User Manager > policies > Trust Relationships e aggiungere il nome del dominio INF-TNG e la password scelta sopra (vedere figura 1); se tutto va a buon fine si riceve un messaggio di "relazione di fiducia stabilita con successo".
Figura 1
Per testare che la relazione di fiducia sia realmente attiva si può operare come segue:
- definire una condivisione di una risorsa su una macchina del dominio INF-NT rendendola accessibile a qualcuno degli utenti del dominio INF-TNG, ad esempio l'utente cimelio (vedere figura 2);
collegarsi ad una macchina del dominio INF-TNG come utente cimelio e tentare di accedere alla risorsa condivisa di cui sopra.
Figura
2
Conclusioni
Si conclude qui la descrizione dell'uso di Samba-TNG per stabilire relazioni di fiducia con un Server Windows NT; come già accennato anche il prossimo mese mi occuperò di questo prodotto esaminando la possibilità di usarlo in contemporanea al Samba "ufficiale".
Fulvio Ferroni