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 2
1.
Compilazione, installazione e configurazione di Samba nel vostro
ambiente
Scaricare Samba
Bene. Prima di tutto è il momento di scaricare la versione di Samba 2.0.7 o
successivo dal sito Samba.org (vedi Resources , successivamente in questo articolo).
Nota:
Piuttosto che compilare Samba da sorgente, è possibile scegliere
l'installazione di un pacchetto binario (come gli RPM prediposti dalla propria
distribuzione Linux). Ciò è perfettamente OK. Tuttavia, come ho ricordato nel
precedente articolo, facendo in questo modo, la collocazione dei file può
risultare notevolmente diversa da quella indicata qui.
|
Dopo avere scaricato Samba 2.0.7 o successivo, bisogna decomprimerlo in una
cartella di propria scelta. Da linea di comando, digitare:
Codice 1.1: Decomprimere il file sorgente |
$ tar -xzvf samba-2.0.7.tar.gz
|
Verrà creata così una cartella samba-2.0.7. Si esegua un
cd all'interno per darci un'occhiata.In primo luogo, si osservi la
presenza della cartella docs. Dentro, si trova una sottocartella chiamata
textdocs. textdocs contiene una quantità di
documentazione su Samba. Uno dei più importanti files qui contenuti è
chiamato DIAGNOSYS.txt e accompagna passo a passo il lettore in un esercizio
di diagnosi dei possibili problemi che possono capitare durante la reale
attività di Samba. Qui, ora, noi seguiremo alcune, ma non tutte, delle
procedure di diagnosi menzionate in quel file.
Compilare e installare Samba
Successivamente, avrete anche notato la cartella sources, nella
directory principale samba-2.0.7. Dentro sources
troverete uno script configure accuratamente preparato per configurare tutti
i makefiles propriamente. Come si fa per ogni altro script configure, per
ottenere una lista delle possibili opzioni, basta digitare:
Codice 1.2: Investigating options |
$ ./configure --help
|
Probabilmente, risulterà utile concatenare l'output ad un more
per prendere visione comodamente di tutte le opzioni disponibili:
Codice 1.3: Altre opzioni |
$ ./configure --help | more
|
Osservare in particolare le opzioni directory e file name. Determinano il
percorso in cui ogni cosa deve essere installata. Il path di default è
/usr/local/samba. Probabilmente, preferirete modificare quel
cammino in /usr/local, assegnando l'opzione
--prefix=/usr/local per configurare Samba.In questo esempio, io farò
uso dei seguenti path settings:
Codice 1.4: Configurare l'opzione directory |
$ ./configure --prefix=/usr/local --localstatedir=/var/log --sysconfdir=/etc
|
La configurazione sopra descritta indirizzerà il percorso predefinito di Samba
all'interno di /usr/local, con l'esclusione dei file di
configurazione.
Samba collocherà questi ultimi in /etc, mentre i log files
risiederanno in /var/log. Volendo omettere quelle configurazioni,
ogni cosa risulterà collocata nel percorso /usr/local/samba
(/usr/local/samba/var, /usr/local/samba/etc, etc.).
Si può ora cominciare la compilazione. Dopo aver eseguito configure,
digitare:
Codice 1.5: Compilazione di Samba |
$ make
|
Completata la compilazione, digitare quanto segue con i privilegi di root per
installare il software:
Codice 1.6: Installare Samba |
# make install
|
Configurare il server
Essenzialmente, la compilazione di Samba inizia e ha termine con la costruzione
del file smb.conf. Questo è il principale file di configurazione
di Samba. Come prima cosa, è opportuno riconoscerne la collocazione corretta.
Se sono stati impostati le configurazioni sopra specificate,
smb.conf sarà da collocare in /etc. Con l'uso dei percorsi
predefiniti, invece, si troverà in /usr/local/samba/etc.
Per cominciare, collocarsi nella cartella appropriata, attivare il programma di
editor preferito e inserire le linee seguenti. Io aggiungerò dei commenti per
consentire una adeguata comprensione degli effetti di ciascuna opzione.
Aggiungere le seguenti linee al file smb.conf:
Codice 1.7: smb.conf |
[global]
workgroup = GRUPPODILAVORO
security = user
encrypt passwords = yes
guest account = guest
|
La prima linea indica a Samba che stiamo collocando le opzioni nella sezione
"globale". Esistono molte opzioni che sono concepite per essere collocate
esclusivamente in questa sezione. Queste opzioni definiscono il comportamento
globale di Samba.
La seconda linea indica a Samba il nome del gruppo di lavoro Windows che Samba
dovrà generare. Sostituite GRUPPODILAVORO con un nome adeguato
per il vostro workgroup.
Sulla terza linea, indicheremo a Samba di operare nella modalità di sicurezza
user-level. Questa opzione obbligherà Samba a richiedere a tutti i clienti
Windows che si connetteranno di fornire una combinazione username/password per
ottenere l'accessso a qualunque risorsa del network. Questa è certamente una
cosa buona. La user-level security è la modalità di sicurezza più
frequentemente utilizzata di Samba perchè si adatta in modo eccellente alla
maggior parte delle situazioni di condivisione di file. Comunque, esistono
altre modalità operative disponibili. In particolare, una di esse permette a
Samba di autenticare tutti gli utenti secondo il database di un preesistente
Server Windows NT o 2000. Noi non desideriamo considerare questa particolare
modalità in questo articolo. Se sono richieste maggiori informazioni a
riguardo, si guardi la "security" option nella smb.conf man page.
Ora, sulla quarta linea. Qui si indica a Samba di scambiare le password con
Samba in modalità criptata. Sarà necessario utilizzare sempre password
criptate, a meno di lavorare con macchine client estremamente datate (come
macchine Windows per Workgroups-era). Abilitando le password criptate, Samba
avrà necessità di riferirsi ad un proprio file di database, aggiunto a quello
standard Unix. Se ritenete preferibile disabilitare la criptazione delle
password solamente per evitare di mantenere due file di password, non fatelo!
Ponendo off le password criptate, sorgeranno problemi di condivisione con
versioni anche moderatamente datate di Windows NR 4.0, oltre a Windows 2000. Se
realmente desiderate evitare il mantenimento di due database separati, Samba
fornisce vari metodi per sincronizzare i database, che è un approccio
preferibile.
La linea successiva specifica un'utenza Unix valida da usare come accesso per
gli ospiti. Sebbene molti utilizzino d'abitudine "guest account=nobody", è
raccomandato di aggiungere un vero e proprio utente "guest" per l'accesso
degli ospiti, se questo account non era già presente in precedenza nel
sistema. Il nuovo "guest" account non richiede alcuna password nè la facoltà
di operare interattivamente (è consigliabile tuttavia la scelta di
configurare l'utente "guest" con una password e una shell valida di
default).
A questo punto siamo pronti per aggiungere le opzioni per il supporto WINS ad
smb.conf. Per farlo, bisognerà aggiungere una delle seguenti due
linee alla sezione globale:
Codice 1.8: Supporto WINS |
wins support = yes
|
Oppure:
Codice 1.9: Indirizzo IP del server WINS |
wins server = indirizzo IP del server WINS
|
Se esiste già un WINS server nella vostra attuale sottorete (un server Windows
NT che esegua WINS, per esempio), dovrete usare la seconda opzione e
specificare il nome del WINS server a destra del simbolo di uguale. I servizi
WINS interni di Samba verranno disabilitati, e si farà uso del WINS server da
voi specificato.
Se non è presente un WINS server operante nel vostro network, o se state
creando una configurazione casalinga di Samba e non sapete esattamente cosa sia
un WINS server, utilizzerete solamente la prima opzione. Con ciò, ordinerete a
Samba di assumere la funzione di WINS server per la vostra LAN.
Vi potreste domandare cosa sia mai questo WINS. Essenzialmente, si tratta di un
datadabase di DNS dinamico. Quando Samba lavora come WINS server, ogni macchina
windows-compatibile nello stesso network registrerà il proprio indirizzo IP e
il nome di NetBIOS (leggi "computer name") con Samba. Questo consente alle
macchine Windows di usare il database di Samba per richiedere un indirizzo IP
per un particolare nome di NetBIOS. WINS è un componente chiave della
navigazione di rete, che si usa in un modo simile a Risorse di Rete per un
sistema Windows.
Ora è possibile aggiungere molte nuove opzioni alla sezione globale:
Codice 1.10: Impostazioni per la navigazione in rete |
local master = yes
os level = 99
domain master = yes
preferred master = yes
|
E qui ci spieghiamo. Tutte queste opzioni sono associate alla navigazione di
rete. Ho già fatto menzione di WINS come strumento per la navigazione di
rete, ma è necessario un altro elemento per permettere alla navigazione di
funzionare correttamente. Deve esistere un master browser locale. Suona
strano? Evidentemente serve qualche spiegazione più dettagliata.
Per navigare propriamente, deve esistere un qualche locazione centrale che
tenga traccia di quali macchine e quali workgroups sono presenti su di un
network locale. Questa particolare lista è chiamata browse list. La browse
list è utilizzata per generare la lista dei workgroup, dei domini, e delle
macchine che si rilevano facendo clic su Risorse di Rete. Ogni macchina
Windows moderna può fungere da master browser locale. Idealmente, noi
vogliamo utilizzare Samba come master browser della rete.
Quanto è davvero complesso tutto ciò? Essenzialmente, comporta che le
numerose, pesanti macchine Windows-compatibili della vostra sottorete
impegnino la LAN regolarmente per scambiarsi avanti e indietro pacchetti
volanti allo scopo di determinare chi di loro debba diventare il local master
browser. Questo processo è chiamato "browser election".
Nota:
Può essere un ottimo sport.
Mi raccomando, non utilizzate la capacità di Samba nel superare
Windows in qualsiasi browser election come scusa per prendervi gioco degli
amministratori Windows nella vostra organizzazione.
Ricordate: è importante sapere essere dei buoni vincitori.
|
Alla fine, il "vincente" di questa guerra di pacchetti sul broadcast diventerà
il local master browser. Noi possiamo portare Samba a vincere la battaglia
semplicemente usando l'opzione os level = 99, che permette di superare
ogni altra macchina sulla LAN. Questo perché ogni versione di Windows (sia
Windows95, che NT o 2000) ha un OS level codificato a livello hardware definito
allo scopo di attribuire sistematicamente il ruolo di local master browser alla
macchina con la versione più avanzata di Windows (le prossime versioni di
Windows avranno un numero più elevato). Ponendo Samba a 99, sarà superato ogni
altro prodotto Microsoft consentendo a Samba di assumere in ogni momento il
ruolo di master browsing.
Opzioni di sicurezza
Prima di abbandonare la sezione globale, collochiamo qui un piccolo numero di
opzioni di sicurezza che potrebbero meritare un certo interesse. L'opzione
allow consente di limitare gli indirizzi IP a cui è consentita la
connessione a Samba:
Codice 1.11: Indirizzi IP consentiti |
hosts allow = 192.168.1. 127.
|
Questa opzione consente la connessione esclusiva alle sole macchine del network
192.168.1, oltre al 127., del localhost. Assicuratevi sempre di
inserire un 127. al termine della linea degli hosts.
L'opzione interfaces è molto utile se la vostra macchina dovesse far uso di
interfacce multiple. Essa consente di specificare le interfacce di rete su cui
Samba è utilizzabile. deve essere usata come segue:
Codice 1.12: Specificare le interfacce |
interfaces = eth1
|
Questo è un modo semplice per limitare Samba alle interfacce indispensabli. E
limitando le interfacce si prevengono i possibili attacchi da parte di
utilizzatori indesiderati.
Una condivisione di prova
Ora che è stata configurata la sezione globale di Samba, è il momento di
creare una condivione di prova per accedere alla cartella /tmp.
Aggiungere le linee seguenti:
Codice 1.13: Condividere la cartella /tmp |
[tmp]
path=/tmp
writeable=yes
|
Avviato Samba, queste impostazioni renderanno disponibile una condivisione
chiamata /tmp. Questo share conterrà ciò che è collocato nel percorso
/tmp sul server Samba. Inoltre, se un dato utente avesse i
permessi di scrittura su /tmp, come quasi tutti hanno,
costui avrà a possibilità di modificare i file di quella cartella.
Ora, inserite tutte le voci ad smb.conf, è il momento di
verificare la funzionalità corretta della configurazione. Per farlo, si
adoperi l'utility testparm:
Codice 1.14: Usare testparm |
$ testparm
|
Premuto Invio, si otterrà sullo schermo una lista di tutte le opzioni di
configurazione. Inoltre, ogni errore in smb.conf sarà rilevato e
commentato. Se trovate errori, seguite le indicazioni sullo schermo per
correggerli. Ora siamo pronti per configurare gli utenti Samba e avviare Samba
per un'esecuzione di prova.
Generare gli utenti
Allo scopo di abilitare l'utente "mio-utente" con la password "mia-password"
all'uso di Samba, devono esistere i seguenti elementi:
-
Un'utenza valida per mio-utente. Non è indispensabile che
mio-utente abbia la facoltà di eseguire login, e la password
relativa non sarà utilizzata da Samba, così è possibile definire un
valore fittizio a piacere. Naturalmente, se mio-utente può anche
operare interattivamente in linux, va ugualmente bene.
-
Una voce mio-utente nel file smbpasswd. Il file
smbpasswd si trova nella cartella chiamata
private collocata percorso predefinito di Samba
(/usr/local/private in questo esempio). mio-utente
può essere aggiunto al file smbpasswd da root con l'uso del
comando smbpasswd nel modo seguente:
Codice 1.15: Aggiungere utenti |
# smbpasswd -a myuser
New SMB password: <enter "mypass" here>
Retype new SMB password: <enter "mypass" again>
Added user myuser.
|
Questi passi vanno ripetuti per ogni nuovo utente Samba. Se dovete abilitare a
Samba un account esistente, ricordate di aggiungere nomeutente e password al
file smbpasswd. Se dovete aggiungere esclusivamente utenti Windows-only ,
ricordate che è indispensabile creare aggiuntivamente un'utenza Unix valida
con identico username. Infatti, siete obbligati prima a creare l'utente Unix,
perché smbpsswd non aggiungerà alcun utente, a meno che lo user
Unix non sia preesistente.
Le due account sono indispensabili, perché Samba utilizza l'utenza Unix per
definire corretttamente i permessi sul disco, mentre il file
smbasswd serve per il processo di autenticazione. Se è
necessario connettersi da Windows NT, si dovrà creare un utente
"amministratore" di Samba.
Configurazione finale del server
Oramai, siamo quasi pronti ad avviare Samba e a configurare le macchine
clienti. Ma dobbiamo prima assicurarci che Samba sia in grado di pingare
ciascun cliente Windows sulla rete con il proprio nome. Se ciò non avviene,
bisognerà introdurre la rispettiva voce nel file /etc/hosts o
aggiornare il DNS, affinché Samba possa individuare correttamente le macchine
Windows.
È utile notare anche che Samba lavora meglio se nel file
/etc/hots se la voce "localhost" è l'unica associata
all'indirizzo 127.0.0.1. Il valore di FQDN della macchina locale dovrebbe
indicare l'IP primario utilizzato sulla rete. Per esempio:
Codice 1.16: /etc/hosts |
127.0.0.1 localhost
192.168.1.1 mybox mybox.mydomain.com
|
Avviare Samba
Samba è ora configurato e pronto a partire. Possiamo avviare Samba e
concentrarci sulla configurazione delle macchine Windows. Per avviare Samba,
digitare da root:
Codice 1.17: Avviare Samba |
# smbd
# nmbd
|
In questo modo sono partiti i due principali processi del servizio
Samba, smbd and nmbd. Essi invieranno ogni informazione o
messaggio di errore rispettivamente nei file /var/log/log.smb e
/var/log/log.nmb. A questo punto, il lato Unix è attivo ed
efficiente, quindi è ora di accendere i client e configurarli propriamente.
Configurare i client
Per configurare un client Windows, in modo da metterlo in grado di
partecipare al gruppo di lavoro Samba, bisogno innazitutto assicurarsi di
aver impostato propriamente il protocollo TCP/IP. Dovete anche essere ben
sicuri che:
-
Le macchine Windows siano in grado di pingare il server Unix per nome.
(Digitare ping mio-server sul prompt C:\>.)
-
Le macchine Windows siano configurate per l'uso di un WINS server. Se
Samba sta offrendo dei servizi WINS, questi devono essere indirizzato
all'IP del server Samba. Altrimenti, il client deve essere indirizzato
all'IP di un WINS server valido. Queste impostazioni sono normalmente
definite nella finestra di dialogo di TCP/IP.
-
La macchina client deve essere un membro del gruppo di lavoro
GRUPPODILAVORO.
Test di funzionamento
Questo è il momento della verità. Dopo che è stato completato il reboot delle
macchine Windows, è necessario fare accesso da Windows utilizzando la coppia
username/password accettata da Samba. Se state usando Windows 95/98, questa
coppia è semplicemente conservata in un file e utilizzata successivamente per
la connessione a qualunque risorsa di rete.
Se operate su una stazione Windows NT, la coppia username/password dovrà
essere collocata nel database di sicurezza di NT (altrimenti non sareste in
grado fin dal principio di effettuare login su NT). Per fare ciò, accedete ad
NT in qualità di amministratori e create l'utenza non privilegiata tramite
User Manager. Dopodiché, disconnettevi e riaccedete come utente semplice.
Dopo aver fatto login correttamente, effettuate un doppio-click su Risorse di
Rete e osservate il gruppo di lavoro GROUPPODILAVORO. Entrateci dentro.
Verificate se il vostro Samba server è presente. Con un doppio-click accedete
e cercate il percorso alla condivisione /tmp. Se è presente,
congratulazioni! Samba è funzionante! Se no, queste sono alcune cose da
controllare:
-
Eseguire testparm. Il vostro smb.conf è OK? Se no,
correggete gli errori e riavviate Samba.
-
smbd ed nmbd sono attivi? Se no, controllate i file di log
per i possibili errori, correggete ogni problema e riavviate smbd
ed nmbd.
-
Avete configurato i clienti Windows per utilizzare correttamente un WINS
server? Se no, essi avranno difficoltà nella ricerca degli indirizzi IP
delle macchine sulla vostra rete.
-
E' possibile effettuare un ping tra la macchina Unix e quelle Windows e
viceversa? Se no, riconfigurate il file /etc/hosts o il DNS
affinché la risoluzione dei nomi sia efficiente.
Se tutto ciò è stato controllato e Samba ancora non è operativo, controllate
con grande attenzione ogni passo del file DIAGNOSIS.txt nella cartella
docs/textdocs. Ciò dovrebbe consentire di superare puntualmente
ogni problema di rete o di configurazione in pochi minuti. Per ogni modifica di
smb.conf, si abbia cura di inviare un segnale di HUP ai servizi
smbd e nmbd, costringendoli a rileggere
smb.conf. Ciò si ottiene in questo modo:
Codice 1.18: Riavvio dopo un guasto |
# kill -hup <pid of smbd>
# kill -hup <pid of nmbd>
|
In alternativa, potete semplicemente bloccare i servizi e riaviarli nuovamente.
Cosa segue
Nel mio prossimo articolo
su Samba familiarizzeremo con le opzioni più avanzate di Samba. Così,
sarete
in grado di impostare la condivisione esattamente nel modo da voi desiderato.
Faremo poi conoscenza con numerose altre caratteristiche di Samba, come la
stampa in Samba.
Arrivederci al prossimo articolo!
Risorse
|