Disclaimer :
La versione originale di questo articolo è stata pubblicata da IBM
developerWorks ed è di proprietà di Westtech Information Services. Questo
documento è una versione aggiornata dell'articolo originale, e contiene
numerosi miglioramenti apportati dal Gentoo Linux Documentation team.
Questo documento non è mantenuto attivamente.
|
Introduzione a Samba, Parte 1
1.
Concetti chiave
Samba
Per prima cosa, si mostreranno alcuni screenshot di uno dei miei pc con
Windows NT, chiamato kompressor. Questi screenshot dimostrano come appare un
sistema con Samba completamente configurato dal lato Windows. Fanno comprendere
ciò che Samba può fare nel mondo reale.
Attualmente ci sono tre macchine configurate nella mia LAN interna:
-
ntbox (una Workstation Windows NT)
-
freebox (un server FreeBSD)
-
kompressor (la workstation Windows NT utilizzata come desktop
principale
In questo ambiente, si utilizza Samba in maniera estensiva per condividere
file, stampare, e perfino utilizzare applicazioni Windows direttamente da
freebox (Unix). Segue uno screenshot che mostra il contenuto delle risorse di
rete di kompressor:
Figura 1.1: Risorse di rete di kompressor |
 |
Come è possibile vedere, sia ntbox che kompressor sono visibili, il che non
sorprende poiché entrambi sono Workstation NT. Quello che è piuttosto
inusuale, tuttavia, è il fatto che è possibile vedere pure freebox. Poiché
freebox sta facendo girare Samba, è possibile vederlo nelle risorse di rete
di ogni macchina Windows che sia parte del mio workgroup Windows "GENTOO".
Ora è il momento di dare un'occhiata a cosa c'è "dentro" freebox. La finestra
seguente compare dopo un doppio click sull'icona freebox:
Figura 1.2: Condivisioni SMB/CIFS su freebox |
 |
In questa finestra potete notare una lista di quelle che sono chiamate
"condivisioni". Più in specifico, sono chiamate condivisioni SMB/CIFS e
contengono le parti del filesystem di freebox che sono accessibili via rete.
Nota:
E' doveroso menzionare che SMB sta per Server Message Block (Blocco di
Messaggi del Server), il nome originale del protocollo utilizzato per
condividere file sotto windows. CIFS sta per Common Internet File System
(File System Internet Condiviso), il nuovo acronimo di Microsoft che descrive
la versione più recente di questo protocollo.
|
Su freebox, Samba è stata specificamente configurata per creare solo quelle
condivisioni che vedete di sopra. La condivisione drobbins contiene il
contenuto della mia directory home. Mi piace memorizzare tutti i miei file su
freebox (sotto Unix) per mantenere le cose centralizzate e facili da gestire.
Una delle cose stupende riguardanti Samba è che consente agli amministratori
di centralizzare lo spazio per i file utente piuttosto che fornire agli
utenti due locazioni separate per i file sotto Windows e sotto Unix.
Stampa tramite Samba
Oltre alle condivisioni standard (che operano come directory virtuali), è
possibile vedere inoltre una condivisione chiamata nec. Un'altra
caratteristica molto importante di Samba è che è possibile condividere una
stampante allo stesso modo di come si può condividere da qualsiasi pc
Windows. nec è la mia stampante laser NEC SuperScript 870, che è collegata a
freebox ed è configurata come una stampante standard Unix basata su lpd.
Samba consente a questa stampante di essere usata da client Windows proprio
come sarebbe consentito da una stampante di rete standard di Windows.
Ci si potrebbe chiedere come sia gestita la questione dei driver di stampa,
visto che la stampante sta operando in ambiente Unix. Buona domanda. Su
freebox, nec è configurata come una stampante standard basata su porta
parallela che opera in modalità "raw". In altre parole, tutti i job di stampa
inviati a nec sono inviati direttamente alla stampante così come sono, senza
nessuna operazione di filtraggio o manipolazione dei dati.
Su kompressor, nec è configurata come una stampante di rete NEC SuperScript
870. Quando gli viene inviata una stampa, il driver di stampa locale di NT
genera i dati binari appropriati per nec, che sono automaticamente inviati
tramite la rete a Samba su freebox. Samba inserisce automaticamente questi
dati, senza toccarli, nella coda di nec, e la stampante incomincia a stampare
il job.
E' necessario far notare che sfortunatamente la mia NEC SuperScript 870 non è
una stampante Postscript; utilizza la tecnologia proprietaria di Adobe
PrintGear. Sebbene tale stampante non sia completamente supportata sotto
Unix, lavora comunque perfettamente quando si stampa da Windows (questo
poiché tutti i dati generati specificamente per la stampante sono generati
dal lato Windows, usando il driver di Windows). Ironicamente, siccome
GhostScript (un interprete compatibile con PostScript liberamente disponibile
sotto Unix) non conosce come produrre output compatibile con PrintGear, è
possibile stampare solamente testo ASCII puro o documenti basati su PCL4 da
300 dpi dal lato Unix; ma dal lato Windows, il driver di Windows NT consente
di stampare a 600 dpi pieni. Al momento non risulta scomodo, poiché la
maggior parte delle stampe vengono inviate da Windows. Ad ogni modo, in
futuro sarebbe bello avere una stampante che supporta Postscript così da
poter sfruttare tutte le funzionalità di tale stampante anche da Unix.
Condivisioni Samba
OK, è ora di muoversi allo screenshot successivo. Questo mostra i contenuti
della condivisione drobbins su freebox, che è configurato in modo tale da
condividere la mia home directory sotto Unix. Tutti i file mostrati nella
finestra risiedono in realtà su freebox ma sono accessibili direttamente dalle
macchine client Windows NT. E' una cosa incredibile essere in grado di
integrare Windows e Unix!
Figura 1.3: La mia directory home su freebox, acceduta da kompressor |
 |
Comprendere Samba
Per mostrare altro riguardo a come funziona Samba internamente, si provvederà
a dare una spiegazione molto semplificata di cosa è successo dietro le quinte
quando si è curiosato nelle Risorse di Rete. Bisognerebbe spiegare prima
qualcosa riguardo la sessione di Windows corrente. Siccome si sta
utilizzando Windows Workstation NT, è stato necessario autenticarsi per poter
accedere alla macchina. Per questa sessione NT ci si è autenticati sulla
macchina locale con il nome utente "Administrator" e la password
"miapassword". Se si fosse utilizzato Windows 95 o 98, il driver standard di
rete avrebbe chiesto nome utente e password allo stesso modo. Sotto Windows
95 e 98, questa password non è realmente utilizzata per determinare chi può
accedere alla macchina locale; più propriamente, è memorizzata ed utilizzata
per connettersi alle risorse di rete.
Naturalmente, Windows NT è estremamente sicuro se comparato con Windows 95 e
98 e non consente di utilizzare le macchine a meno che non si fornisca un
nome utente ed una password validi. Dopo che kompressor ha verificato nome
utente e password consultando il suo database locale per la sicurezza, ha
consentito di iniziare ad usare windows. Kompressor utilizza allo stesso modo
il nome utente e la password per provare automaticamente ad autenticarsi
quando ci si connetterà alle risorse di rete protette da password.
Esplorare la Rete
Dopo aver cliccato su Risorse di Rete, è comparsa una finestra contenente
tutte le macchine compatibili con Windows presenti nella mia rete. Affinché
ciò accadesse, kompressor ha contattato dietro le quinte freebox, per
ottenere una lista navigabile di tutte le macchine compatibili con Windows
presenti sulla sottorete. Kompressor ha contattato freebox poiché si è
configurato Samba su freebox in modo che egli divenisse il "local master
browser" della mia rete (che significa che freebox gestisce la lista delle
risorse di rete che appaiono in Risorse di Rete).
La cosa fatta successivamente è stata fare un doppio click su freebox, che ha
fatto sì che una nuova finestra comparisse e mostrasse tutte le condivisioni
presenti su freebox. Affinché kompressor ricevesse queste informazioni, si è
connesso ad una condivisione speciale nascosta su freebox (chiamata IPC$)
come utente guest (ospite) e ha scaricato tutti i nomi ed i tipi di tutte le
condivisioni disponibili. Nel prossimo articolo, quando si configurerà
Samba, sarà necessario inserire un'opzione nella configurazione di Samba che
specifica quale account Unix è equivalente all'utente "guest" di NT. Se non è
impostata correttamente, non si sarà in grado di esplorare nessuna delle
risorse su una macchina su cui gira Samba. E' importante menzionare ciò
poiché chiarisce che non è necessario nessun permesso speciale per vedere le
condivisioni SMB/CIFS su un server Samba, degno di nota per fini di
sicurezza.
Si è ora in grado di cliccare sulla condivisione drobbins per mostrare il
contenuto della mia home directory. Mentre ciò è accaduto automaticamente
senza preoccuparsi di nulla, è importante comprendere la conversazione
nascosta avvenuta tramite freebox e kompressor che alla fine ha consentito
l'accesso alla condivisione drobbins. Ma prima di addentrarci in tutto ciò,
si discuterà velocemente qualche problematica di sicurezza riguardante
Samba.
Sicurezza in Samba
Quando è stato configurato Samba, si è configurata la condivisione drobbins in
modo da essere protetta da password; anche se sono sulla mia LAN privata, mi
piace comunque mantenere le cose protette fino ad un certo livello. Allo stesso
tempo, si sono configurati due utenti Samba: drobbins e administrator. Le loro
password sono state configurate in modo da corrispondere a quelle della mia
Workstation NT per motivi di consistenza. Per la condivisione drobbins, la mia
politica di sicurezza è come segue: se si è un utente Samba valido, e si
fornisce la password corretta per tale utente, sarà consentito l'accesso alla
condivisione drobbins. Quindi, sia administrator che drobbins avranno l'accesso
consentito ogni qual volta che l'utente fornirà la password corretta per il
loro account.
Ora, si torni indietro alla conversazione tra freebox e kompressor. Poiché ci
si è loggati come administrator, un doppio click sulla condivisione drobbins
ha fatto si che Windows NT provasse automaticamente ad autenticarsi con
Samba inviando il nome utente "administrator" e la password "miapassword" a
freebox. Samba ha poi controllato questi valori con quelli nel suo database
di sicurezza interno (che è separato dal database standard Unix
passwd), verificando quindi il nome utente e la password. Dopo aver
verificato che la combinazione nome utente/password fosse corretta, Samba ha
acconsentito l'accesso.
Ci si potrebbe chiedere perché Samba ha un suo unico database delle password.
Perché non si limita ad utilizzare la password standard di Unix per
autenticare l'utente administrator? Mentre era possibile fare ciò quando
Windows trasmetteva le password in plain-text, tutte le versioni moderne di
Windows trasmettono ora le password SMB/CIFS in una forma criptata che non è
compatibile con l'hash standard delle password Unix. In altre parole, non c'è
modo per Samba di usare l'hash standard passwd di Unix per verificare
che una password criptata di Windows sia corretta. Fortunatamente, Samba
offre numerosi modi per sincronizzare questi database così che la vita di un
amministratore di sistema non diventi troppo confusa.
Samba dal lato Unix
Ora che si è visto Samba dal lato Windows, è il momento di dare uno sguardo a
Samba dal lato Unix. Per incominciare, qualche informazione generale. Il sito
principale di Samba è http://fi.samba.org, e la versione di
produzione corrente di Samba è la 2.0.7, in data 25 aprile 2000, ed è quella
che utilizzeremo in questa serie. Siccome qualcuno potrebbe star installando
Samba da un RPM, altri potrebbero star provando a far girare Samba sotto
FreeBSD o Solaris (piuttosto che GNU/Linux), e un buon numero di voi potrebbe
star compilando Samba dai sorgenti, è possibile che ci siano alcune
differenze nelle posizioni dei file. (Le posizioni di default dei file di
Samba sono configurabili a tempo di compilazione). Su alcuni sistemi certi
file saranno in /usr/local/, mentre su altri sistemi potrebbero
finire altrove. Ci si riferirà ai file di configurazione tramite il loro nome
(piuttosto che il percorso completo) per evitare alcuna inconsistenza.
Se si compila e installa Samba dai sorgenti originali, i file di
configurazione di Samba si possono trovare in
/usr/local/samba/etc/smb.conf. Tuttavia, se si installa il
software da un RPM binario o da un altro formato di pacchetizzazione
GNU/Linux, si troverà probabilmente smb.conf in
/etc. Tutto ciò diventa confuso molto in fretta. In modo da
rendere tutto più facile, si tratteranno le locazioni dei file quando Samba è
compilato dai sorgenti ed ogni cosa è installata nella sua posizione in
/usr/local/samba. Si prega di notare che il fine di questa
sezione è semplicemente quello di diventare familiari con la configurazione
di Samba dal lato Unix e non intende guidare passo passo attraverso il
processo di compilazione, che sarà trattato nell'articolo successivo. Al
momento ci si sta solamente scaldando! Seguono le locazioni standard dei file
dopo una compilazione ed installazione pulita di Samba:
/usr/local/samba/bin contiene tutti gli eseguibili binari di
Samba. Nella versione 2.0.7, i principali eseguibili di Samba si chiamano
smbd e nmbd. smbd è designato per offrire i servizi di
condivisione dei file SMB/CIFS, mentre nmbd svolge funzionalità
relative a WINS per agevolare la risoluzione degli indirizzi IP in nomi
NetBIOS. C'è spazio inoltre per altre utilità, inclusa smbclient, un
tool ftp-like che può essere utilizzato per connettersi ed interagire con
condivisioni SMB/CIFS, e testparm, una pratica utilità che si accerta
che il principale file di configurazione di Samba abbia una sintassi
corretta.
/usr/local/samba/etc contiene smb.conf, il
principale file di configurazione di Samba. smb.conf è un file
molto importante, contenente quasi tutte le opzioni di configurazione di
Samba. In questo file si troveranno i settaggi per controllare le
funzionalità globali di Samba come pure le opzioni di configurazione per
abilitare la condivisione di specifici alberi di directory e stampanti. Non
appena si farà esperienza con Samba, si aggiungeranno al proprio
smb.conf ulteriori opzioni di configurazione che metteranno a
punto Samba per il proprio server.
Una delle maggiori lamentele riguardanti Samba è che il file smb.conf ha una
curva di apprendimento piuttosto ripida. Anche se ciò è vero, ci si ricordi
che Samba non è solamente un semplice programma per la condivisione di file.
Ha la responsabilità di integrare sensatamente due sistemi significativamente
differenti: Windows e Unix. Qualche volta il processo di configurazione
sembrerà complicato, ma non si abbia paura. Quando si avrà ogni cosa
perfettamente funzionante, ne sarà valsa la pensa!
/usr/local/samba/private contiene smbpasswd, il file
criptato delle password di Samba.
Nota:
In smb.conf, Samba può essere configurato in modo tale da
rimanere in ascolto di connessioni su particolari interfacce di rete o
accettare connessioni solamente da particolari sottoreti o indirizzi IP.
Questi metodi possono essere utilizzati per migliorare ulteriormente la
sicurezza.
|
Si è precedentemente detto che Samba ha il suo personale spazio di
memorizzazione delle password che è unico e separato dal database standard
Unix passwd. Nel file smbpasswd Samba memorizza tutti gli
utenti e le workstations (e le password a loro associate) ai quali è
consentito di accedere alle condivisioni Samba. Condivisioni individuali
possono essere ulteriormente limitate a particolari utenti e gruppi. Per
modificare il file smbpasswd, si utilizza l'omonimo eseguibile
binario smbpasswd.
/usr/local/samba/var contiene i due file di log di Samba,
log.smb e log.nmb. Come si potrà immaginare,
log.smb è il file di log di smbd mentre
log.nmb è il file di log di nmbd.
/usr/local/samba/swat contiene i file usati da SWAT. SWAT è il
tool di amministrazione Web di Samba, ed è una fantastica piccola
applicazione web che consente agli amministratori di gestire la loro rete
Samba remotamente. Non tratteremo SWAT in questa serie, ma si potranno
trovare ulteriori informazioni su SWAT nella pagina principale di SWAT (si
veda la sezione Risorse).
Cosa segue
Si sono trattati molte funzionalità e concetti chiave di Samba. Si è data una
visione generale della struttura dei file dal lato Unix di Samba. Nel mio
articolo successivo si sarà guidati attraverso il processo di configurazione
di samba sul proprio sistema. Diversamente da questo articolo, che si è
concentrato maggiormente sui concetti, il successivo articolo avrà più lo
stile di un HOWTO. Ora che si sono trattati i concetti chiave, è tempo di
accelerare il passo. Arrivederci al prossimo articolo!
Risorse
|