128
contributi
mNessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
=Introduzione= | |||
Samba e' un diffusissimo software open source ideato nel 1991 da Andrew Tridgell e rilasciato sotto licenza GPL che permette la condivisione di risorse come directory e stampanti tra macchine windows e GNU/Linux (''UNIX''); si avvale sostanzialmente del protocollo SMB (''server message block'') originario microsoft e basato a sua volta sul protocollo NetBios (''network basic input output system'') sviluppato da IBM nel 1984. | Samba e' un diffusissimo software open source ideato nel 1991 da Andrew Tridgell e rilasciato sotto licenza GPL che permette la condivisione di risorse come directory e stampanti tra macchine windows e GNU/Linux (''UNIX''); si avvale sostanzialmente del protocollo SMB (''server message block'') originario microsoft e basato a sua volta sul protocollo NetBios (''network basic input output system'') sviluppato da IBM nel 1984. | ||
Si sceglie solitamente l'uso di Samba per poter condividere file e stampanti in una rete mista (''macchine GNU/Linux, windows, mac os..''), in modo da sfruttare un unico protocollo e un unico sistema di autenticazione. | Si sceglie solitamente l'uso di Samba per poter condividere file e stampanti in una rete mista (''macchine GNU/Linux, windows, mac os..''), in modo da sfruttare un unico protocollo e un unico sistema di autenticazione. | ||
=La suite= | |||
Analizziamo i programmi che otteniamo dall' installazione della suite samba per Debian GNU/Linux: | Analizziamo i programmi che otteniamo dall' installazione della suite samba per Debian GNU/Linux: | ||
Riga 10: | Riga 10: | ||
In breve: | In breve: | ||
;'''smbd''': questo demone e' sostanzialmente il cuore di samba; in ascolto sulla 445/tcp, gestisce le autenticazioni e da accesso ai filesystem e allo spooler di stampa. | |||
;'''nmbd''': questo demone in ascolto sulla 139/udp, rende note le risorse condivise tutte le volte che viene interrogato dai client. Per fare un esempio � quel demone che permette la visualizzazione dei serventi samba in Risorse di Rete nei sistemi ms-windows. E' il primo ad avviarsi dei due demoni. | |||
;'''smbclient''': programma client a riga di comando simile a ftp (''smbclient trasferisce solo in binary mode''), dotato di diverse funzioni; tra le piu' importanti, quella di elencare le risorse messe in condivisione dai vari server samba in una rete. | |||
;'''smbmount''' & '''smbumount''': utilizzati per montare/smontare filesystem condivisi. | |||
;'''smbpasswd''': strumento per la creazione utenti samba. Un utente samba dovra' essere anche un utente presente sulla macchina. | |||
;'''testparm''': strumento per la verifica del file '''/etc/samba/smb.conf. | |||
;'''nmblookup''': risolve i nomi host di un domain samba (''NetBIOS name'') in indirizzi ip (es: nmblookup ''nomehost''). | |||
=Configurazione del server= | |||
==Sezione global== | |||
Editiamo il file '''/etc/samba/smb.conf'''. | Editiamo il file '''/etc/samba/smb.conf'''. | ||
<pre> | <pre> | ||
Riga 38: | Riga 38: | ||
Con la sezione global all'interno del file smb.conf abbiamo settato quei parametri che saranno il modello generale di tutte le eventuali sezioni che verranno. | Con la sezione global all'interno del file smb.conf abbiamo settato quei parametri che saranno il modello generale di tutte le eventuali sezioni che verranno. | ||
Ad esempio se nella successiva sezione, non specificassimo il parametro '''allow hosts''', verra' preso come riferimento 192.168.1.0/24. | Ad esempio se nella successiva sezione, non specificassimo il parametro '''allow hosts''', verra' preso come riferimento '''192.168.1.0/24'''. | ||
ok, in breve: | ok, in breve:<br> | ||
'''allow hosts''' = range di ip ai quali e' permesso l'accesso alla risorsa<br> | |||
'''workgroup''' = nome del gruppo di lavoro<br> | |||
'''server string''' = stringa che identifica il server<br> | |||
'''browsable''' = rende visibile lo share<br> | |||
'''create mask''' = determina i permessi dei file in condivisione<br> | |||
Questi sono solo pochissimi parametri. Potrete trovarli tutti a questa pag. tratta dal sito ufficiale di [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba]. | Questi sono solo pochissimi parametri. Potrete trovarli tutti a questa pag. tratta dal sito ufficiale di [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba]. | ||
==Condivisione di una directory== | |||
Adesso sempre dentro il nostro smb.conf, creiamo la sezione specifica per la risorsa che vogliamo condividere. In questo esempio condivideremo una directory. | Adesso sempre dentro il nostro smb.conf, creiamo la sezione specifica per la risorsa che vogliamo condividere. In questo esempio condivideremo una directory. | ||
<pre> | <pre> | ||
Riga 60: | Riga 60: | ||
</pre> | </pre> | ||
Altri parametri: | Altri parametri:<br> | ||
'''comment''' = commento per la directory<br> | |||
'''path''' = percorso della dir condivisa<br> | |||
'''public''' = rende la dir di libero accesso<br> | |||
'''read only''' = setta i files della dir condivisa in sola lettura<br> | |||
==Condivisione di una stampante== | |||
Adesso analizziamo i parametri da aggiungere al file '''smb.conf''' per poter condividere una stampante. | Adesso analizziamo i parametri da aggiungere al file '''smb.conf''' per poter condividere una stampante. | ||
Aggiungiamo alla sezione '''global''': | Aggiungiamo alla sezione '''global''': | ||
Riga 93: | Riga 93: | ||
Ok, a questo punto il file puo' considerarsi sufficientemente configurato per i nostri scopi. | Ok, a questo punto il file puo' considerarsi sufficientemente configurato per i nostri scopi. | ||
==Autenticazione== | |||
Preoccupiamoci ora dell'accesso vero e proprio alla directory messa in condivisione. Possiamo creare un utente samba con smbpasswd, tenendo presente che un utente samba deve anche essere un utente presente sulla macchina; attribuendogli poi una password di nostra scelta: | Preoccupiamoci ora dell'accesso vero e proprio alla directory messa in condivisione. Possiamo creare un utente samba con smbpasswd, tenendo presente che un utente samba deve anche essere un utente presente sulla macchina; attribuendogli poi una password di nostra scelta: | ||
Riga 129: | Riga 129: | ||
<pre>Loaded services file OK.</pre> | <pre>Loaded services file OK.</pre> | ||
=Lato client= | |||
==Smbclient== | |||
Spostiamoci sul client: | Spostiamoci sul client: | ||
<pre># apt-get install smbfs</pre> | <pre># apt-get install smbfs</pre> | ||
Riga 136: | Riga 136: | ||
Come detto in precedenza, smbclient e' un programma client ftp-like, utilizzato per l'accesso a un server samba. Guardiamo i suoi principali flags e le sue principali funzioni invece, una volta dentro al server. | Come detto in precedenza, smbclient e' un programma client ftp-like, utilizzato per l'accesso a un server samba. Guardiamo i suoi principali flags e le sue principali funzioni invece, una volta dentro al server. | ||
===Principali flags=== | |||
''Usare smbclient --help per uno screen completo:'' | ''Usare smbclient --help per uno screen completo:'' | ||
;'''smbclient -L ''hostname''''': lista tutti gli share di un determinato host. Ad esempio, dal nostro client facciamo richiesta di listare gli share del server (''come password digitiamo quella dell'user creato con smbpasswd o solo invio''): | |||
<pre> | <pre> | ||
$ smbclient -L SERVER | $ smbclient -L SERVER | ||
Riga 148: | Riga 148: | ||
Sharename Type Comment | Sharename Type Comment | ||
--------- ---- ------- | --------- ---- ------- | ||
shared | shared Disk Directory Shared | ||
camon | camon Disk Camon Printer | ||
IPC$ | IPC$ IPC IPC Service (server@debianizzati.org) | ||
ADMIN$ | ADMIN$ IPC IPC Service (server@debianizzati.org) | ||
Domain=[debianizzati] OS=[Unix] Server=[Samba 3.0.14a-Debian] | Domain=[debianizzati] OS=[Unix] Server=[Samba 3.0.14a-Debian] | ||
Riga 157: | Riga 157: | ||
Server Comment | Server Comment | ||
--------- ------- | --------- ------- | ||
SERVER | SERVER server@debianizzati.org | ||
CLIENT | CLIENT server@debianizzati.org | ||
Workgroup Master | Workgroup Master | ||
--------- ------- | --------- ------- | ||
debianizzati | debianizzati SERVER | ||
</pre> | </pre> | ||
Riga 169: | Riga 169: | ||
C'e' poi la colonna '''Workgroup''' che visualizza l'host con ruolo di domain master browser nella subnet. | C'e' poi la colonna '''Workgroup''' che visualizza l'host con ruolo di domain master browser nella subnet. | ||
;'''smbclient -U''': Con questo flag possiamo specificare l'username e l'eventule password per il login sulla macchina server. | |||
;'''smbclient -A''': Sostanzialmente uguale a -U ma possiamo dargli il path di un file dal quale attingere l'username e la password. | |||
===Accesso al server=== | |||
<pre> | <pre> | ||
$ smbclient //SERVER/shared | $ smbclient //SERVER/shared | ||
Riga 205: | Riga 205: | ||
Il file sara' salvato nella directory dalla quale ci siamo connessi al server. Qualora il file non venisse rinominato manterrebbe il proprio nome. | Il file sara' salvato nella directory dalla quale ci siamo connessi al server. Qualora il file non venisse rinominato manterrebbe il proprio nome. | ||
=== | ===Alcune funzioni=== | ||
;'''lowercase''': abilita i files ad essere richiamati da get e mget utilizzando solo caratteri minuscoli. E' utile viste le difficolta' spesso trovate negli share msdos (''case insensitive''). | |||
<pre> | <pre> | ||
es. di abilitazione dei parametri | es. di abilitazione dei parametri | ||
Riga 212: | Riga 212: | ||
smb: \> prompt on | smb: \> prompt on | ||
</pre> | </pre> | ||
;'''prompt''': Impostando ''' prompt''' su '''on''' prima di ogni trasferimento ci verra' richiesta una conferma. | |||
;'''showconnect''': mostra l' //host/nome_risorsa in uso. | |||
<pre> | <pre> | ||
smb: \> showconnect | smb: \> showconnect | ||
Riga 219: | Riga 219: | ||
</pre> | </pre> | ||
;'''stat nomefile''': Stampa a video i permessi di un file e offre in ordine temporale info sugli accessi ad esso: | |||
<pre> | <pre> | ||
smb: \> stat free_kevin.png | smb: \> stat free_kevin.png | ||
Riga 231: | Riga 231: | ||
</pre> | </pre> | ||
===Mask, mget e recurse=== | |||
Con il comando '''mget''' abilitiamo il dowload di tutti i file e directory in maniera ricorsiva. Tuttavia possiamo dare a tale comando un parametro (maschera) utilizzando '''mask''' . | Con il comando '''mget''' abilitiamo il dowload di tutti i file e directory in maniera ricorsiva. Tuttavia possiamo dare a tale comando un parametro (maschera) utilizzando '''mask''' . | ||
Es. nella nostra directory mettiamo di voler scaricare tutti i file con estensione .png: | Es. nella nostra directory mettiamo di voler scaricare tutti i file con estensione .png: | ||
Riga 246: | Riga 246: | ||
La funzione '''recurse on''' attiva lo scanning & downloading (nel caso di una maschera) o il dowloading, accedendo anche a tutte le directory presenti nella dir da cui parte il comando. | La funzione '''recurse on''' attiva lo scanning & downloading (nel caso di una maschera) o il dowloading, accedendo anche a tutte le directory presenti nella dir da cui parte il comando. | ||
==Smbmount & Smbumount== | |||
Con '''smbmount''' invece montiamo una risorsa in un mountpoint a nostra scelta. | Con '''smbmount''' invece montiamo una risorsa in un mountpoint a nostra scelta. | ||
Montiamo la risorsa shared col comando: | Montiamo la risorsa shared col comando: |
contributi