[successivo] [precedente] [inizio] [fine] [indice generale] [violazione licenza] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 241.   Samba-TNG

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 domain controller.

In particolare la possibilità di creare delle relazioni di fiducia con un servente MS-Windows NT non è prevista nella versione ufficiale di Samba mentre rientra tra le cartteristiche peculiari di Samba-TNG.

241.1   Installazione di Samba-TNG

Prima di tutto occorre scaricare il pacchetto Samba-TNG dal sito:

<http://www.samba-tng.org>

e decomprimerlo in una opportuna directory (ad esempio /usr/src) con il comando:

tar xvfz samba-x.y.z.tar.gz

dove x.y.z rappresenta il numero di versione.

Il contenuto del pacchetto viene estratto in /usr/src/samba-x.y.z/ (da qui in avanti denominata $SAMBA_INST).

A questo punto ci si posiziona in $SAMBA_INST/source/ e si eseguono i comandi per la compilazione del pacchetto:

./configure --prefix=/dir_installazione

make

make install

Se i comandi hanno successo si hanno tutti i componenti di Samba-TNG installati nella directory indicata con l'opzione --prefix= (per difetto è /usr/local/samba/, da qui in avanti denominata $SAMBA_TNG).

Al suo interno vengono create, dal processo di installazione, varie altre directory tra cui le più importanti sono:

241.2   Configurazione di Samba-TNG

Anche per Samba-TNG, come per la versione ufficiale è necessario impostare le opzioni di configurazione nel file smb.conf.

A questo proposito si può utilizzare un file di configurazione preimpostato fornito con il pacchetto in $SAMBA_INST/examples/smb.conf.example. Occorre copiarlo in $SAMBA_TNG/etc/smb.conf e modificarlo secondo le proprie esigenze.

Di seguito sono elencate le più importanti direttive da inserire o variare 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

Il significato di queste direttive è stato già illustrato nel capitolo riguardante la configurazione di un servente Samba (234.3.1) ad eccezione delle ultime tre con le quali si impostano i nomi di 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 GNU/Linux.

Altre impostazioni nel file di configurazione, comprese eventuali risorse condivise, possono essere fatte in base alle proprie esigenze secondo quanto illustrato nel capitolo sulla configurazione di un servente Samba.

241.3   Attivazione di Samba-TNG

Prima di attivare i demoni di Samba-TNG posizionarsi in $SAMBA_TNG e eseguire:

mkdir private

chmod 700 private

cd private

touch smbpasswd domaingroup.map \
  \domainuser.map localgroup.map

chmod 700 smbpasswd

I demoni da attivare sono undici anzichè due come in Samba. Ecco una breve descrizione (per maggiori dettagli si possono consultare le pagine del manuale in $SAMBA_TNG/man/):

smbd, fornisce i servizi di condivisione di file e stampanti per i clienti Windows o GNU/Linux;

nmbd, fornisce il supporto per la risoluzione dei nomi NetBIOS e per la scansione della rete;

browserd, è progettato per occuparsi del servizio di scansione in maniera simile al servizio Browser di Windows NT; attualmente però le liste di scnsione sono ancora gestite dal demone nmbd;

lsarpcd, fornisce supporto al servizio Local security authority usato per gestire le informazioni di accreditamento;

netlogond, fornisce l'autenticazione stile Windows NT per gli utenti Windows NT;

samrd, dà la possibilità di usare un certo numero di funzioni per la gestione dell'archivio SAM (Security access manager );

spoolssd, fornisce un servizio di stampa in stile Windows NT;

srvsvcd, fornisce i servizi come quelli che si trovano nel menu Server Manager di Windows NT;

svcctld, fornisce la possibilità di amministrazione remota del servente Samba-TNG;

winregd, permette, ad utenti con sufficienti privilegi, di usare i comandi REGEDT32.EXE in Windows NT, REGEDIT.EXE in Windows 98/ME o regedit in GNU/Linux, 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 attivare i servizi di Samba-TNG in maniera semplice si può utilizzare uno degli script già pronti reperibili in $SAMBA_INST/source/script/, ad esempio samba-init.d-sysv dopo averlo copiato in $SAMBA_TNG/bin e opportunamente modificato almeno per quanto riguarda il valore della variabile SAMBA_HOME, da porre uguale a $SAMBA_TNG/sbin.

Prima di attivare Samba-TNG, occorre sincerarsi che non siano attivi i demoni di Samba; nel caso della Red Hat si utilizza il comando:

/etc/rc.d/init.d/smb status

seguito, nel caso il servizio sia attivo, da:

/etc/rc.d/init.d/smb stop

Fatto questo si può attivare Samba-TNG con il comando:

$SAMBA_TNG/bin/samba-init.d-sysv start

Esiste anche la possibilità di usare contemporaneamente le due versioni di Samba e di questo si occuperà uno dei prossimi paragrafi (241.5).

241.4   Gestione del dominio e creazione della relazione di fiducia

Per gestire il dominio Samba-TNG si devono definire gli utenti SAM con l'uso di un apposito strumento (da qui in avanti chiamato per semplicità samedit) attivato con il comando:

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

Il significato delle opzioni è il seguente:

-S . connessione al server localhost;
-U root accesso in qualità di utente root;
-N accesso senza parola d'ordine.

Digitando help in samedit si ottiene la lista dei comandi disponibili (per uscire digitare exit); quello che serve per aggiungere gli utenti è:

[root@.]$ createuser cimelio inf-tng -p parola_d'ordine

che crea l'utente di nome cimelio (che deve risultare già esistente come utente del sistema GNU/Linux) con relativa parola d'ordine.

In questo modo l'utente cimelio ha la possibilità di collegarsi al dominio da un cliente MS-Windows.

È anche possibile includere un cliente MS-Windows NT Workstation nel dominio gestito da Samba-TNG; supponendo che la macchina in questione sia denominata 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:

[root@.]$ createuser root -p parola_d'ordine_di_root

La parola d'ordine qui indicata non deve necessariamente essere la stessa che l'utente root ha nel sistema GNU/Linux.

Altra operazione da svolgere è l'inserimento nel file $SAMBA_TNG/private/domainuser.map della riga:

   root=Administrator

A questo punto è possibile unirsi al dominio inf-tng dalla macchina work/nt compiendo l'operazione come utente Administrator con parola d'ordine quella associata precedentemente a root in samedit.

Passiamo infine alla creazione della relazione di fiducia con un servente Windows NT.

A questo scopo occorre definire, sia come utenti GNU/Linux sia come utenti SAM, il nome del servente Windows NT (supponiamo sia server-nt) e il nome del dominio (supponiamo sia inf-nt):

useradd -g computer -d $SAMBA_TNG/machines \
  \-s /bin/false server-nt$

useradd -g computer -d $SAMBA_TNG/machines \
  \-s /bin/false inf-nt$

e, in samedit:

[root@.]$ createuser server-nt$ -i -p parola_d'ordine

[root@.]$ createuser inf-nt$ -i -p parola_d'ordine

Sul servente MS-Windows NT occorre entrare in User Manager -> policies -> Trust Relationships e aggiungere il nome del dominio inf-tng con la parola d'ordine scelta in precedenza (vedere figura 241.1); se non insorgono problemi si riceve il messaggio: relazione di fiducia stabilita con successo.

Per controllare che la relazione di fiducia sia realmente attiva si può operare come segue:

Figura 241.1.

figure/samba-figura-9.1

 

Figura 241.2.

figure/samba-figura-9.2

241.5   Uso contemporaneo di Samba e Samba-TNG

Prima di entrare nei dettagli circa l'uso contemporaneo di Samba e Samba-TNG è opportuno chiarire quale possa essere l'utilità di questa scelta.

Come detto in precedenza Samba-TNG privilegia fortemente le funzionalità di domain controller ma non è ottimizzato come servente di file. Per tale compito è molto più adatto il Samba «ufficiale» (da ora in avanti denominato Samba-HEAD).

Quindi in tutte le situazioni in cui è necessario avere una gestione efficiente della condivisione di file e anche funzionalità avanzate di domain controller può essere opportuno utilizzare entrambe le versioni di Samba.

In figura 241.3 è visibile uno schema che rappresenta quello che è possibile realizzare: Samba-HEAD mette a disposizione le risorse condivise ma il controllo per l'accesso alle stesse è a carico di Samba-TNG, che svolge anche le funzioni di PDC nel dominio.

Figura 241.3.

figure/samba-figura-9.3

241.5.1   Configurazione

Prima di configurare i due serventi sul sistema GNU/Linux è necessario creare un numero IP aggiuntivo (o alias IP) per la scheda di rete, in quanto ognuno dei due serventi deve rimanere in ascolto su un numero IP diverso. Se supponiamo di avere la schede di rete configurata con numero IP 192.168.254.1 assegnamo l'altro numero IP con il comando:

ifconfig eth0:0 192.168.254.101 netmask 255.255.255.0

I due numeri IP vengono utilizzati nel seguente modo:

192.168.254.1 per Samba-HEAD;

192.168.254.101 per Samba-TNG.

La configurazione di Samba-HEAD si effettua modificando il file /etc/samba/smb.conf. Le impostazioni più importanti da effettuare nel contesto che stiamo esaminando 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

Con workgroup si imposta il nome di dominio cui Samba-HEAD appartiene.

Con netbios name si imposta il nome del servente Samba-HEAD.

Le due successive direttive interfaces e bind interfaces only fanno in modo che questo servente sia in ascolto al numero IP specificato.

encrypt password viene valorizzato in modo da permettere l'uso di parole d'ordine cifrate.

Con le direttive security e password server facciamo in modo che l'autenticazione degli utenti sia svolta dal servente di dominio, che in questo contesto è il servente Samba-TNG.

Le altre direttive servono a fare in modo che questo servente non interferisca con le operazioni di scansione della rete che è opportuno assegnare ad un PDC in caso esso sia presente.

La sezione comodo definisce una banale condivisione da utilizzare per le prove.

La configurazione di Samba-TNG si effettua modificando il file $SAMBA_TNG/etc/smb.conf. Le impostazioni più importanti da effettuare nel contesto che stiamo esaminando 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
   domain master = yes
   preferred master = yes
   local master = yes
   os level = 35

Con workgroup si imposta il nome di dominio cui Samba-TNG appartiene; ovviamente deve essere lo stesso cui appartiene Samba-HEAD.

Con netbios name si imposta il nome del servente Samba-TNG.

Le due successive direttive interfaces e bind interfaces only fanno in modo che questo servente sia in ascolto al numero IP specificato e anche su 127.0.0.1 (questa impostazione è necessaria perchè la sua mancanza provoca errori nell'autenticazione degli utenti).

Con domain logons facciamo in modo che questo servente sia il PDC per il dominio inf-tng.

Le altre direttive servono a fare in modo che questo servente svolga le funzioni di scansione della rete.

In questa configurazione sono volutamente tralasciate le impostazioni relative agli script di logon e ai profili utenti per le quali si rimanda al capitolo riguardante l'autenticazione di utenti MS-Windows con Samba(238). A tale riguardo è opportuno comunque suggerire che le directory contenenti i profili degli utenti siano condivise attraverso il servente Samba-HEAD in modo da migliorare le prestazioni del sistema.

241.5.2   Attivazione dei due serventi

L'attivazione di Samba-HEAD non presenta alcuna difficoltà in quanto è sufficiente eseguire il comando:

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

Per Samba-TNG è invece necessario intervenire ulteriormente nello script $SAMBA_TNG/bin/samba-init.d-sysv, già citato in precedenza (241.3), per cambiare tutte le occorrenze dei nomi dei demoni smbd e nmbd rispettivamente in smbd-tng e nmbd-tng affinché non ci sia conflitto con i demoni di Samba-HEAD.

Fatto questo si può eseguire il comando:

$SAMBA_TNG/bin/samba-init.d-sysv start

Per verificare che tutto sia andato a buon fine si può utilizzare uno degli strumenti per il controllo dei processi attivi (ad esempio pstree) verificando che fra questi ultimi siano presenti smbd, smbd-tng, nmbd, nmbd/tng.

241.5.3   Verifica del funzionamento

Occorre prima di tutto includere il servente Samba-HEAD (come se fosse un cliente MS-Windows) nel dominio gestito da Samba-TNG con i comandi:

useradd -g computer samba$

e, in samedit:

[root@.]$ createuser samba$

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

smbpasswd -j inf-tng

Prestare attenzione ad eseguire la giusta versione del comando smbpasswd; in questo caso si esegue (giustamente) quella di Samba-HEAD che è in una delle directory del PATH del sistema; se avessimo dovuto eseguire la versione di Samba-TNG dello stesso comando sarebbe stato necessario specificare anche il percorso per raggiungerlo e cioè $SAMBA_TNG/bin/passwd.

L'operazione successiva consiste nella definizione di un utente di Samba-TNG con samedit:

[root@.]$ createuser fulvio -p parola_d'ordine_di_fulvio

Ovviamente l'utente fulvio deve essere un utente già presente nel sistema GNU/Linux.

Infine si può testare il tutto nel seguente modo:

smbclient //SAMBA/comodo -U fulvio%parola_d'ordine_di_fulvio

Se appare la stringa smb:\> significa che l'interfaccia di smbclient è attiva e quindi l'utente fulvio ha avuto accesso alla condivisione comodo sul servente Samba-HEAD e che tale accesso è stato concesso grazie all'autenticazione dell'utente sul servente Samba-TNG.

Un test equivalente, ma sicuramente più «carino» può essere effettuato accreditandosi su un cliente MS-Windows al dominio inf-tng come utente fulvio e provando poi ad accedere da «risorse di rete» alla cartella comodo della macchina SAMBA (vedere figure 241.4, 241.5, 241.6).

Figura 241.4.

figure/samba-figura-9.4

 

Figura 241.5.

figure/samba-figura-9.5

 

Figura 241.6.

figure/samba-figura-9.6


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome samba_tng.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione licenza] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!