Documentazione di Ubuntu → Ubuntu 10.04 → Guida a Ubuntu server → Reti Windows → Sicurezza di un server di file e di stampa Samba

## Sicurezza di un server di file e di stampa Samba

### Modalità di sicurezza di Samba

Esistono due livelli di sicurezza disponibili al protocollo CIFS (Common Internet Filesystem): a livello utente e a livello condivisione. L'implementazione della modalità di sicurezza di Samba consente una maggiore flessibilità, fornendo quattro modi per implementare la sicurezza a livello utente e uno per quella a livello condivisione.

- security = user: richiede a client di fornire nome utente e password per collegarsi alla condivisione. Gli account di Samba sono separati da quelli di sistema, ma il pacchetto libpam-smbpass consente di sincronizzare utenti e password con il database degli utenti di Samba.

- security = domain: questa modalità consente al server Samba di apparire ai client Windows come «Primary Domain Controller» (PDC), «Backup Domain Controller» (BDC) oppure «Domain Member Server» (DMS). Per maggiori informazioni, consultare la sezione chiamata «Samba come controller di dominio».

- security = ADS: consente al server Samba di unirsi a un dominio «Active Directory» come membro nativo. Per maggiori informazioni, consultare la sezione chiamata «Integrare Samba con Active Directory».

- security = server: questa modalità non dovrebbe essere usata per motivi di sicurezza. Per maggiori informazioni, consultare la sezione Server Security della guida di Samba.

- security = share: consente ai client di collegarsi alle condivisioni senza fornire nome utente e password.

La modalità di sicurezza scelta dipende dal proprio ambiente di lavoro e da cosa si vuole ottenere col server Samba.

### Livello di sicurezza utente

Questa sezione spiega come riconfigurare i server di file e di stampa Samba, come spiegato in la sezione chiamata «Server di file Samba» e la sezione chiamata «Server di stampa Samba», affinché richieda l'autenticazione.

Per prima cosa, installare il pacchetto libpam-smbpass che consente di sincronizzare gli utenti di sistema col database degli utenti di Samba:

    sudo apt-get install libpam-smbpass

Se è stato scelto il task Server Samba durante l'installazione, il pacchetto libpam-smbpass è già installato.

Aprire il file `/etc/samba/smb.conf` e nella sezione [share] modificare:

        guest ok = no

Riavviare Samba affinché le nuove impostazioni abbiano effetto:

    sudo /etc/init.d/samba restart

Ora, collegandosi alle directory o alle stampanti condivise, verranno richiesti il nome utente e la password.

Se si sceglie di mappare un drive di rete alla condivisione, selezionare la casella di spunta «Reconnect at Logon» affinché sia possibile inserire nome utente e password solo una volta, almeno finché la password non viene cambiata.

### Livello di sicurezza condivisione

Ci sono diverse opzioni disponibili per aumentare la sicurezza di ogni singola directory condivisa. Facendo uso dell'esempio [share], questa sezione illustra alcune di queste opzioni.

#### Gruppi

I gruppi definiscono un insieme di computer e utenti che godono dei medesimi privilegi di accesso alle risorse condivise, offrendo un alto livello di controllo di questi accessi. 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.

Samba, in modo predefinito, controlla i gruppi di sistema locali definiti in `/etc/group` per determinare quali utenti appartengono a quali gruppi. Per maggiori informazioni su come aggiungere o rimuovere gruppi, consultare la sezione chiamata «Aggiungere e rimuovere utenti».

Quando si definiscono i gruppi nel file di configurazione di Samba, `/etc/samba/smb.conf`, la sintassi predefinita è quella di usare il prefisso "@" col nome del gruppo. Per esempio, per definire il gruppo sysadmin in una sezione del file `/etc/samba/smb.conf`, bisogna inserire il nome del gruppo come @sysadmin.

#### Permessi dei file

I permessi dei file definiscono i diritti che un computer o un utente ha su una particolare directory, file o insieme di file. Tali permessi possono essere definiti modificando il file `/etc/samba/smb.conf` e specificando i permessi di una condivisione definita.

Per esempio, se è stata definita una condivisione Samba chiamata share e si vuole dare il permesso di sola lettura al gruppo di utenti conosciuto come qa, ma si vuole concedere permesso di scrittura sulla condivisione al gruppo sysadmin e all'utente vincent, modificare il file `/etc/samba/smb.conf` e aggiungere quanto segue al di sotto della sezione [share]:

        read list = @qa
        write list = @sysadmin, vincent

Un altro possibile permesso con Samba consente di usare i permessi amministrativi su una particolare risorsa condivisa. Gli utenti con permessi amministrativi possono leggere, scrivere o modificare qualsiasi informazione all'interno della risorsa per cui sono stati abilitati.

Per esempio, per concedere all'utente melissa permessi amministrativi all'interno dell'esempio share, modificare il file `/etc/samba/smb.conf` e aggiungere quanto segue al di sotto della sezione [share]:

        admin users = melissa

Modificato il file `/etc/samba/smb.conf`, riavviare Samba affinché le modifiche abbiano effetto:

    sudo /etc/init.d/samba restart

Affinché read list e write list funzionino, il modello di sicurezza di Samba non deve essere impostato a security = share

Ora che Samba è stato configurato per limitare quali gruppi hanno accesso alla directory condivisa, è necessario aggiornare i permessi del file system.

Il sistema dei permessi sui file di Linux non funziona correttamente con le ACL (Access Control List) di Windows NT. In questi casi, nei server Ubuntu, sono disponibili le ACL POSIX che forniscono un controllo più fine. Per esempio, per abilitare le ACL su `/srv` con file system ext3, modificare il file `/etc/fstab` aggiungendo l'opzione acl:

    UUID=66bcdd2e-8861-4fb0-b7e4-e61c569fe17d /srv  ext3    noatime,relatime,acl 0       1

Quindi montare nuovamente la partizione:

    sudo mount -v -o remount /srv

L'esempio precedente assume che `/srv` sia in una partizione separata. Se `/srv` o qualsiasi sia il percorso di condivisione, fa parte della partizione `/`, potrebbe essere necessario riavviare il sistema.

Per uguagliare la configurazione precedente di Samba, al gruppo sysadmin devono essere dati i permessi di lettura, scrittura e di esecuzione su `/srv/samba/share`, al gruppo qa devono essere dati i permessi di lettura ed esecuzione e i file devono essere di proprietà del nome utente melissa. In un terminale, digitare quanto segue:

    sudo chown -R melissa /srv/samba/share/
    sudo chgrp -R sysadmin /srv/samba/share/
    sudo setfacl -R -m g:qa:rx /srv/samba/share/

Il comando setfacl imposta i permessi di esecuzione a tutti i file nella directory `/srv/samba/share`. Nel caso non sia desiderato, non eseguire il comando.

Da un client Windows ora dovrebbe essere possibile notare la nuova implementazione dei permessi dei file. Per maggiori informazioni riguardo le ACL POSIX, consultare le pagine di manuale di acl e setfacl.

### Profilo AppArmor Samba

Ubuntu è dotato del modulo di sicurezza AppArmor, che fornisce un controlli di acceso. Il profilo predefinito di AppArmor per Samba deve essere adattato alla propria configurazione. Per maggiori informazioni sull'uso di AppArmor, consultare la sezione chiamata «AppArmor».

All'interno del pacchetto apparmor-profiles sono disponibili dei profili predefiniti di AppArmor per `/usr/sbin/smbd` e `/usr/sbin/nmbd`, i binari dei demoni di Samba. Per installare il pacchetto, da un terminale digitare:

    sudo apt-get install apparmor-profiles

Questo pacchetto contiene profili per molti altri binari.

I profili per smbd e nmbd sono, in modo predefinito, nella modalità complain, consentendo a Samba di lavorare senza dover modificare il profilo e registrando solamente gli errori. Per impostare il profilo smbd in modalità enforce e per far funzionare Samba come di consueto, il profilo deve essere modificato per rispecchiare le directory da condividere.

Modificare il file `/etc/apparmor.d/usr.sbin.smbd` aggiungendo informazioni alla sezione [share] dall'esempio del server di file:

      /srv/samba/share/ r,
      /srv/samba/share/** rwkix,

Ora impostare il profilo in modalità enforce e ricaricarlo:

    sudo aa-enforce /usr/sbin/smbd
    cat /etc/apparmor.d/usr.sbin.smbd | sudo apparmor_parser -r

Dovrebbe essere possibile leggere, scrivere ed eseguire i file nella directory condivisa come di consuetudine e il binario smbd dovrebbe avere accesso solo ai file e le directory configurati. Assicurarsi di aggiungere una voce per ogni directory che viene configurata alla condivisione. Tutti gli errori verranno registrati in `/var/log/syslog`.

### Risorse

- Per delle configurazioni più dettagliate riguardo Samba, consultare Samba HOWTO Collection

- La guida è disponibile anche in formato cartaceo.

- Il libro Using Samba di O'Reilly è un'altra buona lettura.

- Il capitolo 18 della «Samba HOWTO Collection» è dedicato alla sicurezza.

- Il libro Using Samba di O'Reilly è un'altra buona lettura.

- The Ubuntu Wiki Samba page.

Server di stampa Samba |  | Samba come controller di dominio