USARE CONTEMPORANEAMENTE SAMBA E SAMBA-TNG

Dopo avere esaminato il mese scorso l'utilizzo di Samba-TNG per configurare un PDC in Linux e definire relazioni di fiducia con un server Windows NT, in questo articolo mi occuperò dell'uso contemporaneo di Samba e Samba-TNG sulla stessa macchina.

Prima di iniziare ad illustrare i passi da compiere è senz'altro opportuno soffermarsi sui motivi che possono giustificare questa scelta.

Come accennato nell'articolo precedente, Samba-TNG (The Next Generation) è un filone di sviluppo di Samba, separato da quello ufficiale e creato nell'ottobre del 2000, che privilegia fortemente le funzionalità a livello di controller di dominio ma che non è ottimizzato come file-server. Per tale compito è molto più efficiente il Samba "ufficiale" che nel proseguo dell'articolo indicherò con Samba-HEAD.

Ecco allora che, in quelle situazioni in cui è necessario avere a disposizione sia l'efficienza nella condivisione dei file sia le funzionalità avanzate a livello di PDC, può essere opportuno installare e utilizzare entrambe le versioni del server Samba. Questo almeno fino a quando non uscirà la versione 3 del Samba "ufficiale" che dovrebbe offrire, accanto alla consueta efficienza nella gestione dei file condivisi, anche funzionalità avanzate per operare come PDC e come server di dominio in una Active Directory.

In figura1 è visibile uno schema che rappresenta quello che è possibile realizzare: Samba-HEAD mette a disposizione le risorse condivise ma il controllo per l'accesso ad esse è a carico di Samba-TNG che svolge inoltre le funzioni di PDC nel dominio.





Per rimanere aggiornati sullo sviluppo e sulle novità di Samba-TNG e Samba-HEAD si possono ovviamente visitare i relativi siti: www.samba.org e www.samba-tng.org.

Installazione

Il caso concreto di utilizzo contemporaneo dei due prodotti è descritto su una macchina Linux RedHat 7.3 equipaggiata con scheda di rete avente indirizzo 192.168.254.1.

Non mi dilungherò sull'installazione di Samba-HEAD (fornito con la distribuzione) in quanto su questo argomento si può trovare documentazione di ogni tipo; ad esempio vari articoli sui numeri precedenti di questa rivista o le "Dispense su Samba" scitte dal sottoscritto, reperibili all'indirizzo www.linuxdidattica.org.


Per quanto riguarda invece Samba-TNG, occorre procurarsi il software dal sito:


www.samba-tng.org


I dettagli circa la sua installazione sono stati illustrati nell'articolo del mese scorso e quindi non li ripeterò in questa sede. Mi limiterò a richiamare i punti essenziali e in particolare i nomi delle directory e dei file utili per la configurazione e l'attivazione del pacchetto.


Supponiamo di avere estratto i sorgenti nella directory /usr/src/samba-tng-alpha-2.6.1 (da qui in poi indicata con $SAMBA-TNG_INST).

I componenti di Samba-TNG siano invece installati nella directory /usr/local/samba, da qui in avanti indicata con $SAMBA_TNG).


Prima di procedere con la configurazione dei due software è necessario creare un indirizzo IP aggiuntivo (o alias IP) per la scheda di rete in quanto ognuno dei due server Samba dovrà restare in "ascolto" su un indirizzo IP diverso.

Il comando necessario è:


ifconfig eth0:0 192.168.254.101 broadcast 192.168.254.255 netmask 255.255.255.0


In questo modo abbiamo a disposizione due indirizzi IP per la stessa interfaccia e possiamo decidere di utilizzarli nel seguente modo:


Samba-HEAD in ascolto su 192.168.254.1 / 255.255.255.0

Samba-TNG in ascolto su 192.168.254.101 / 255.255.255.0.

Configurazione

Per configurare i due server si interviene sui relativi file smb.conf.

Per quanto riguarda Samba-HEAD troviamo il file posizionato nella directory "canonica":


/etc/samba/smb.conf


Le impostazioni pù significative da operare sono le seguenti:


[global]

workgroup = INF-TNG

netbios name = SAMBA

interfaces = 192.168.254.1

bind interfaces only = true

encrypt password = yes

security = domain

password server = SAMBA-TNG

domain logons = no

domain master = no

preferred master = no

local master = no

os level = 20


[comodo]

path = /tmp

public = yes

writable = yes


Un breve commento sui valori scelti:

con workgroup si imposta il nome del dominio di cui fa parte Samba-HEAD;

con netbios name si imposta il nome del server Samba-HEAD;

le due successive direttive interfaces e bind interfaces only fanno in modo che questo server sia in ascolto all'indirizzo IP specificato;

encrypt password = yes permette l'utilizzo della password criptate;

con le direttive security e password server si fa in modo che il controllo di autenticazione degli utenti sia svolto dal server del dominio (che in questo contesto è il server Samba-TNG);

le altre direttive servono a fare in modo che questo server samba non interferisca nelle operazioni di browsing delle risorse di rete;

la sezione [comodo] definisce una condivisione da utlizzare appunto per le prove.


Per quanto riguarda la configurazione di Samba-TNG 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 secondo le proprie esigenze.


Le impostazioni pù significative da operare sono le seguenti:


[global]

workgroup = INF-TNG

netbios name = SAMBA-TNG

interfaces = 192.168.254.101 127.0.0.1

bind interfaces only = true

encrypt password = yes

security = user

domain logons = yes


Anche qui un breve commento sui valori scelti:

con workgroup si imposta ovviamente lo stesso nome di dominio scelto per l'altro server;

il netbios name stavolta è SAMBA-TNG;

le direttive interfaces e bind interfaces only fanno in modo che questo server sia in ascolto all'indirizzo IP aggiuntivo e anche all'indirizzo del localhost (questo per evitare problemi nell'accreditamento degli utenti);

con domain logons = yes si fa in modo che questo server funzioni da PDC per il dominio INF-TNG;


In questa configurazione sono volutamente tralasciate le impostazioni reltive agli script di logon e ai profili utenti; a tale proposito si può ricorrere alle fonti di documentazione citate in precedenza. Aggiungo solo che può essere una buona idea fare in modo che le directory contenenti i profili degli utenti siano directory condivise attraverso il server Samba-HEAD in modo da migliorare le prestazioni del sistema.

Attivazione dei due server

Per attivare il server Samba-HEAD non ci sono grossi problemi, basta eseguire:

/etc/rc.d/init.d smb restart

Qualche problemino invece sorge con l'attivazione di Samba-TNG; prima di tutto 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


Si può poi utilizzare uno script già pronto fornito nel pacchetto e denominato:


$SAMBA_INST/source/script/samba-init.d


Al suo interno occorre valorizzare opportunamente la riga prefix ponendola uguale a $SAMBA_TNG ma sono necessarie anche altre modifiche.

Infatti, come riferito nell'articolo del mese scorso, i demoni di Samba-TNG sono undici e tra essi ce ne sono due il cui nome coincide con quello dei demoni di Samba-HEAD e cioè smbd e nmbd. E' quindi necessario intervenire nello script nella riga daemons= cambiando i due nomi in smbd-tng e nmbd-tng.


A questo punto si può eseguire:


$SAMBA_INST/source/script/samba-init.d restart


e attivare così anche il server Samba-TNG. Per verificare che tutto sia andato a buon fine si può usare uno degli strumenti di controllo della situazione dei processi attivi (ad esempio pstree) sincerandosi della presenza tra essi di smbd, smbd-tng, nmbd, nmbd-tng.

Verifica del funzionamento

Occorre prima di tutto includere il server Samba-HEAD (come se fosse una macchina Windows NT Workstation) nel dominio gestito da Samba-TNG:


groupadd computer

useradd -g computer -s /bin/false SAMBA$


Poi entrare nell'editor del database utenti SAM con il comando:


$SAMBA_TNG/bin/samedit -S . -U root -N


ed eseguire


createuser SAMBA$

exit


Qualche dettaglio in più su questi comandi può essere trovato nell'articolo del mese scorso.


A questo punto si deve unire il server Samba-HEAD al dominio gestito da Samba-TNG con:


smbpasswd -j INF-TNG


(si presti attenzione ad eseguire la giusta versione del comando smbpasswd; in questo caso si esegue quella del Samba-HEAD che è in una delle directory del PATH del sistema; se avessi dovuto eseguire la "versione TNG" dello stesso comando avrei dovuto scivere $SAMBA_TNG/bin/passwd).


Quindi occorre definire un utente in Samba-TNG dopo averlo definito in precedenza come utente Linux:


$SAMBA_TNG/bin/samedit -S . -U root -N

createuser fulvio -p password_di_fulvio

exit


Infine si può testare il tutto nel seguente modo:


smbclient //SAMBA/comodo -U fulvio%password_di_fulvio


Se appare il prompt dell'interfaccia di smbclient "smb: \>" significa che tutto è andato a buon fine, cioè che l'utente fulvio ha avuto accesso alla condivisione comodo sul server Samba-HEAD e che questo accesso è stato concesso dopo avere accreditato l'utente sul server Samba-TNG.

Ovviamente un test equivalente, ma più "carino" può essere fatto da un client Windows, dopo essersi accredidati con esso sul dominio INF-TNG come utente fulvio, provando ad accedere da risorse di rete alla cartella comodo della macchina SAMBA.


Lascio al lettore, non le "facili dimostrazioni", come si legge spesso sui testi universitari, ma altri esempi più completi e concreti (qui lo spazio è tiranno) circa l'utilizzo in contemporanea dei due "cugini" Samba; si potrebbe ad esempio ampliare il discorso alla presenza di client e server in ambiente Windows-NT, alla definizione dei profili utenti e degli script di login e ad altro ancora.










Conclusioni

Si conclude con questa terza puntata il breve ciclo dedicato ad usi "avanzati" degli strumenti Samba iniziato esaminando la possibile integrazione di una macchina Linux in un dominio Windows NT o in una active directory Windows 2000 grazie all'utilizzo di Winbind e proseguito con la descrizione dell'uso di Samba-TNG per stabilire relazioni di fiducia con un Server NT.

Credo che questi esempi, anche se certamente incompleti e meritevoli di maggiori approfondimenti, possano essere serviti almeno a fare comprendere le grandissime potenzialità di questo tipo di strumenti in caso si debba lavorare in ambienti di rete eterogenei. Sicuramente vale la pena di aspettare con fiducia il futuro rilascio di Samba 3, che stando alle promesse, continuerà nel solco della grande efficienza e qualità che hanno fatto di questo strumento uno dei più usati e apprezzati nel settore del sotware libero.



Fulvio Ferroni

docente di Informatica

all'ITIS "Planck" di Treviso

e-mail: fuferro@tin.it


Riferimenti

www.linuxdidattica.org

www.samba.org

www.samba-tng.org

www.deschner.de/gd/dual_samba.html