Server Samba Reti Windows Sommario Introduzione Installare SAMBA Configurare SAMBA Server Client Spesso le reti di computer sono costituite da sistemi eterogenei e, sebbene gestire una rete composta interamente da computer con Ubuntu sarebbe certamente divertente, alcuni ambienti di rete debbono essere costituiti da sistemi Ubuntu e Microsoft® Windows® che operano insieme in armonia. Questa sezione della guida di Ubuntu introduce i principi e gli strumenti utilizzati nella configurazione di un server Ubuntu per la condivisione di risorse di rete con computer Windows. Introduzione Utilizzare Ubuntu in una rete composta da client Windows significa fornire e integrare i servizi tipici degli ambienti Windows. Questi servizi offrono supporto per la condivisione di dati e informazioni riguardo i computer e gli utenti della rete e possono essere classificati, in base alle loro funzionalità, in tre principali categorie: Servizi per la condivisione di file e stampanti. Utilizzo del protocollo SMB (Server Message Block) per agevolare la condivisione di file, cartelle, volumi e stampanti attraverso la rete. Servizi di directory. Condivisione di informazioni vitali sui computer e sugli utenti della rete con l'uso di tecnologie come LDAP (Lightweight Directory Access Protocol) e Microsoft Active Directory®. Autenticazione e accesso. Stabilire l'identità del computer o dell'utente della rete e determinare quali risorse siano accessibili al computer o all'utente tramite i permessi e i privilegi, utilizzando permessi dei file, politiche di gruppo e il servizio di autenticazione Kerberos. Fortunatamente, i sistemi Ubuntu sono in grado di fornire queste funzionalità ai client Windows, permettendo la condivisione di risorse di rete. Uno dei componenti software principali, incluso nei sistemi Ubuntu per il networking con Windows, è la suite SAMBA, che comprende utilità e applicazioni per server SMB. Questa sezione della guida di Ubuntu, introduce brevemente l'installazione e la configurazione base delle utilità e delle applicazioni server della suite SAMBA. Fornire maggiori dettagli su SAMBA va oltre lo scopo di questa guida, tali informazioni possono essere reperite nel sito web di SAMBA. Installare SAMBA Al prompt inserire il seguente comando per installare le applicazioni server di SAMBA: sudo apt-get install samba Per montare dei file system Windows usando SMB è necessario smbfs. Digitare il comando: sudo apt-get install smbfs 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: 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.