Titolo Samba Autore Prof. Michele Naso Classe QUINTA INFORMATICA (5IA) Anno scolastico 2010/2011 l’Istituto Tecnico Euganeo di oggi Istituto Tecnico Euganeo di oggi Istituto Tecnico Euganeo di oggi Istituto Tecnico Euganeo di oggi è la tecnologia di domani la tecnologia di domani la tecnologia di domani la tecnologia di domani Tel. 0429.21.16 - Fax 0429.41.86 [email protected]www.itiseuganeo.it Istituto Tecnico del settore tecnologico Euganeo Via Borgofuro, 6 35042 Este (Pd) Middleware di categoria CORBA (Common Object Request Broker Architecture) Applicazione che consente la condivisione di risorse e la comunicazione tra sistemi diversi interconnessi in rete Naso Ing. Michele 2
27
Embed
Titolo Samba - ITIS Euganeo · workgroup = IBC #Assegnail dominio o il gruppo di apparteneza netbiosname= michele #Assegnaal server Samba un nome NetBios server string= Samba Server
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Titolo
SambaAutore
Prof. Michele NasoClasse
QUINTA INFORMATICA (5IA)Anno scolastico
2010/2011
llll’Istituto Tecnico Euganeo di oggi Istituto Tecnico Euganeo di oggi Istituto Tecnico Euganeo di oggi Istituto Tecnico Euganeo di oggi è la tecnologia di domanila tecnologia di domanila tecnologia di domanila tecnologia di domani
Istituto Tecnico del settore tecnologico EuganeoVia Borgofuro, 635042 Este (Pd)
Middleware di categoria CORBA
(Common Object Request Broker Architecture)
Applicazione che consente la condivisione di risorse e la comunicazione tra sistemi diversi interconnessi
in rete
Naso Ing. Michele 2
Storia in breveSamba è un’implementazione del protocollo
SMB/CIFS sviluppata a partire dal1991,dall’australiano Andrew Tridgell.
L’autore diede il nome SAMBA dopo avere eseguito il comando Linuz grep, Global Regular Expression Printer, per cercare nel vocaboloario la prima parola che contenesse in sequenza i caratteri S, M,B
La versione stabile è la 3.5.3 vi è in sviluppo la versione beta 4.0
E’ un software libero con licenza GNU GPL , GNU(la G si pronuncia gh come ghianda), Is Not Unix General Public Licence
Naso Ing. Michele 3
Architettura
Naso Ing. Michele 4
Che cos’è SMBSMB,acronimo di Server Message Block, è un protocollo
a livello applicativo per la condivisione di file, stampanti e porte seriali ed utilizza una relazione client /server
I client e i server si connettono al server utilizzando le API NetBios sfruttando i servizi forniti da TCP , Transmission Control Protoc0l, oppure UDP, UserDatagram Protocol, secondo le specifiche RFC 1001 e RFC 1002
L’unione delle API con TCP è riferita come NBT oppure NetBT ossia NetBios over TCP/IP
Naso Ing. Michele 5
SAMBA e CIFSSamba è una versione libera e gratuita di CIFS,
Common Internet File System, sviluppato da Microsoft anch’esso basato su NetBIOS per permettere la connessione a reti più estese ed eterogenee.
SAMBA gira sui sistemi Unix e Unix-like, Solaris, Le varianti BSD e su Mac OS X.
SAMBA è incluso in tutte le Distro-Linuxcome servizi di sistema base
Naso Ing. Michele 6
NetBiosNetBios è l’acronimo di NetWork Basic Input Output
System sviluppato dalla Sytek per la rete PC-IBM
Fornisce le API, Application Programming Interface, per consentire ad applicazioni in esecuzione su sistemi diversi di comunicare su una rete locale.
Quando NetBIOS gira sopra TCP/IP i sistemi hanno piùnomi: un nome NetBios di 16 caratteri, 15+1 carattere di suffisso, e un nome TCP/IP: Indirizzo IP
Naso Ing. Michele 7
Suffisso NetBIOSIl suffisso NetBIOS, 16m0 specifica il record o tipo di servizio per il nome
1C: Domain Controllor for a domain: gruppo di record fino a 25 indirizzi IP
1D: Master Browser
1E: Browser Service ElectionI numeri sono espressi in base esadecimale
Naso Ing. Michele 8
Name ServiceI nomi NetBIOS non devono essere confusi con i nomi dati
ai computer , anche se spesso coincidono,nella rete e visibili in Windows con il comando “Risorse di Reti”
La registrazione dei nomi e la conseguente ricerca può essere effettuata in due modi
Broadcast oppure utilizando un server dei nomi (NBNS, NetBios Name Service oppure WINS, Windows nameServer.
Si possono utilizzare entrambe le tecniche per questo motivo i computer devono essere configurati dall’amministratore indicando quale metodo
Naso Ing. Michele 9
Proprietà dei Nomi NetBIOSI nomi NetBIOS sono formati utilizzando i caratteri
alfanumerici ad esclusione di spazi e dei caratteri seguenti: \ / ; * ? “|
Modalità con il quale i computer risolvono l’associazione nome NetBios indirizzo IP fanno sì che ai nodi della rete
siano associate una tipol� B-Node : 0X01 Broadcast Only� P-Node: 0X02 Peer Node WINS Only� M-Node: 0X04 Mixed Broadcast prima e WINS solamente
si non si alcuna risposta al broadcast� H-Node: 0X08 Hybrid Node WINS prma e broadcast
dopo se il server non risponde
Naso Ing. Michele 10
Elezione del Master Browseravviene per nodi-b
Il protocollo di elezione prevede una scala gerarchica assegnando un numero più alto alla macchina con il S.O. più recente e di solito migliori prestazioni.
Durante il processo di start-up si elegge il Local master Browser se non esiste già uno.
Per ogni periodo di tempo compreso tra 11 e 15 minuti viene rifatta l’elezione per vedere se nuove macchine si sono collegate.
Quando un nodo b si connette per la prima volta manda un pacchetto di server announcement, in broadcast contenente il proprio nome NetBIOS assienme all’indirizzo IP. La stazione ripete la procedura per tre volte a distanza di 250 msec. Se nessuno risponde allora vuol dire che si è registrata. Il master browse riceve questo pacchetto e aggiorna la browse list, e invia la lista stessa al computer.
Se in rete esiste una macchina già registrata con quel nome questa manda un pacchetto di difesa comunicando che esiste già una macchina registrata con quel nome
Naso Ing. Michele 11
Connessione di un nodo P� La macchina confeziona il pacchetto di registrazione
in unicat al server dei nomi (WINS).
� Il server cerca se esiste già una macchina registrata con quel nome se esiste il server dei nomi invia un pacchetto di registrazione negativa
� Se non esiste alcuna macchina registrata con quel nome, il server dei nomi invia un pacchetto di registrazione positiva e la stazione è registrata con successo
Naso Ing. Michele 12
Servizi forniti da NetBIOS� Servizio di naming: registrazione e risoluzione dei
nomi
� Servizio di sessione: comunicazione orientata alla connessione (Connection Oriented)
� Datagram: comunicazione in modalità non connessa(Connectionless)
Naso Ing. Michele 13
Name Service
Per eseguire una sessione o per distribuire datagram un’applicazione deve registrare il proprio nome usando il name service. Il servizio dei nomi opera sulla porta 137 UDP e raramente sulla portta 137 TCP
Le primitive sono:
� Add Name: Registra un nome NetBios al server WINS oppure al Master Browser a seconda della configurazione
� Add Group Name: Registra un nome di gruppo NetBios
� Delete Name: Cancella un nome o un gruppo
� Find Name: Cerca un nome NetBios sulla rete
Naso Ing. Michele 14
Session ServiceIl servizio di sessione consente di stabilire una connessione consentendo
la gestione di grossi file. Consente l’individuazione e la correzione degli errori. Il servizio è offerto sulla porta 139 del TCP
Primitive� Call: Apre una connessione con un host remoto con nome NetBIOS� Listen: Si mette in ascolto per aprire una connessione� Hang Up: Chiude una connesione� Send: Invia un pacchetto alla macchina remota� Send No Ack: come sopra senza conferma (Acknowledge)� Receive: Attende la ricezione di un pacchetto inviato con la Send� Ack e e Nack: per rispondere, rispettivamente, in modo positivo o
negativo ad un pqcchetto ricevuto
Naso Ing. Michele 15
Datagram Distribuition ServiceLa modalità datagram consente l’invio di pacchetti senza aprire prima una
connessione. Ogni datagram è inviato in modo indipendente. I messaggi devono essere piccoli e l’individuazione e la correzione degli errori sono di competenza dell’applicazione. Il servizio utilizza la porta 138 del protocollo UDP.
Primitive
� Send Datagram: Per inviare un datagram ad un singolo host
� Send Broadcast Datagram: Datagram con destinatari tutti i nodi della rete.
� Receive Datagram: Attende l’arrivo di un datagram inviato con la Send Datagram
� Receive Broadcast Datagram: Attende i datagram inviati tramite la Send Broadcast Datagram
Naso Ing. Michele 16
Sicurezza� Un Workgroup è un raggruppamento logico dove il
livello di sicurezza è implementato assegnando o meno una password per l’accesso alla risorsa condivisa. Ogni amministratore di una macchina decide cosa condividere e come le risorse di sua proprietà
� Un Dominio è un modo per raggruppare un insieme di macchine e amministrare in modo centralizzato gli account
Naso Ing. Michele 17
SICUREZZASMB definisce due livelli di sicurezza
� Share Level: Ogni risorsa condivisa può avere una password e i client hanno bisogno di conoscere solamente la password per accedere alla risorsa. Questo era il primo metodo di sicurezza di SMB. Sistemi Windows for WorkGroup
� User Level: La protezione è applicata ai singoli file ed è basata sui diritti di accesso agli utenti. L’utente deve essere identificato/autenticato dal server. Quando autenticato al client è assegnato un UID che deve presentare per gli accessi successivi al server
Naso Ing. Michele 18
Installazione di SAMBA con
UBUNTU� sudo apt-get install samba
Samba si compone di due demoni
� nmbd: si occupa della risoluzione dei nomi (Servizio WINS e Master Browser List)
Il Master Browser List è scelto tra il più potente tra i PCDetta operazione non è immediata per questo deve passare un po’
di tempo prima che i pc compaiano in elenco con il comando risorse di rete
WINS è simile a DNS con la differenza che WINS non opera in reti geografiche. Se si usa un server WINS bisogna configurare i client con l’indirizzo IP del server WINS
� smbd: si occupa delle connessioni e delle operazioni di condivisione
Naso Ing. Michele 19
Attivazione e arresto dei demoni di
SAMBAI due demoni di samba, dopo la configurazione, devono
essere lanciati nel seguente ordine
1. start nmbd (in alcune distro: /etc/init.d/nmbd start)
2.start snmd (in alcune distro: /etc/init.d/ smbd start
Arresto dei demoni
1. stop smbd
2.stop nmbd
Naso Ing. Michele 20
File di configurazioneAll’avvio SAMBA legge il file di configurazione
/etc/samba/smb.conf
Pertanto prima di lanciare samba tramite i demoni occorre configurarlo correttamente.
Samba viene installato con un file di configurazione base pertanto è conveniente adattare questo file alle nostre esigenze, ovviamente è sempre meglio fare un backup
cd /etc/samba
mv smb.conf smb.conf.default
gedit smb.confNaso Ing. Michele 21
Struttura del file di configurazioneIl file di configurazione è organizzato in sezioni i cui nomi
sono racchiuse tra parentesi quadre. Ogni sezione, ad eccezione della [global] corrisponde ad una risorsa condivisa.
Sezione [global] in questa sezione s’impostano le informazioni che condizionano tutto il sistema
Sezione [homes] si regolano le cartelle degli utenti SAMBA che devono essere anche utenti del sistemi, possono avere password diverse
Sezione [printers] Consente di impostare le caratteristiche della condivisione delle stampanti installate nella macchina GNU/Linux
Naso Ing. Michele 22
Esempi di configurazione sez.
[global][global]# commenti
; commenti
# Identificazione del server
workgroup = IBC#Assegna il dominio o il gruppo di apparteneza
netbios name = michele#Assegna al server Samba un nome NetBios
server string = Samba Server Ubuntu
#Dà una descrizione dell’elaboratore
Naso Ing. Michele 23
Esempi di configurazione sez. [global]continua##opzione di rete#
hosts allow = 192.168.1.* localhost
#La direttiva allow indica quali nodi possono# accedere alla rete. In questo caso tutte le# macchine della rete 192168.1.* e al loaclhost
hosts deny = 172.16.1.254#La direttiva deny indica i nodi che non possono accedere alle# risorse condivise
interfaces = 192.168.1.1/24 172.16.244.1/16
#La direttiva interfaces dice che il servente deve essere in ascolto in tutte le # interfacce altrimente ascolta solamente su eth0
bind interfaces only = yes#Si forza il servente a rispondere alle reti corrispondenti alle interfacce indicate#l’alternativa è l’opzione no
Naso Ing. Michele 24
Esempi di configurazione sez. [global]
…continua
# opzioni per la stampa
printing = cups# permette di specificare il metodo di stampas in uso
# Common UNIX Printing System
# nel servente altro sistema della AT&T (System V) Berkley Line Printer Deamon
printing name = /etc/printcap# posizione del file printcap di configurazione delle
# stampanti
load printers = yes# carica automaticamente tutte le stampante configurate
# nel sistema senza descriverle singolarmente
show add printer wizard = yes
# Permette di fare vedere l’icona per l’aggiunta delle stampanti nella lista di
# condivisione
Naso Ing. Michele 25
Esempi di configurazione sez. [global]
…continua
# opzioni per il log
#
log file = /var/log/samba/%m# % m variabile che indica il nome della macchina
# netbios collegata
max log size = 100# dimensione del file di log delle registrazionei in KB.
# Se raggiunge la dimensione viene rinominato .old
# e reinizializzato. Se si mette zero la dimensione è infinito
log level = 3
# Livello di verbosità
Naso Ing. Michele 26
Esempi di configurazione sez. [global]
…continua
# Opzioni per l’accesso alle condivisioniencrypt passaword = yesnull password = yesguest account = utentesmbrestrict anonymous = 2security = share
; in alternativa; security = user; in questo caso aggiungere smb passwd file = /etc/samba/smbpasswd; username map = /etc/samba/smbusers; altri parametri nel caso security = server o domain; password server = SERVER_NT
Security = shareCon questo livello di sicurezza il controllo all’accesso
alla risorsa condivisa avviene tramite una password e nessun user.
Se si volesse introdurre l’accesso ad unp specifico utente
Nella sezione relativa alla sezione condivisa utilizzare l’opzione valid users = michele, pluto
Questa modalità si utilizza nel caso in cui gli utenti MS e GNU-Linux non sono coincidenti
Naso Ing. Michele 29
Security = userCon questa direttiva si ha il controllo all’accesso a livello
utente possono accedere gli utenti registrati nel sisstema con relativa user-password
Ciò è possibie grazie al sistema SAM, security account manager, basato su un archivio utenti che può essere gestito tramite un file di testo /etc/samba/smbpasswd
Oppure con archivi TBDSAM (Tiny data Base SAM) scelta predefinita con SAMBA 3
Oppure con serventi locali o remoti NIS, LDAP, MySQL
Naso Ing. Michele 30
Scelta archivio da utilizzare# Da mettere nella sez . Global
# tipo archivio utenti
passdb backend = /etc/samba/smbpasswd# oppure
; passdb backend = tdsam
; gli utenti sono aggiunti con l’utility
; smbpasswd
; gli utenti samba devono essere utenti Linux perché bisogna assegnare un proprietario ai file creati
Si può utilizzare la direttiva
username map = “file di associazione”# il file di associazione è un file di testo dove ogni riga è del tipo
; nome_linux = nome_smb1 nome_smb_2
; i file smbusers e smbpasswd devono essere accessibili in lettura e scrittura
; con i priviligi di root
Naso Ing. Michele 31
MiscellaneaCon il livello di sicurezza security = server l’accesso è
controllato come nel caso user con la differenza che l’utente è autenticato da un server esterno
Con il livello di sicurezza security = dominio
L’accesso è controllato come nel caso user , con la differenza che il servente SAMBA s’inserisce in un dominio NT sul PDC, primary domain controller, il dominio deve essere lo stesso di quello a cui si va ad aggiungere.
Con l’impostazione security = ADS, Active Directory Access, la macchina diventa un membro server di Active Directory di Windows 2000 utilizzando l’autenticazione Kerberos e LDAP per l’archivio utenti
Naso Ing. Michele 32
Configurazione della sezione [homes][homes]
comment = directory home
browseable = no
# Non visibile agli altri
writable = yes
# si possono creare file
path = /usr/local/samba/%S
# fare in modo che la directory samba non coincida con
# quella Linux per sicurezza %S variabile contenente nome utente connesso
Naso Ing. Michele 33
Configurazione della sezione [printers]
#Stampanti
[printers]
comment = stampanti
path = /var/spool/samba
# cartella contenente la coda di stampa
browseable = no
printable = yes
public = yes
writable = no
Naso Ing. Michele 34
Condivisione di una directory accessibile
solo a certi utenti[MiaDirectory]comment = Directory per le pagine personalibrowseable = yes# rende visibile la cartella agli utenti che si connettonopublic = no# Non si vuole che la cartella sia accessibile ad un utente# genericopath = /var/documenti# percorso della cartella contenente i filewritable = yes# Si possono aggiungere e modificare filevalid users = michele mario caterina giovanni# Samba ha due controlli uno generale dato dal livello di sicurezza e uno
granulare sulle singole risorse
Naso Ing. Michele 35
Condivisione di una directory
accessibile a tutti
[public]
comment = cartella pubblica
browseable = yes
guest ok = yes
path = /usr/cartellapubblica
writable = yes
Naso Ing. Michele 36
Condivisione di una directory accessibile a tutti
con i diritti di creare cancellare e modificare file
[temporanea]
comment = Cartella condivisa con tutti gli utenti
browseable = yes
guest = ok
guest only = yes
path = /var /temporanea
writable = yes
Naso Ing. Michele 37
Directory privata con permessi
preimpostatii
[privata]
comment = cartella privata
browseable = yes
path /usr/privata
writable = yes
public = no
write list = michele giovanni caterina
create mask = 0644
directory mask = 0644
Naso Ing. Michele 38
Condivisione di un CD-ROM
[cdrom]
comment = cdrom
preexec = mount /mnt/cdrom
postexec = umount /mnt/cdrom
browseable = yes
public = yes
path /mnt/cdrom
writable = no
Naso Ing. Michele 39
Altre direttiveAdmin users = michele caterina giovanni
# la direttiva concede i diritti di root agli utenti indicati
follow symlinks = no
# La direttiva impedisce di seguire i link simbolici in modo da evitare risorse non accessabile
Naso Ing. Michele 40
Programmi di utilitàDopo avere scritto o modificato il file smb.conf bisogna testarlo
con il seguente comando con i priviligi di root
# testparm /etc/samba/smb.conf
Per definire utenti e password utilizzare il comando
# smbpasswd [-a] [-x] [utente]
L’opzione –a aggiunge un utente
L’opzione -x elimina un utente
# smbstatus
Fornisce l’elenco degli utenti attualmente collegati
# smbtree
Visualizza in modo testuale la struttura delle risorse condivise
Naso Ing. Michele 41
Samba lato client
Il programma che consente la connessione di un client Linux ad un server SAMBA è smbclient
smbclient –L nome_server_samba
Fornisce l’elenco delle risorse condivise nel server
smbclient nome_servizio [ -U nome_utente]
Si connette ad un servizio, se la connessione ha successo si possono usare i comandi : get, put, pwd, cd, etc.. Cioè tutti i comandi ftp
Naso Ing. Michele 42
Samba lato client
continua
Esempio:
smbclient //server_samba/public
All posto del nome del server si può mettere l’indirizzo basta utilizzare l’opzione –I