19.8.2 Samba in dettaglio

I daemon per la gestione del protocollo SMB sono

____________________________________________________________________

Comando: nmbd
Path: /???/nmbd

SINTASSI  
# nmbd [option]  
DESCRIZIONE

_______________________________________________________________

___________________________________________________________________________________________________________

Comando: smbd
Path: /???/smbd

SINTASSI  
# nmbd [option]  
DESCRIZIONE

____________________________________________________________________

___________________________________________________________________________________________________________________

Comando: winbindd
Path: /???/winbindd

SINTASSI  
# winbindd [option]  
DESCRIZIONE

____________________________________________________________________________________________________________________

[da completare ...]

19.8.2.1 Validazione utente

Quando un utente tenta di accedere ad una risorsa condivisa da un sistema, Samba determina se esso può accedervi, secondo quanto riportato ne seguenti passi. Se la condizione controllata in un passo è soddisfatta, all’utente viene permesso l’accesso senza valutare i passi successivi (se la direttiva security è stata impostata a share e per la risorsa condivisa è stata specificata la direttiva guest only = yes i passi da 1 a 5 vengono saltati). Se nessuna condizione viene soddisfatta, all’utente viene negato l’accesso alla risorsa.

  1. Le credenziali username/password sono state inviate dal client e corrispondono a quelle di un utente sul sistema Unix-like. Allora l’accesso alla risorsa viene effettuato con l’utente in questione.
  2. Il client ha inviato la password corretta dell’utente che precedentemente è stato autenticato dal sistema Unix-like. Allora l’accesso alla risorsa viene effettuato con l’utente in questione.
  3. Il client ha inviato una password che viene associata alo username composto dal nome NetBIOS del client e dagli username da esso precedentemente forniti. Allora l’accesso alla risorsa viene effettuato con l’utente che verifica tale controllo.
  4. Il client ha inviato il token relativo ad una precedente autenticazione di un utente. Allora l’accesso alla risorsa viene effettuato con l’utente in questione.
  5. Il client ha inviato una password ed essa coincide con quella di uno degli utenti elencati nella direttiva user relativa alla risorsa (sezione all’interno del file di configurazione smb.conf). Allora l’accesso alla risorsa viene effettuato con l’utente che verifica tale controllo.
  6. Il client fornisce uno username che corrisponde a quello specificato con la direttiva guest account relativo alla risorsa a cui vuole accedere. Allora l’accesso alla risorsa viene effettuato con l’utente in questione (senza alcun controllo sulla password).

Una delle direttive più importanti presenti nel file di configurazione di Samba è security che specifica come avviene il dialogo client-server, in particolare il client, in base a tale impostazione, decide se e come inviare le credenziali di autenticazione dell’utente al server. Oltre ai livelli di sicurezza previsti da SMB, Samba ne mette a disposizione altri, ai quali si fa generalmente riferimento con il nome di security mode, riportati di seguito

È anche possibile utilizzare smbd in modalità ibrida, in maniera che offra security mode share e user con alias NetBIOS differenti.

È possibile che la password scambiata tra il client ed il server sia cifrata o meno, dipendentemente da quanto specificato dalla direttiva encrypted password. La cifratura avviene con l’algoritmo MD4 (NT hash). Le versioni più recenti di Windows non permettono lo scambio di password in chiaro.

[da completare ...]

19.8.2.2 Il file di configurazione

Il file di configurazione di Samba è /usr/local/samba/lib/smb.conf (in alcuni sistemi può essere /etc/samba/smb.conf o /usr/samba/lib/smb.conf). Esso è un file di testo la cui sintassi è analoga a quella utilizzata dai file .ini di Windows, cioè in esso possono essere presenti varie sezione, il cui nome è racchiuso tra parentesi quadre ‘[’ e ‘]’. Ogni sezione indica una risorsa da condividere, a meno delle sezioni particolari [global], [homes] e [printers] sono sezioni particolari), eccetto [global] che contiene impostazioni globali, piuttosto che relative ad una specifica risorsa (v. man page smb.conf(5)).

Le impostazioni che appaiono nelle righe successive al nome di una sezione si riferiscono alla sezione stessa e sono del tipo

 
directive=value  
dove

Le direttive che appaiono nella sezione [global] si riferiscono ad impostazioni globali o impostano dei valori di default che possono essere reimpostati nelle specifiche sezioni.

La sezione [homes] si riferisce alle home directory degli utenti presenti sul sistema, facendo in modo che Samba crei automaticamente una risorsa condivisa con il nome dell’utente.

All’interno di tale sezione può essere utile usare la macro %S per specificare eventualmente un path diverso per la directory da condividere. Ad esempio

 
path = /data/pchome/%S  
La sezione [printers] viene utilizzata per le stampanti in maniera analoga a [homes], cioè Samba in questo modo permette la connessione ad una qualunque stampante definita sul sistema.

Il file smb.conf contiene le direttive alle quali fanno riferimento i daemon sopra elencati e può essere modificato sia manualmente che per mezzo di interfacce grafiche, come SWAT (Samba Web Administration Tool) (v. man page swat(8)), raggiungibile sulla porta 901 (es. http://localhost:901).

Un file minimale di configurazione di Samba può contenere le seguenti impostazioni

 

[global]
workgroup = MyGroup
netbios name = MyHost
[share1]
path = /shared
comment = Shared files
 
[da completare ...]

È possibile controllare la correttezza del file di configurazione con il comando

 
# testparm /etc/samba/smb.conf  
Per elencare le risorse condivise da una macchina si può utilizzare il comando

 
$ smbclient -L hostname  
Per collegarsi ad una risorsa da un sistema Unix-like, è possibile utilizzare il comando

 
$ smbclient //hostname/resource  
[da completare ...]