1. SERVER LINUX Saverio M. @savez
Condivisione delle risorse con SAMBA
2. Struttura Base di SAMBA
La versione corrente di SAMBA è la 3.x e le sue funzionalità sono:
Condivisione di cartelle e stampanti
Possibilità di accedere a risorse condivise da altre macchine che usano SMB
Supporto ai workgroup
Supporto autenticazione su dominio Windows
Gestione della master browser list (MBL)
Funzioni WINS
Supporto per Active Directory
Supporto al protocollo LDAP
Relazioni id fiducia tra NT4 e Samba
SAMBA funziona grazie a 2 servizi:
nmdb: si occupa di tutte le operazioni di risoluzione dei nimi e alla gestione del MBL
smbd: gestisce le risorse condivise
3. Struttura Base di SAMBA
Master Browser List (MBL)
E’ il ruolo che viene assegnato ad un computer attraverso un meccanismo di elezione (la
macchina migliore vince).
Il suo compito è quello di mantenere una lista aggiornata di tutte le risorse presenti nella rete.
Tale lista non è aggiornata in automatico, ed è per questo che spesso alcune risorse non
vengono subito trovate.
Servizio WINS
Permette di risolvere i nomi. E’ una specie di DNS locale e non gerarchico.
E’ un semplice elenco associativo nome_macchina => indirizzo_IP
Se non è presente un servizio WINS i nomi vengono risolti attraverso messaggi broadcast!
4. Configurare SAMBA
AVVIO
distro basate su rpm: /etc/init.d/smb start
distro basate su deb: /etc/init.d/samba start
All’avvio di samba viene letto il file di configurazione smb.conf presente in /etc/samba
Struttura file smb.conf
La struttura è lineare e precisa.
E’ presente una sezione generale global, in cui ci sono contenute una serie di indicazioni che
regolano il funzionamento del servizio come: nome server, tipo, …
Poi ci sono una serie di descrizioni più specifiche che forniscono dettagli sulle risorse che si
vogliono condividere nel sistema.
5. Configurare SAMBA
[global] # deve essere riportata fedelmente
workgroup = GRUPPOLAVORO # Indica il nome del workgroup della rete
netbios name = SRV1 # è il nome con cui il server linux sarà visibile in rete
server string = descr # descrizione del server
Security = SHARE # tipo di condivisione SHARE: comune ; USER: con autenticazione
[comune] # nome della condivisione, sotto ci saranno le sue proprietà
comment = comento # testo libero di descrizione
path = /home/comune # posizione della directory che si vuol far condividere
public = YES # directory di pubblico accesso
writable = YES # permessi di scrittura sula directory
Abbiamo definito una configurazione, per applicarla dobbiamo riavviare SAMBA.
distro basate su rpm: /etc/init.d/smb restart
distro basate su deb: /etc/init.d/samba restart
E’ bene verificare che non ci siano errori di sintassi: testparam
6. Configurare SAMBA
[global]
workgroup = GRUPPOLAVORO
netbios name = SRV1
server string = descr GESTIONE UTENTI
security = USER
smb passwd file = /etc/samba/smbpasswd
encrypt passwords = YES
Adesso il tipo di security è impostato su USER e quindi l’autenticazione avviene
tramite coppia di valori user/pwd.
Le altre due opzioni evidenziate servono per specificare come si trova il file delle
password e il tipo fi codifica.
[comune]
comment = comento
path = /home/comune
valid user= utente1 untene2 # elenco degli utenti ammessi alla condivisione
invalid user = utente3 utnete4 # elenco degli utenti rifiutati
writable = YES
7. Configurare SAMBA
Samba utilizza gli account Linux per identificare gli utenti ma usa un proprio file di
password per regolare l’accesso alle risorse.
smbpasswd –a utente1 #comando per creare password per l’utente1 in samba
Le coppie user/pwd utilizzate in Linux dovrebbero essere identiche a quelle usate in
Windows, in modo tale da rendere automatica l’autenticazione in fase d’accesso
alla risorsa condivisa.
8. Configurare SAMBA
[homes]
comment = caartella utente DIRECTORY UTENTE
writable = YES
browsable = NO
valid users = %S
Da un punto di vista pratico viene letto l’elenco degli utneti di Samba e vengono
automaticamente condivise le relative directory utenti.
La configurazione è molto semplice (ved. sopra).
browsable = NO # non permette la condivisione dell’oggetto.
valid users = %S # rendere accessibile la directory utente solo all’utente proprietario
9. Sicurezza di SAMBA
Ci sono alcune direttive per garantire sicurezza nelle condivisioni di samba.
Queste direttive si possono inserire a livello globale o della singola condivisione.
host allow = 127.0.0.1 192.x.x.x
host deny = 127.0.0.1 192.x.x.x
E’ bene sapere che samba risponde a tutte le richieste provenienti da tutte le
interfacce fisiche/logiche collegate la server.
E’ bene quindi specificare le interfacce d’ascolto per samba
interfaces = eth0 lo
bind interfaces = yes
follow symlinks = no #non permette link simbolici
Le porte usate da samba sono: 137, 138, 139, 445
10. LINK – LIBRI utili
www.samba.org
Libro: Linux Server per l’amministratore di rete [ISBN 978-88-503-2783-6]