## Configurare SAMBA

Il server SAMBA si configura attraverso la modifica del file `/etc/samba/smb.conf` che consente di aggiungere o cambiare le impostazioni predefinite. Nei commenti del file `/etc/samba/smb.conf` è possibile trovare altri dettagli sulla configurazione oppure consultando il manuale di `/etc/samba/smb.conf` digitando il seguente comando:

    man smb.conf

Prima di modificare il file di configurazione, è consigliato creare una copia del file originale e proteggerla dalla scrittura, in modo da mantenere le impostazioni originali a disposizione come riferimento e per il riuso secondo necessità.

Fare una copia di backup del file `/etc/samba/smb.conf`:

    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

Ora, aprire il file `/etc/samba/smb.conf` e apportare i cambiamenti desiderati.

### Server

In aggiunta alla suite SAMBA per la gestione di un server, con tutte le sue applicazioni, Ubuntu offre altre potenti applicazioni per aumentare le funzionalità dei servizi offerti ai client Windows, molto simili a quelli offerti dai server Windows. Ubuntu offre la gestione centralizzata delle risorse della rete con Directory Services e facilita l'identificazione e l'autorizzazione di computer o utenti mediante Authentication Serivces.

Le seguenti sezioni trattano in dettaglio di SAMBA e delle tecnologie di supporto, quali server LDAP (Lightweight Directory Access Protocol) e server d'autenticazione Kerberos. Sono esposte anche alcune delle direttive di configurazione disponibili nel file di configurazione di SAMBA che possono facilitare l'integrazione in rete con client e server Windows.

#### Active Directory

Active Directory è un'implementazione proprietaria di Microsoft di Directory Services in grado di fornire i mezzi necessari a condividere le informazioni sugli utenti e sulle risorse della rete. Oltre a offrire una sorgente centralizzata per queste informazioni, Active Directory agisce come autorità centrale per l'autenticazione nella rete. Active Directory combina le funzionalità di servizi di directory specializzati, in modo tale da semplificare l'integrazione, la gestione e la sicurezze delle risorse di rete. La suite SAMBA può essere configurata per utilizzare i servizi di Active Directory forniti da un Windows Domain Controller.

##### LDAP

Il server LDAP fornisce, in maniera molto simile ai servizi Microsoft Active Directory, le funzionalità dei Directory Services ai computer Windows: questi servizi forniscono i mezzi per descrivere, localizzare e gestire le risorse della rete. L'implementazione libera di LDAP disponibile in Ubuntu, si chiama OpenLDAP. I demoni del server, responsabili della gestione delle richieste di directory OpenLDAP e della distribuzione dei dati custoditi in un server LDAP in un altro sistema Ubuntu, si chiamano slapd e slurpd. OpenLDAP può essere utilizzato in combinazione con SAMBA per fornire Directory Services e la condivisione di file e stampanti, più o meno nello stesso modo con il quale un Windows Domain Controller interagisce con un server SAMBA compilato con il supporto LDAP.

##### Kerberos

Il sistema standard di autenticazione Kerberos è un servizio che fornisce autenticazione ai computer e agli utenti. Il servizio viene fornito attraverso un server centralizzato di autenticazione che garantisce biglietti d'accesso cifrati e accettati dai sistemi che operano con Kerberos. I benefici offerti da Kerberos sono la reciproca autenticazione, un'autenticazione per delega, interoperabilità e una gestione semplificata delle credenziali. I demoni principali in Ubuntu per la gestione dell'autenticazione Kerberos e l'amministrazione del database sono krb5kdc e kadmin. SAMBA può utilizzare Kerberos quale meccanismo di autenticazione dei computer e degli utenti in un ambiente controllato da un Windows Domain Controller. Per poter fare questo, il sistema Ubuntu deve avere installato Kerberos e il file `/etc/samba/smb.conf` deve essere predisposto per selezionare i corretti realm e security. Modificare, per esempio, `/etc/samba/smb.conf` aggiungendo i valori:

realm = NOME_DOMINIO

security = ADS

al file e quindi salvarlo.

Assicurarsi di sostituire il token NOME_DOMINIO, utilizzato nell'esempio precedente, con il nome del dominio Windows.

Per rendere effettivi i cambiamenti apportati, è necessario riavviare i demoni SAMBA. Per riavviare i demoni SAMBA, inserire in un terminale il seguente comando:

    sudo /etc/init.d/samba restart

#### Account computer

Nei Directory Services gli account del computer sono utilizzati per identificare univocamente i computer presenti nella rete. Dal punto di vista della sicurezza sono trattati come degli account utente, pertanto possono avere delle password e sono soggetti ad autorizzazioni per l'accesso alle risorse di rete. Per esempio, se un utente con un account valido tenta di accedere a una risorsa da un computer che non possiede un account valido, a seconda delle politiche di sicurezza applicate, l'accesso alla risorsa potrebbe essere negato se il computer, dal quale l'utente sta effettuando l'autenticazione, non possiede le necessarie autorizzazioni.

Un account del computer può essere aggiunto al database degli account di SAMBA fornendo il nome del computer, purché questo non sia già presente come account utente. Per aggiungere un account del computer al database degli account di SAMBA, utilizzare, in un terminale, il comando smbpasswd:

    sudo smbpasswd -a -m NOME_COMPUTER

Assicurarsi di sostituire il token NOME_COMPUTER, utilizzato nell'esempio precedente, con il nome del computer per il quale si vuole creare un account.

#### Permessi dei file

I permessi di accesso ai file indicano esplicitamente le operazioni consentite a un computer o a un utente su una particolare directory, un determinato file oppure un insieme di file. Questi permessi possono essere definiti modificando il file `/etc/samba/smb.conf` e specificando i permessi per una condivisione. Ad esempio, se l'utente ha definito una condivisione SAMBA chiamata sourcedocs e desidera concedere i permessi di sola lettura al gruppo pianificazione, concedendo però i permessi di scrittura al gruppo autori e all'utente mario, è necessario modificare il file `/etc/samba/smb.conf`, aggiungendo le seguenti righe al di sotto di [sourcedocs]:

read list = @pianificazione

write list = @autori, mario

Salvare il file `/etc/samba/smb.conf` affinché i cambiamenti abbiano effetto.

È inoltre possibile concedere permessi amministrativi per una particolare risorsa condivisa. Gli utenti che possiedono permessi amministrativi possono leggere, scrivere o modificare tutte le informazioni della risorsa per la quale hanno ottenuto i permessi. Per esempio, se si desidera concedere all'utente melissa i permessi amministrativi sulla condivisione sourcedocs, è necessario modificare il file `/etc/samba/smb.conf` aggiungendo le seguenti righe al di sotto di [sourcedocs]:

admin users = chiara

Salvare il file `/etc/samba/smb.conf` affinché i cambiamenti abbiano effetto.

### Client

Ubuntu include funzionalità e applicazioni client per accedere alle risorse di rete condivise attraverso il protocollo SMB. Per esempio, mediante l'applicazione smbclient, è possibile accedere a file system remoti condivisi , come con un client FTP (File Transfer Protocol). Per accedere alla cartella condivisa documenti, nel computer remoto Windows denominato bill utilizzando smbclient, è sufficiente digitare al prompt dei comandi:

    smbclient //mario/documenti -U <nomeutente>

Viene in seguito richiesta la password per l'utente specificato dopo l'argomento «-U». Dopo l'avvenuta autenticazione, viene presentato un prompt dove è possibile inseriti i comandi per manipolare e trasferire i file con una sintassi simile a quella usata dai client FTP non grafici. Per maggiori informazioni sul programma smbclient, consultare il relativo manuale con il comando:

    man smbclient

Tramite il programma smbfs è anche possibile montare localmente le risorse di una rete remota usando il protocollo SMB.

Per montare sul proprio sistema Ubuntu, nel punto di mount «/mnt/pcode» (il punto di mount scelto deve essere una cartella vuota), una cartella condivisa di nome codice-progetto presente su un server Windows chiamato sviluppo come l'utente mario, digitare questo comando:

    sudo mount -t smbfs -o username=mario //sviluppo/codice-progetto /mnt/pcode

Viene richiesta la password dell'utente e, se l'autenticazione ha avuto successo, il contenuto della risorsa condivisa è disponibile, localmente, nel punto di mount specificato come ultimo argomento del comando di mount. Per scollegare la risorsa condivisa è sufficiente utilizzare il comando umount, come per ogni altro file system montato. Per esempio:

    sudo umount /mnt/pcode

#### Account utente

Gli account utenti definiscono gli utenti e il livello di autorizzazione all'utilizzo di un computer o delle risorse di rete concessi a quell'utente. È normale che in una rete ogni utente abbia un proprio account con cui vengono definiti i diritti e i permessi di accesso alle risorse. La definizione degli utenti SAMBA nel server Ubuntu avviene tramite l'uso di smbpasswd. Per esempio, per aggiungere un utente SAMBA al server Ubuntu, assegnandogli il nome rbenigni, da terminale digitare:

    sudo smbpasswd -a rbenigni

L'applicazione smbpasswd chiederà di inserire una password per l'utente:

`Nuova password SMB:`

È necessario digitare la password da assegnare al nuovo utente, l'applicazione smbpasswd ne chiederà la conferma:

`Ridigitare la nuova password SMB:`

Confermata la nuova password, smbpasswd aggiungerà una nuova voce per l'utente nel file delle password di SAMBA.

#### Gruppi

I gruppi definiscono un insieme di computer e utenti che godono dei medesimi privilegi di accesso alle risorse condivise. I gruppi offrono un alto livello di controllo degli accessi alle risorse. Per esempio, se il gruppo qa contiene gli utenti freda, danika e rob e viene definito il secondo gruppo support che contiene gli utenti danika, jeremy e vincent, allora alcune risorse di rete impostate per concedere l'accesso al gruppo qa concedono automaticamente l'accesso anche agli utenti freda, danika e rob, mentre lo negano a jeremy o vincent. Dal momento che l'utente danika è membro di entrambi i gruppi qa e support potrà accedere a tutte le risorse condivise il cui accesso è stato concesso a entrambi i gruppi, gli altri utenti avranno accesso alle risorse esplicitamente assegnate al gruppo di appartenenza.

Nella definizione dei gruppi nel file di configurazione di SAMBA `/etc/samba/smb.conf`, è necessario far precedere il nome del gruppo dal simbolo «@». Per definire un gruppo chiamato sysadmin in una certa sezione del file `/etc/samba/smb.conf` bisogna inserire il nome del gruppo come @sysadmin.

#### Politiche di gruppo

Le politiche di gruppo definiscono alcuni parametri della configurazione di SAMBA relativi al Dominio o al Gruppo di lavoro a cui appartengono degli account e ad altri parametri globali di configurazione del server di SAMBA. Se, per esempio, un server SAMBA appartiene a un Gruppo di lavoro Windows denominato LEVELONE, il file `/etc/samba/smb.conf` può essere modificato con il valore seguente:

workgroup = LEVELONE

Riavviare il demone SAMBA affiché le modifiche abbiano effetto.

Altri importanti parametri di configurazione includono server string che definisce il nome del server NETBIOS dichiarato dal sistema Ubuntu alle altre macchine della rete Windows. Questo è il nome del sistema Ubuntu riconosciuto dai client Windows e dagli altri computer in grado di navigare con il protocollo SMB. È possibile specificare il nome e la posizione del file di log del server SAMBA utilizzando la direttiva log file all'interno del file `/etc/samba/smb.conf`.

Alcune delle direttive che governano le politiche globali del gruppo includono dettagli della natura globale delle risorse condivise. Per esempio, inserendo alcune direttive al di sotto della sezione [global] nel file `/etc/samba/smb.conf`, queste influenzeranno tutte le relative risorse condivise fino a quando un'altra direttiva primaria non ne annulli l'effetto. È quindi possibile stabilire che tutte le risorse siano esplorabili dai client della rete collocando una direttiva browseable, che prevede un argomento booleano, sotto l'intestazione [global] del file `/etc/samba/smb.conf`. Quindi aggiungendo la riga:

browseable = true

sotto la sezione [global] del file `/etc/samba/smb.conf`, tutte la risorse condivisibili, fornite dal sistema Ubuntu attraverso SAMBA, saranno esplorabili dai client autorizzati, a meno che una specifica risorsa non contenga una direttiva browseable = false che scavalca le disposizioni impartite dalla direttiva globale.

Altri esempi di direttive che operano in maniera simile alla precedente sono public e writeable. La direttiva public accetta un valore booleano per decidere se una particolare risorsa condivisa sia visibile a tutti i client autorizzati. Anche la direttiva writeable accetta un valore booleano per decidere se una particolare risorsa condivisa possa essere modificata o meno dai client della rete.

Installare SAMBA |  |