Gentoo Logo

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:

  1. 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.
  2. 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

Estratto di /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:

  1. Le macchine Windows siano in grado di pingare il server Unix per nome. (Digitare ping mio-server sul prompt C:\>.)
  2. 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.
  3. 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:

  1. Eseguire testparm. Il vostro smb.conf è OK? Se no, correggete gli errori e riavviate Samba.
  2. smbd ed nmbd sono attivi? Se no, controllate i file di log per i possibili errori, correggete ogni problema e riavviate smbd ed nmbd.
  3. 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.
  4. 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



Stampa

Aggiornato il 6 ottobre 2005

Oggetto: Nell'articolo precedente, Daniel vi ha introddoto a ciò che può essere fatto con Samba. Adesso è il momento di renderlo funzionante nel vostro sistema. In questo articolo, affronteremo i processi di compilazione, installazione e configurazione iniziale di Samba (versione 2.0.7) per renderlo operativo nel vostro sistema.

Daniel Robbins
Author

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.