[Silvio U. Zanzi] Linux Server Per l'Amministrator(BookZZ.org)

376

description

zanzi

Transcript of [Silvio U. Zanzi] Linux Server Per l'Amministrator(BookZZ.org)

  • LINUX SERVER PER L'AMMINISTRATORE DI RETE

    Quarta edizione

    Silvio Umberto Zanzi

  • Apogeo s.r.l. - socio unico Giangiacomo Feltrinelli Editore s.r.l.

    ISBN edizione cartacea: 978-88-50-32987-8

    Il presente file pu essere usato esclusivamente per finalit di carattere personale. Tutti icontenuti sono protetti dalla Legge sul diritto d'autore. Nomi e marchi citati nel testo sonogeneralmente depositati o registrati dalle rispettive case produttrici.L'edizione cartacea invendita nelle migliori librerie.~Seguici su Twitter @apogeonline

  • Introduzione passato molto tempo da quando Linus Torvalds annunci su comp.os.minix che stava scrivendo un

    sistema operativo e che era curioso di ricevere qualche commento da parte di chiunque utilizzasse Minix.Secondo le parole di Torvalds doveva essere solo un hobby, non sar n grande, n professionale comeGNU.

    Linus Torvalds non avrebbe certamente pensato in quella sera dagosto del 1991 che, solo pochi annidopo, il suo hobby sarebbe invece diventato molto importante. Oggi, infatti, Linux rappresenta uno strumentodi business miliardario per un numero incalcolabile di aziende in tutto il mondo. Per Linux si costruisconomultinazionali, si realizzano campagne pubblicitarie a copertura mondiale, si eseguono fusioni, si scrivonomilioni di righe di codice ogni anno, si pubblicano libri e riviste, si creano strategie aziendali globali, si apronocause e si realizzano migrazioni colossali. Tutte operazioni che muovono grandi quantit di denaro e creanoopportunit, posti di lavoro e sviluppo.

    Se Linux fosse solo questo non ci sarebbe per nulla di speciale. Molte aziende in tutto il mondo e in tempidifferenti hanno creato ricchezza materiale e sviluppo nei vari settori dello scibile umano.

    Quello che fa realmente la differenza il fatto che Linux non unazienda o un prodotto commerciale, mapiuttosto un bene comune. Il codice infatti aperto, libero e del tutto gratuito. Chiunque pu scaricarlo daInternet, esaminarlo, apportarvi modifiche, espanderlo in base alle proprie esigenze e distribuirlo.

    Questo aspetto rende Linux molto pi che un sistema operativo. Si tratta piuttosto di un ambiente doveognuno libero di imprimere la propria impronta e fornire un contributo alla comunit di specialisti e diutilizzatori.

    Giungere a Linux non per necessariamente semplice. Io ci sono arrivato dopo un percorso tortuoso,iniziato verso la met degli anni Ottanta quando ho cominciato a interessarmi di computer a livello del tuttoamatoriale. Il mio primo sistema stato uno ZX Spectrum 48K della Sinclair. Su questa macchina ho trascorsotante ore a programmare in Basic e a fare esperimenti con lAssembly dello Z80.

    Qualche anno dopo sono passato ai 16 bit con un Amiga 500. Devo molto a questo sistema, che nascevagi dalla prima versione con il multitasking preemptive, con un ambiente a icone e un hardware modularebasato su chip dedicati. Su questa macchina ho imparato i rudimenti dellarchitettura dei sistemi operativi, laprogrammazione in C e soprattutto il concetto di freeware, fenomeno molto vivo su Amiga.

    Il passo successivo naturale avrebbe dovuto essere un NeXT, che allora era probabilmente il migliorpersonal computer mai realizzato. I costi non erano per giustificabili per un uso hobbistico e sono percipassato a un PC con Windows 3.1. Nel frattempo avevo cominciato a lavorare per unazienda di informaticaed ero nel gruppo che curava lassistenza tecnica ai clienti per le attivit sistemistiche. Mi serviva quindi unamacchina che potesse essermi di aiuto a livello professionale.

    Da allora ho sempre lavorato come sistemista e ho progettato, implementato e curato lassistenza persoluzioni client-server basate su Windows.

    Pur lavorando a tempo pieno su Windows, continuavo privatamente a seguire le vicende dellinformatica ea monitorare lo sviluppo di Linux. Ero affacciato alla finestra, intento a guardare quello che avveniva, cercandodi capire se questo mondo pieno di promesse e di ideali potesse diventare qualcosa di praticabile per i mieiclienti, che dallinformatica si aspettavano nulla di pi che soluzioni a problemi di lavoro.

    La svolta avvenne verso la fine degli anni Novanta, merito (paradossalmente) della bolla speculativa dellaNew Economy. In quel periodo si fece moltissima pubblicit a Linux, forse anche a sproposito, diffondendoneil nome. Nacque cos grande curiosit, anche nelle aziende pi piccole dove non cera una cultura informaticasolida oppure un reparto CED strutturato.

    Ho allora sfruttato il momento per iniziare a proporre soluzioni Linux, anche se inizialmente in ruoli defilaticome, per esempio, nei firewall perimetrali. La risposta positiva da parte dei miei clienti e i benefici tangibili di

  • Linux mi spinsero a continuare su quella strada.Ogni azione Linux era svolta sempre in maniera pragmatica, presentando i vantaggi che la soluzione poteva

    portare al lavoro di tutti i giorni nelle singole realt in cui ero chiamato a fornire risposte e assistenza. Hocercato di essere molto obiettivo, realistico e cauto. Questo mio approccio stato certamente apprezzato daiclienti e ha contribuito ad aumentare la mia base di installazioni professionali su Linux.

    Oggi utilizzo Linux con molta frequenza e una parte significativa del mio lavoro si svolge su questo sistemaoperativo.

    Subisco ancora il fascino dei suoi ideali e della sua libert, ma continuo a essere molto pratico. Penso chela diffusione capillare di tale sistema potr avvenire solo se gli utenti non informatici troveranno in Linuxrisposte migliori per le loro esigenze quotidiane.

    Non esistono per solo gli utenti finali. Anche i tecnici devono vedere in Linux opportunit e vantaggi talida giustificare ladozione di un ambiente operativo cos diverso dagli strumenti commerciali tradizionali.

    Questa affermazione pu sembrare banale, ma i professionisti sono probabilmente le persone che nutronopi dubbi e che hanno pi timori ad avventurarsi in territori nuovi. Non infatti semplice staccarsi dagli ambitiche si conoscono bene, sviluppati con anni di studio, di esperienza, di fatiche e di investimenti.

    Questo libro vuole essere di aiuto per tali persone.Ho scritto questo volume pensando alla fisionomia delle piccole e medie imprese italiane, realt che

    operano quotidianamente con uno o pi server centralizzati e con una serie di client basati su Windows. Hocercato di isolare le esigenze informatiche pi comuni e per ognuna di queste ho scritto un capitolo.

    Ogni capitolo spiega come configurare un particolare servizio su Linux e come renderlo funzionanterapidamente, senza scendere in troppi particolari. Ho posto laccento sulla possibilit di lavorare subito. Unavolta che il servizio in funzione diventa pi semplice approfondire largomento, magari con documentazionetecnica mirata.

    In nessun caso viene suggerito di sostituire le postazioni e i server Windows con macchine Linux. Vienepiuttosto consigliato di affiancare le macchine esistenti con un sistema Linux ad hoc.

    Tutti i servizi trattati in questo volume riguardano il server centrale e i servizi da esso erogati, come peresempio unarea comune dove salvare i file, il sistema di posta elettronica, il fax di rete, il firewall, il sistema digroupware, il meccanismo di accesso in VPN e cos via.

    Questo volume quindi una sorta di ricettario per risolvere con Linux molte esigenze comuni. Ognicapitolo in tal senso autonomo e contiene tutte le informazioni per installare e configurare rapidamente lasoluzione. In fondo al capitolo presentata una checklist riepilogativa da cui si pu rapidamente verificare diaver eseguito tutti i passi necessari.

    Per comprendere questo libro richiesta solamente unesperienza basilare su Linux. Quanto basta perinstallare una distribuzione, per accedere al sistema e utilizzare i comandi di manipolazione del file system(copiare file, cancellare file, creare directory, editare file di testo e cos via).

    Tutti gli esempi sono stati implementati su CentOS e Ubuntu LTS Server Edition, considerando WindowsXP Professional come client periferico.

    Ho cercato infine di utilizzare un linguaggio e un taglio espositivo chiaro e alla portata di una persona conuna cultura informatica media. Questo non un libro accademico o di tecnica avanzata. Per tali esigenzeesistono molti altri ottimi volumi.

    Spero con questo mio lavoro di contribuire allincremento della base di utenti di Linux e di aumentare lasua diffusione. Questo il mio piccolo apporto al movimento!

    I cambiamenti e le novit della quarta edizione

    Questo volume la quarta edizione di Linux Server per lamministratore di rete, originariamentepubblicato da Apogeo nel 2004.

  • Il successo commerciale delle prime tre edizioni e i commenti positivi dei lettori ci hanno spinto adattualizzare nuovamente il testo e a espanderlo con nuovi contenuti.

    Ogni capitolo stato riveduto e aggiornato per meglio rappresentare la fisionomia attuale delle soluzioniesposte.

    In questa edizione si scelto di usare per gli esempi due distribuzioni e non pi una sola, utilizzando unadistribuzione basata su Red Hat (CentOS) e una basata su Debian (Ubuntu Server Edition). Gli utilizzatori diFedora Core potranno ancora fruire di questo libro seguendo gli esempi per CentOS, del tutto compatibili.

    Tutti i capitoli sono stati aggiornati utilizzando lultima versione dei pacchetti disponibili al momento dellastesura del libro. Alcuni capitoli inoltre hanno subito miglioramenti in termini di nuovi contenuti.

    Nel Capitolo 3 sui print server sono stati indicati alcuni dettagli per abilitare laccesso al pannello diCUPS dai client della rete locale.Il Capitolo 5 sul DHCP stato espanso e migliorato in merito allaggiornamento dinamico del DNS.Il Capitolo 10 sugli antivirus stato aggiornato per trattare il prodotto AVG Server Edition perLinux/FreeBSD. Viene naturalmente ancora trattata la soluzione aperta ClamAV.Il Capitolo 11 sul backup con Amanda contempla anche la possibilit di simulare i nastri su disco,aprendo la strada a backup su sistemi di storage NAS e SAN.Il Capitolo 12 stato aggiornato allultima versione del mailserver di Kerio, rinominato dalla casa madrein Kerio Connect. Viene anche spiegato come eseguire un restore dai backup automatici generati dalprodotto.Nel Capitolo 14, dedicato al fax di rete, stato inserito un paragrafo con le indicazioni per installare unsemplice front-end web per la gestione dei fax tramite il pacchetto HylaFAX.Il Capitolo 17, dedicato a MySQL, comprende ora alcune note su come assegnare nuovi utenti aisingoli database e impostare i diritti di accesso. Viene utilizzata la versione 3 di phpMyAdmin.Il Capitolo 18 su PHProjekt ha subito una profonda rivisitazione, in quanto il prodotto stato riscritto ereso conforme agli standard attuali. Il pacchetto praticamente nuovo e incentrato sui progetti. Non sitratta quindi pi solamente di una soluzione di groupware. stato aggiunto un nuovo capitolo dedicato alla virtualizzazione con Citrix XenServer, uno strumento difascia professionale con licenza gratuita.

    Come sempre i commenti, i suggerimenti e le critiche costruttive sono molto ben accette e sarannopubblicate nel mio sito www.informazione.biz, luogo dove sar possibile ottenere anche aggiornamenti einformazioni sul libro.

  • Ringraziamenti per me importante ringraziare alcune persone che sono state fondamentali per la riuscita di questo

    progetto.Per cominciare, tutti i lettori delle edizioni precedenti di questo volume e tutti coloro che mi hanno inviato

    commenti e critiche sulla mia casella di posta elettronica o che hanno inserito commenti sui gruppi didiscussione italiani. Senza il loro apporto non esisterebbe, ora, questa nuova edizione.

    Un ringraziamento ad Alberto Mari, editor per la prima edizione del volume. Aurelia Costa, addettastampa di Apogeo, per la pazienza, la simpatia e lamicizia. Quindi un ringraziamento particolare a Fabio Briviodi Apogeo per il modo efficace in cui ha coordinato la seconda, la terza e la quarta di edizione e a FedericoFacca per il prezioso lavoro di redazione.

    Non posso dimenticare Marco Mariani, Gabriele DAngelo e Stefano Bracalenti per tutto lentusiasmocon cui mi hanno parlato di Linux negli anni e per laiuto fornito in numerose occasioni su questa piattaforma.Luciano Lombardi, Alessandro Degli Occhi, Alfredo Di Stefano e Brunetta Pieraccini per le opportunit offertein ambito editoriale. Il Professor Ivan Galassi per avermi dato fiducia in tempi difficili, Antonio Pasini peravermi offerto la prima opportunit professionale in ambito informatico, Barbara Valli per avermi indicato lagiusta via e Pixel, Ettore, Margherita e Maia che hanno allietato le lunghe sessioni al computer durante lastesura delle quattro edizioni di questo libro.

    Un ringraziamento anche agli amici di sempre: Massimiliano Strazzari, Giovanni Bandini, Marco Brandolini,Luca Fortunato, Devis Bombardini, Chiara Calmanti, Pier Giorgio Spisni, Marco Zambrini, Olivia Chiesi eAlessandro Galassi che si ricordano che esisto anche se il mio lavoro mi rende sempre assente. Ringraziamentianche a Marco Daghia, Sara Berti (la mia migliore fan!), Massimiliano Zagaglia, Cristian Castellari, i piccoliSebastiano e Bianca (che nel frattempo hanno cominciato a usare senza difficolt la tecnologia, come se fossesempre esistita!), Luciana Grementieri e Renato Bombardini per la vicinanza in alcuni particolari momenti,Mara, Barbara, Rita e Paola e i miei genitori. Un caro ringraziamento anche a Gianna Gherardi, Rina Cialdai eAdriano Gherardi.

    Un saluto speciale ad Antonio Carlos, Nilze, Angela, Everson, Eduardo, Carla, Rogelio e la piccola MariaEduarda che mi hanno fatto sentire a casa in un luogo molto speciale.

    Vorrei ricordare ancora Laura e i bei momenti di amicizia legati inesorabilmente al passato.Infine un ringraziamento speciale a Raffaella Gherardi: ti ho certamente sottratto tempo e ti ho trascurato

    oltre il dovuto per la quarta volta! Un grazie di cuore per la tua pazienza, il tuo appoggio e i tuoiincoraggiamenti continui durante la realizzazione di tutte le edizioni (e di tante imprese che abbiamo compiutoinsieme).

    Questo libro anche merito tuo!Silvio Umberto [email protected], Settembre 2010

  • Capitolo 1

    Capitolo 1 - Condivisione delle risorsecon Samba

    Chiunque abbia seguito landamento del settore informatico negli ultimi anni avr notato come la curvadelle vendite dei personal computer si sia progressivamente appiattita. Il fenomeno non dipende in manieradiretta dalla congiuntura economica internazionale, ma dal fatto che il boom determinato dalla primainformatizzazione da parte delle imprese si oramai esaurito. Negli anni Novanta il settore informatico erainfatti alimentato da una miriade di aziende che per la prima volta acquistavano mezzi informatici (computer,accessori, software, periferiche, materiale didattico e cos via). Vi era perci un grande impulso economico nelcomparto IT. Oggi si assiste invece a un pi pacato fenomeno di aggiornamenti a lungo ciclo, in cui le macchineobsolete vengono sostituite con nuovi sistemi. Vengono naturalmente acquisite anche macchine per nuovepostazioni, ma si tratta di percentuali limitate.

    Questa tendenza non per omogenea in tutti i segmenti di mercato. Oggi, per esempio, il settore deiportatili molto florido, come pure quello dei server.

    I portatili sono diventati popolari perch possono sostituire in maniera efficace le postazioni fisse. Nonesiste pi un gap nelle prestazioni e nelle potenzialit dei sistemi portatili rispetto ai desktop tradizionali. Ilvantaggio della portabilit sta quindi alimentando le vendite.

    Risulta invece peculiare il boom dei server. In questo caso la spinta data da unevoluzione culturale delmanagement delle piccole e medie imprese, che riconosce lutilit di un sistema centrale per larchiviazione digrandi volumi di dati, la condivisione degli archivi in rete e la razionalizzazione di risorse come stampanti eplotter.

    In questo modello gli applicativi continuano a girare sui singoli PC, tipicamente attraverso sistemi operativiWindows XP Professional, Windows 2000 Professional oppure su qualche versione di Windows 7. I serverbasati su sistemi operativi commerciali sfruttano invece versioni specifiche di Windows come Windows Server2003 o Windows Server 2008. La casa di Redmond propone infatti da anni protocolli di rete ad alto livelloche permettono di condividere facilmente file e stampanti e queste funzionalit sono disponibili sul mercato findai tempi di Windows 3.1.

    La semplicit della visione di Microsoft nelle reti, unita al costo accessibile, hanno di fatto cancellato tuttala concorrenza almeno fino a quando Linux diventata una valida alternativa.

    In questo capitolo si vedr come configurare un sistema Linux per fare in modo che sia in grado dicondividere file e stampanti, erogando cos servizi a una rete composta da client basati su Windows, Mac OSX o Linux.

    Reti Windows

    Il modo pi semplice per realizzare una rete Windows consiste nella messa in opera di un workgroup(gruppo di lavoro). Si tratta di un modello in cui ogni macchina ha lo stesso ruolo di tutte le altre postazionipresenti in rete: non esiste la distinzione tra server e client, in quanto ogni computer pu svolgere al contempoentrambe le veci. Quando viene condivisa una cartella su Windows XP, il computer agisce come server.Questo per non impedisce allutente su quel sistema di accedere a directory e stampanti di altri computer,agendo come client per servizi erogati da altre macchine.

    Come per ogni realt connessa, gli accessi alle risorse sono regolati da user-id e da password, ma in un

  • workgroup non esiste un sistema centralizzato che gestisca gli accessi. Ogni computer che fornisce risorse in unworkgroup possiede un proprio elenco di user-id e di password abilitate. lutente presso quella specificamacchina a stabilire chi pu accedere alle condivisioni locali, aggiornando lelenco degli utenti autorizzati. Perfarlo bisogna andare nella sezione Utenti di Gestione computer presente in Pannello di controllo >Strumenti di amministrazione.

    Lassegnazione degli utenti alle risorse avviene invece selezionando una directory, premendo il tasto destrodel mouse, selezionando Propriet, attivando la scheda Condivisione e infine attivando Condividi la cartellain rete.

    Allinterno delle piccole realt comune che non venga applicato alcun tipo di accesso regolamentatotramite password e che le risorse siano semplicemente visibili a tutti. altres comune che le cartelle e i filecondivisi vengano per comodit concentrati su un unico computer. In questo modo pi semplice reperire ilmateriale di lavoro, pi facile organizzare i dati e il backup risulta pi agevole da gestire. Di fatto si viene asimulare un sistema server.

    Si sconsiglia per di utilizzare una normale postazione di lavoro per questa finalit. Non infatti auspicabileche uno dei beni pi importanti di unazienda, linformazione, sia contenuta in un sistema utilizzato comepostazione di lavoro.

    Chiunque abbia un po di dimestichezza con i sistemi informatici di largo consumo sa quanto sia semplicealterare il funzionamento di una postazione per incuria o per scarse conoscenze dellutente. altres notoquanto sia facile contrarre virus o spyware, anche mantenendo un buon comportamento informatico. In unapostazione usata come server non inoltre difficile che, per errore o per distrazione, vengano cancellate interedirectory, porzioni dellarchivio o file di grande importanza. Sono tutti rischi seri per lintegrit dei datiaziendali.

    C poi il fatto che le postazioni sono spesso macchine economiche, con garanzie limitate. Si tende infatti aconcepire il PC come un mero strumento di lavoro, da sfruttare fino al limite e da cambiare con unaltramacchina altrettanto economica non appena questa smette di funzionare.

    Questa filosofia pu essere valida per le postazioni di lavoro, ma diametralmente opposta alla mentalitche si dovrebbe tenere nella scelta di un server. Laffidabilit e la stabilit dovrebbero essere i valori cardineper un sistema che raccoglie e smista tutti i file aziendali.

    Oltre alle considerazioni hardware bisogna anche rilevare che un sistema operativo client non dotatodelle funzionalit e dei meccanismi di sicurezza presenti in un sistema operativo server. possibile risolverequesto problema senza affrontare costi di licenza mediante lutilizzo di Linux. Configurando opportunamente ilpinguino si pu dialogare in un workgroup Windows e condividere file, cartelle e stampanti, come se sitrattasse di un sistema Windows a tutti gli effetti.

    Pu suonare strano il fatto che sia possibile simulare un ambiente di rete Windows con macchine chegirano con sistemi operativi non Microsoft. Il merito da attribuirsi allapertura dei protocolli e alla lorostratificazione funzionale. Nello specifico esiste un protocollo preposto a proiettare sulla rete locale alcuneentit, quali i file, le cartelle e le stampanti. Il nome di questo protocollo SMB (Short Message Block).

    Qualunque sistema operativo che implementi questo protocollo in grado di accedere a risorse in una reteWindows o a esporre le proprie risorse a una rete di computer preesistenti.

    Linux dispone di unottima implementazione SMB allinterno di un pacchetto denominato Samba(www.samba.org), un nome che altro non che la sigla SMB con laggiunta di due vocali.

    Il progetto nato per la piattaforma Unix e, nel tempo, ha acquisito sempre maggiore importanza,diventando oggi uno dei pacchetti Open Source pi importanti.

    Struttura base di Samba

    Il pacchetto Samba pu essere scaricato dal sito ufficiale del progetto dalla sezione di download. Si

  • consiglia per di fare uso di un pacchetto predisposto appositamente per la propria distribuzione. Questosemplifica notevolmente le operazioni di installazione, automatizzando molti passaggi.

    La versione corrente di Samba, la 3.5, include molte caratteristiche importanti, elencate di seguito.

    Condivisione di cartelle e stampanti in rete.Possibilit di accedere a risorse condivise da altre macchine che usano SMB.Supporto ai workgroup.Supporto per lautenticazione su un dominio Windows.Gestione della master browser list.Funzioni WINS.Supporto per Active Directory in qualit di membro.Autenticazione Kerberos.Supporto al protocollo LDAP.Pubblicazione degli attributi delle stampanti in Active Directory.Relazioni di fiducia tra server NT4 e Samba.Supporto IPv6.Relazioni di fiducia tra server NT4 e Samba.Supporto alle relazioni di fiducia transitive e unidirezionali.

    Samba funziona grazie a due servizi (comunemente denominati demoni in ambito Unix). Si tratta di nmbde smbd. Il primo si occupa di tutte le operazioni di risoluzione dei nomi (anche con il protocollo WINS) e dellagestione della master browser list. Il secondo demone si occupa pi nello specifico della gestione delle risorsecondivise.

    bene comprendere meglio alcuni degli aspetti appena elencati, in particolare il servizio di master browserlist.

    Quando si fa clic su Risorse di rete e si ottengono le icone dei computer presenti si sta in realt leggendoun elenco mantenuto da un computer assegnato a questo scopo. Non avviene cio alcuna scansione della rete.Questo il motivo per cui, quando si accende un nuovo computer, necessario un po di tempo prima chequesto compaia in Risorse di rete anche se la macchina collegata in rete correttamente.

    La macchina appena accesa deve infatti cercare il gestore dellelenco e segnalargli la propria presenza.Allo stesso modo, quando si spegne il computer, questo rimane ancora visibile nellelenco per un certo

    periodo di tempo. Durante lo spegnimento non viene eseguita una notifica al gestore e quindi il nome rimaneattivo nellelenco per un certo numero di minuti, prima di essere cancellato.

    Il gestore dellelenco dei computer definito Master Browser List. Il ruolo viene assegnato a una dellemacchine presenti in rete, attraverso un meccanismo di elezione. Durante questa fase sono presi inconsiderazione diversi parametri tra cui il periodo di uptime, la versione dei protocolli usati, il sistema operativoutilizzato (client o server) e cos via. Il migliore sistema diventa il master browser list fino a quando viene spentoo fino a quando vengono indette nuove elezioni e lattuale master risulta inferiore a un nuovo sistema. Questopu succedere se in una rete di client Windows si attiva, per esempio, un sistema Linux con Samba. Talemacchina ha numeri migliori, se non altro perch un server, e vince le elezioni acquisendo la gestione dellamaster browser list.

    Il master browser list mantiene semplicemente un elenco di macchine e non svolge necessariamente altricompiti vitali in una rete locale, per esempio la traduzione da un nome macchina esteso (per esempio pc4) nelsuo corrispondente indirizzo IP (per esempio 192.168.100.14). Questa funzione di risoluzione dei nomipotrebbe essere erogata da un altro computer.

    La risoluzione dei nomi un aspetto basilare in una rete locale. Bisogna sempre tenere presente chelaccesso a un sistema in rete pu avvenire solamente tramite indirizzo IP numerico. I nomi testuali devono

  • sempre essere tradotti in un indirizzo IP prima di poter accedere alla macchina.Il servizio storico di risoluzione dei nomi su Windows denominato WINS. Si tratta di un archivio in cui

    memorizzato il nome dei computer in LAN con i relativi indirizzi IP. Scorrendo questo elenco alla ricerca delnome del computer si ottiene immediatamente lindirizzo IP. Se questo non disponibile in rete, per esempio senon c un server, la risoluzione avviene tramite un meccanismo di broadcast: il computer interroga tutti isistemi connessi in LAN per scoprire quale macchina dispone del nome di rete ala quale si vuole accedere.Loperazione comporta per carico inutile sulla LAN e genera ritardi.

    Il servizio WINS molto simile al DNS: anche questultimo eroga un indirizzo IP a seguito diuninterrogazione per nome. Sussistono per alcune differenze sostanziali.

    Il DNS un servizio gerarchico concepito per funzionare in reti geograficamente distribuite, come Internet.Ogni sistema DNS contiene i dati dei soli sistemi della rete a cui fa capo. Il sistema DNS per collegato adaltri server che hanno competenza per altre zone e, quando viene cercato lindirizzo di un computer nonpresente nellelenco locale, viene percorsa tutta la struttura DNS fino a quando non viene trovato il server checontiene le informazioni sulla macchina ricercata. I singoli DNS restano cos efficienti, ma comunque in gradodi eseguire ricerche globali.

    WINS non in grado di fare tutto questo. Larchivio un semplice elenco di macchine e indirizzi, senzaalcuna struttura gerarchica. Ogni WINS deve perci contenere la totalit dellelenco. Questa scelta inefficiente per reti di grandi dimensioni, ma del tutto adatta per servire reti locali. WINS ha per il vantaggiodi costruire dinamicamente la tabella di risoluzione, attraverso una serie di strategie. Il DNS richiede invece,nella sua fisionomia tradizionale, che un amministratore compili manualmente la tabella.

    La risoluzione efficiente dei nomi un aspetto talmente importante che Samba contiene al proprio internounimplementazione completa di WINS. Questo e altri aspetti saranno chiariti da un punto di vista pratico nelleprossime pagine, dove sar spiegato come configurare Samba per ottenere un server Linux in grado di erogarefunzionalit di rete pienamente compatibili con Windows.

    Configurazione generale di Samba

    I due demoni di Samba, nmbd e smbd, possono essere lanciati attraverso uno script apposito. Su CentOSe su molte distribuzioni basate su Red Hat (per esempio Fedora Core) si deve digitare il seguente comando:

    /etc/init.d/smb start

    Su Ubuntu lo script ha un nome differente:

    /etc/init.d/samba4 start

    I demoni dovrebbero essere attivati durante la fase di startup del sistema.Allavvio di Samba, viene letto il file smb.conf presente in /etc/samba, una configurazione di esempio.

    Molti utenti aprono questo file e tentano di personalizzarlo per creare la prima installazione. Si sconsigliaquesto approccio, in quanto Samba un pacchetto molto complesso e ricco di opzioni. Il riciclaggio di un filedi configurazione generico e prolisso, scritto pi che altro per scopi dimostrativi, non il modo migliore percominciare. Si rischia di rimanere confusi e di perdere il controllo della situazione. Molto meglio partire dacapo e scrivere una configurazione corta e mirata.

    Prima di tutto bisogna fermare il servizio Samba e mettere al sicuro il file di configurazione inizialesalvandolo con un altro nome:

    /etc/init.d/smb stopcd /etc/sambamv smb.conf smb.conf.old

  • A questo punto si pu creare un nuovo file di configurazione:

    vi smb.conf

    Il file di configurazione di Samba ha una struttura lineare e precisa. presente una sezione generaleglobal, in cui contenuta una serie di indicazioni che regolano il funzionamento del servizio, come, peresempio, il nome del server, il tipo di server, la visibilit in rete, i criteri di sicurezza e cos via.

    La sezione global seguita da una serie di descrizioni pi specifiche, che forniscono dettagli sulle risorseche si vogliono condividere nel proprio sistema.

    Un file di configurazione di Samba pu contenere anche solo la sezione generale, ma questo non ha moltosenso, perch, in tal caso, non si avrebbero risorse condivise nella rete locale. Si vuole invece utilizzare Sambaper creare un file server e fornire servizi di condivisione agli utenti.

    Per imparare a configurare Samba in modalit workgroup si prender come esempio un piccolo studioprofessionale che ha la necessit di creare unarea file comune dove salvare i file di gruppo e unarea file percontenere le utilit di uso generale (per esempio le patch del sistema operativo, lultima versione del browser, ilsoftware per comprimere archivi e cos via). Larea dei file comuni viene chiamata comune, di libero accessoe chiunque pu leggervi e scrivervi dati. Larea con i file di utilit generale invece gestita dallamministratorelocale, si chiama software ed accessibile unicamente in lettura.

    Per cominciare si deve configurare la sezione generale:

    Listato 1.1

    [global]workgroup = GRUPPOLAVOROnetbios name = SERVER1server string = file server Linuxsecurity = SHARE

    La sezione comincia con letichetta [global] presente sulla prima riga. Tale indicazione deve essereriportata fedelmente.

    La riga seguente workgroup = GRUPPOLAVORO indica a Samba il nome del workgroup della rete. Se lemacchine Windows presenti fanno gi parte di un gruppo di lavoro, bisogna riportare a destra della direttivaworkgroup il nome di questultimo. Se si decide di utilizzare anche un altro nome, sfogliando licona diRisorse di rete si vedranno due gruppi di lavoro diversi.

    Se si sta configurando la rete per la prima volta, bisogna verificare che i client di rete, per esempio lemacchine con Windows XP o Windows 7, siano configurati per far parte dello stesso gruppo di lavoro delserver (Figura 1.1).

  • Figura 1.1 Assegnazione del gruppo di lavoro su un client W indows XP.

    La terza riga del file, netbios name = SERVER1, indica il nome con cui il server Linux sar visibilequando si andranno a sfogliare le Risorse di rete dei client. Facendo cio clic sul link Risorse di rete, poi sullevoci Tutta la rete e infine Rete di Microsoft Windows, si potr accedere al workgroup GRUPPOLAVORO.Al suo interno ci sar unicona di computer seguita dal nome SERVER1. Questa la macchina Linux che si staconfigurando.

    Di seguito allindicazione del nome netbios compare la direttiva server string. Questa contiene ilcommento a testo libero che viene associato al nome del server in rete. Sfogliando la rete si vedr cos lamacchina SERVER1 con a fianco il commento file server Linux.

    possibile omettere questa indicazione. Samba includer in tal caso come commento il proprio numero diversione.

    I nomi usati nella seconda e nella terza riga del file di configurazione sono di libera scelta, anche se devonosoddisfare alcuni criteri. Il nome del gruppo di lavoro deve essere privo di spazi e non pu superare lalunghezza di 15 caratteri. Anche il nome NetBIOS del computer non deve superare i 15 caratteri di lunghezza.

    La quarta riga contiene una direttiva che indica il tipo di sicurezza che si vuole implementare per laccessoal server da parte dei client. Le opzioni base sono due: SHARE e USER.

    Nella modalit SHARE laccesso alle condivisioni avviene semplicemente fornendo una password, serichiesta. Non richiesta alcuna altra forma di autenticazione.

    Questa modalit simile alle condivisioni di directory che si possono creare in Windows 98 o WindowsXP, dove si ha lopzione di assegnare una password per laccesso (Figura 1.2). La modalit USER invece piarticolata e richiede anche una user id durante la fase di autenticazione.

  • Figura 1.2 La scheda Condivisione relat iva ad ua cartella su W indows XP.

    Per cominciare a lavorare con Samba si prender in considerazione la modalit SHARE, impostando ledirettive necessarie per creare una delle due cartelle condivise dello studio professionale. Si apra nuovamente ilfile di configurazione precedente e in fondo si aggiungono le seguenti righe:

    Listato 1.2

    [comune]comment = cartella comunepath = /home/comunepublic = YESwritable = YES

    Letichetta scritta tra parentesi quadre corrisponde al nome della condivisione in rete per la directoryindicata pi in basso. In pratica si stanno definendo le propriet della condivisione comune.

    La direttiva comment a testo libero e rappresenta il commento che pu comparire di fianco al nome dellacondivisione quando si visualizzano i dettagli di file e directory.

    La direttiva path indica la posizione nel file system di Linux dove ubicata la directory. In questo caso stata scelta la directory comune dentro home. Per garantire laccesso a questa condivisione da parte degliutenti della rete locale, bisogna verificare che i permessi di accesso siano corretti. Trattandosi di una directorya libero accesso si possono usare i diritti 777:

    chmod 777 /home/comune

    Le due direttive seguenti indicano rispettivamente che la cartella di pubblico accesso e che possibile

  • scrivere allinterno della directory condivisa.Si prosegue ora realizzando la cartella software, accessibile in sola lettura dagli utenti comuni. La

    configurazione molto simile a quella della directory comune:

    Listato 1.3

    [software]comment = file di utilita'path = /home/softwarepublic = YESwritable = NO

    Lunica differenza rilevante tra le due configurazioni il fatto che la direttiva writable impostata a NO,impedendo la scrittura allinterno della configurazione da parte degli utenti della LAN. Anche in questo caso,come nel precedente, occorre assicurarsi che la directory /home/software abbia i diritti daccesso impostaticorrettamente. Si dar per scontato questo dettaglio nelle configurazioni successive.

    Ogni volta che si apporta una modifica nel file di configurazione di Samba bisogna ricordarsi di riavviare ilservizio per fare in modo che i cambiamenti vengano immediatamente applicati. Samba ricarica a intervalliregolari il file generale di configurazione, ma lintervallo relativamente lungo e le nuove modifiche nonvengono perci applicate in tempo reale. Per riavviare manualmente il servizio basta utilizzare questa sintassi suCentOS:

    /etc/init.d/smb restart

    Su Ubuntu:

    /etc/init.d/samba4 restart

    Prima di questa operazione bene verificare che la sintassi del file di configurazione sia corretta. Per farlosi pu impartire il seguente comando:

    testparm

    Questa utility fa parte della suite Samba ed preposta a verificare la correttezza del file di configurazione.Il comando legge il file smb.conf, esegue una scansione delle sezioni e rileva eventuali errori.

    Se la configurazione risulta corretta, verr indicato il ruolo del server configurato (in questo casoROLE_STANDALONE). Premendo Invio si vedr il dump dei parametri principali della configurazione realizzata:

    Listato 1.4

    Load smb config files from /etc/samba/smb.confProcessing section "[comune]"Processing section "[software]"Loaded services file OK.Server role: ROLE_STANDALONEPress enter to see a dump of your service definitions# Global parameters[global]workgroup = GRUPPOLAVOROserver string = file server Linuxsecurity = SHARE[comune]comment = cartella comune

  • path = /home/comuneread only = Noguest ok = Yes[software]comment = file di utilita'path = /home/softwareguest ok = Yes

    Questa fase di diagnosi molto importante, perch i demoni di Samba leggono il file di configurazione infase di avvio, ma non segnalano eventuali errori presenti. Lamministratore di sistema potrebbe essere cosindotto a pensare che la configurazione realizzata sia corretta, quando invece sono presenti errori di sintassi.

    Il comando testparm accetta alcune opzioni. Una di queste -v, tramite la quale possibile visualizzareil valore di tutte le direttive che non sono state impostate manualmente nel file di configurazione, ma che hannovalori di default assegnati automaticamente da Samba. cos possibile vedere come queste variabili sono stategestite dal sistema.

    Un ulteriore strumento di diagnosi e analisi del server lutility smbclient. Si tratta di uninterfacciatestuale verso i servizi di Samba. Le funzionalit incluse sono numerose. Si consiglia, a tal proposito, di leggereil manuale del comando, tramite man smbclient. Una di queste opzioni, -L, visualizza lo stato del serviziosmb sul sistema indicato.

    La sintassi da usare smbclient -L nomeserver, per esempio:

    smbclient -L 127.0.0.1

    Questo loutput di un server Linux che gestisce il workgroup GRUPPOLAVORO e che si trova in una retelocale dove presente anche un altro gruppo di lavoro denominato SEDE:

    Listato 1.5

    Domain=[GRUPPOLAVORO] OS=[Unix] Server=[Samba 3.4.7]Sharename Type Comment--------- ---- -------IPC$ IPC IPC Service (file server Linux)software Disk file di utilita'comune Disk cartella comuneDomain=[GRUPPOLAVORO] OS=[Unix] Server=[Samba 3.4.7]Server Comment>--------- -------SERVER1 file server LinuxWorkgroup Master--------- -------GRUPPOLAVORO SERVER1SEDE TECRA-M1

    Gestione degli utenti

    Le esigenze di gestione dei file dello studio professionale sono state pienamente risolte con laconfigurazione precedentemente presentata. Col tempo per le esigenze possono cambiare e potrebbe sorgerela necessit di realizzare accessi differenziati per i diversi utenti.

    Lo studio professionale, a seguito di un incremento del giro di affari, potrebbe, per esempio, aver bisognodi un software gestionale da far utilizzare ad alcuni dei dipendenti. Il database comune di questo gestionale memorizzato in una directory condivisa e accessibile dalle postazioni client presenti in rete tramite il nome

  • gestionale.Questi dati, per motivi di privacy, non devono essere visibili a tutti, ma solo al personale

    dellamministrazione, pi precisamente agli utenti amm1, amm2 e amm3. Per soddisfare questo requisito bisognamodificare alcuni aspetti sostanziali della configurazione precedente (SHARE). Innanzitutto non pi adeguata laprotezione a livello di condivisione, ma bisogna piuttosto adottare la sicurezza a livello utente (USER). Non sivuole inoltre una semplice password di protezione, ma si intende fare in modo che solo gli account amm1, amm2e amm3 possano accedere a questi dati, usando le relative credenziali.

    La configurazione del blocco global deve essere modificata come nel seguente listato:

    Listato 1.6

    [global]workgroup = GRUPPOLAVOROnetbios name = SERVER1server string = file server Linuxsecurity = USERsmb passwd file = /etc/samba/smbpasswdencrypt passwords = YES

    Laspetto importante che il tipo di security stato impostato a USER. Ora lautenticazione avviene tramitela coppia di valori user id/password, fornita allaccesso delle condivisioni.

    Sotto lopzione security sono state inserite due direttive supplementari. La prima indica dove si trova ilfile che conserva le password di accesso per gli utenti di Samba e la seconda determina che si stannoutilizzando password cifrate per accedere a Samba. In tal caso bisogna tener presente che macchine Windows95, NT 3 e NT4 pre-SP3 potrebbero aver problemi di accesso per via delluso di password trasmesse inchiaro. Si consiglia, per motivi di sicurezza, di aggiornare il sistema operativo di questi computer.

    Le definizioni per le condivisioni comune e software restano invariate, mentre va aggiunta la definizioneper la condivisione gestionale:

    Listato 1.7

    [gestionale]comment = area supporto software gestionalepath =/home/gestionalevalid users = amm1 amm2 amm3writable = YES

    La direttiva importante valid users, allinterno della quale possibile elencare gli utenti abilitati adaccedere alla directory /home/gestionale, condivisa con il nome gestionale.

    Eventualmente possibile inserire una direttiva invalid users ed elencare gli account che non possonoaccedere a gestionale, per esempio tutti i restanti utenti della rete:

    Listato 1.8

    [gestionale]comment = area supporto software gestionalepath =/home/gestionalevalid users = amm1 amm2 amm3invalid users = ufftec1 ufftec2 ufftec3 ufftec5 marketing reception comm1 comm2writable = YES

  • Indicare gli utenti nel file di configurazione non sufficiente. Bisogna anche creare gli stessi account sulserver Linux. Samba si appoggia infatti sul sistema degli utenti di Linux per funzionare.

    Il primo passaggio consiste nel creare gli utenti sulla macchina Linux, avvalendosi degli strumenti standarddel sistema:

    useradd amm1useradd amm2useradd amm3

    In seguito bisogna impostare le password per ogni singolo utente:

    Listato 1.9

    [root@server1 samba]# passwd amm1Changing password for user amm1.New password: ********Retype new password: ********passwd: all authentication tokens updated successfully.

    La stessa procedura deve essere seguita per amm2 e amm3.Il server dispone ora dei nuovi account con tanto di directory utente in /home e di password di accesso al

    sistema.Samba utilizza gli account di Linux per identificare gli utenti, ma usa un proprio file di password per

    regolare laccesso alle risorse. La password di accesso a Linux e quella di Samba per un dato accountpotrebbero quindi essere differenti. Si sconsiglia per questo approccio per motivi di omogeneit dellaconfigurazione di sistema.

    Lutility di Samba per limpostazione delle password si chiama smbpasswd e non fa altro che aggiungerenel file delle password la riga /etc/samba/smbpasswd, con la user id e la password cifrata.

    La sintassi di base molto semplice, in quanto basta digitare il comando seguito dallopzione -a e dalnome utente. Poi si inserisce la password e si conferma:

    Listato 1.10

    [root@server1 samba]# smbpasswd -a amm1New SMB password: ********Retype new SMB password: ********Added user amm1.

    Ora lutente correttamente definito allinterno del server Linux e di Samba.Le copie di user id e password utilizzate in fase di configurazione dovrebbero essere le stesse adottate nei

    sistemi Windows client presenti in rete. In questo modo tutta la procedura di accesso dalle postazioni utente automatica, in quanto Windows comunicher le credenziali al momento dellaccesso alle directory. Se lecredenziali di Windows e quelle di Samba/Linux sono differenti comparir una finestra con la richiesta diinserimento manuale delle credenziali.

    Directory utente

    Fino a questo punto della trattazione si osservato come realizzare ogni singola condivisione scrivendomanualmente il relativo blocco di configurazione. Si per esempio visto come creare due condivisioni

  • attraverso i blocchi comune e gestionale scritti dentro il file di configurazione generale di Samba.Questo modo di procedere del tutto corretto, ma pu risultare scomodo in alcune situazioni, per esempio

    se si hanno decine di utenti e si vogliono creare delle home directory per ognuno di essi. Si dovrebbe infattirealizzare un blocco di configurazione specifico per ciascun utente.

    possibile risolvere questo problema ricorrendo al blocco homes, che provvede alla creazione automaticadi una condivisione personale per ogni utente correttamente configurato in Samba.

    Da un punto di vista pratico viene letto lelenco degli utenti di Samba e vengono condiviseautomaticamente le relative directory utente Linux presenti in /home.

    La configurazione necessaria molto semplice. Basta aprire il file smb.conf e inserire il blocco homes diseguito alla sezione global:

    [homes]comment = cartella utentewritable = YES

    Il blocco contiene il commento a testo libero e lindicazione che la risorsa accessibile in lettura. A questopunto basta salvare la configurazione, riavviare Samba e verificare lesito delloperazione

    Aprendo le Risorse di rete e accedendo al server Linux si vedranno le cartelle generali, la cartellapersonale dellutente e una cartella denominata homes.

    La cartella personale dellutente avr lo stesso nome dellaccount di login usato, per esempio amm1. Ilcontenuto sar liberamente accessibile e si potranno apportare tutte le modifiche necessarie.

    La cartella homes visibile nellelenco delle condivisioni semplicemente un alias che punta alla propriacartella utente personale. Si tratta di una scelta progettuale di Samba. Volendo possibile fare in modo che lacondivisione homes non sia visibile. Basta che la direttiva browsable sia impostata a NO.

    La direttiva browsable = NO impedisce che la condivisione in oggetto sia visibile (pur rimanendopresente). la versione Samba delle condivisioni nascoste di Windows. La direttiva pu essere usata nelladefinizione di qualunque condivisione come prima misura di sicurezza. Il file di configurazione assume oraquesto aspetto:

    Listato 1.11

    [homes]comment = cartella utentewritable = YESbrowsable = NO

    Variabili

    bene precisare che la configurazione realizzata per le cartelle home debole sul versante dellariservatezza. Se lutente amm1 vuole accedere alla cartella personale di amm4 pu semplicemente scriverequesto percorso sulla barra dellindirizzo di qualunque finestra di Windows:

    \\server1\amm4

    Premendo Invio si aprir la finestra relativa con il contenuto della home di amm4.Non si tratta di un problema di funzionamento di Samba come molti amministratori sono indotti a pensare.

    Si tratta, ancora una volta, di una scelta progettuale ben precisa.Spetta infatti al gestore della rete applicare opportuni diritti alle cartelle oppure impiegare ulteriori direttive

    sul file di configurazione di Samba per blindare le directory.

  • Si potrebbe, per esempio, limitare laccesso tramite la direttiva valid users e le variabili. Sambapermette infatti di specificare nei campi di configurazione alcune informazioni variabili che sono gestitedinamicamente durante il funzionamento del sistema.

    Le variabili in Samba iniziano sempre con il carattere %, alcune di queste sono elencate in Tabella 1.1.

    Tabella 1.1 Variabili di uso comune in Samba.

    Variabili che riguardano il client che esegue il login

    %a Tipo di sistema operativo client (esempio Samba, WinNT, WfWg, Win95 o UNKNOWN).

    %I Indirizzo IP.

    %m Nome NetBIOS.

    %M Nome DNS.

    Variabili che riguardano lutente

    %u User id Unix corrente.

    %U User id del client che ha richiesto laccesso.

    %g Gruppo dellutente %u.

    %H Directory utente di %u.

    Variabili che riguardano le condivisioni

    %S Nome della condivisione corrente.

    %P Radice della condivisione corrente.

    Variabili che riguardano il server

    %h Nome DNS del server Samba.

    %L Nome NetBIOS del server Samba.

    %v Versione di Samba.

    Per risolvere il problema, appena illustrato, di accesso alle condivisioni si pu utilizzare la variabile %S, checontiene il nome della condivisione corrente. Dal momento che la directory utente personale ha il medesimonome dellid utente di login possibile usare la variabile come vincolo di accesso:

    valid users = %S

    Riavviando il demone di Samba si potr accedere alla propria cartella utente amm1, ma non a quelle di altri

  • utenti. Questo perch gli utenti validi per le cartelle ufftec1, ufftec2, ufftec3 e cos via sarannorispettivamente solo lutente ufftec1, ufftec2, ufftec3 e cos via.

    Durante limplementazione delle directory utente potrebbero verificarsi alcuni problemi come, per esempio,limpossibilit di accedere o scrivere nelle aree utente, pur avendo inserito correttamente le direttive di Samba.

    Laccesso alle home directory di Linux da parte di Samba avviene con lo stesso user id con cui il client haeseguito il login. Se si autenticati come amm1 dalla postazione Windows, laccesso alle cartelle condiviseavverr attraverso lutente amm1. Occorre quindi verificare che le singole directory utente dentro /home sianodi propriet del rispettivo utente. La directory amm1 deve appartenere allutente amm1, la directory amm2 deveappartenere allutente amm2 e cos via. A tale proposito si deve usare il comando chown:

    chown amm1 amm1chown amm2 amm2chown amm3 amm3

    Alle singole cartelle si dovrebbero anche assegnare i diritti 770, per fare in modo che solo lutente e ilproprio gruppo possano accedere alla cartella. Questo utile anche come misura di sicurezza su Linux.

    Se si preferisce, possibile creare le directory utente in una posizione alternativa a /home, evitando cos diintaccare la struttura delle cartelle utente di Linux. Questa scelta pu essere utile anche per evitare che gli utentiWindows vedano i file di supporto che vengono creati automaticamente da Linux per un nuovo utente.

    Per creare le directory utente in un altro punto del file system si utilizza la seguente sintassi:

    path = /usr/local/sambahome/%S

    In questo caso, si sta istruendo Samba a considerare la radice delle directory utente in/usr/local/sambahome. I percorsi verso le singole cartelle sono generati con la variabile %S.

    Bisogna naturalmente avere laccortezza di creare la radice (/usr/local/sambahome), le singole cartelleutente e impostare i diritti e i proprietari nel modo indicato in precedenza.

    Condivisione dellunit CD-ROM

    Un caso particolare di condivisione lunit CD-ROM, in quanto lambiente Linux richiede che questa siamontata prima dellutilizzo.

    Se si intende condividere un particolare disco CD-ROM in maniera permanente, per esempio un elencotelefonico, si pu accedere al sistema Linux come amministratore (root), montare lunit con il comandomount (per esempio mount/dev/cdrom) e creare un blocco simile a quelli precedenti:

    Listato 1.12

    [cdrom]comment = Elenco telefonicobrowsable = YESread only = YESpath = /mnt/cdrom

    Se invece si vuole cambiare liberamente il disco CD-ROM sullunit condivisa necessario ricorrere a dueparametri specifici, che eseguono il mounting automatico allaccesso della risorsa condivisa e loperazione diunmounting alluscita:

    Listato 1.13

  • [cdrom]comment = Unita' cdrombrowsable = YESread only = YESpath = /mnt/cdromroot preexec = mount /dev/cdromroot postexec = umount /mnt/cdrom

    Il comando root preexec esegue le operazioni indicate a destra del simbolo = durante laccesso allacondivisione. Le operazioni sono eseguite dallutente root. Il comando root postexec esegue loperazioneindicata alluscita dalla condivisione. In questo caso sono indicati i comandi per la gestione dei dispositivi, ma possibile inserire qualunque altro comando o script si riveli necessario ai propri scopi.

    Queste direttive non si limitano alle definizioni per unit CD-ROM, ma possono essere impiegate inqualunque blocco di definizione delle condivisioni.

    Sicurezza di Samba

    Esistono alcune semplici direttive che permettono di incrementare la sicurezza della propria installazione diSamba. Queste possono essere incluse in un blocco di definizione di una singola condivisione oppure nelblocco global.

    Per cominciare possibile discriminare gli accessi in base agli indirizzi IP:

    hosts allow = 127.0.0.1 192.168.100.0/24hosts deny = 192.168.100.13

    La prima direttiva permette di specificare quali nodi o sottoreti possono accedere alla condivisione. Inquesto caso il sistema locale 127.0.0.1 e la sottorete 192.168.100.0.

    possibile indicare anche solo stringhe parziali, come 192.168.200. e 127. oppure nomi simbolicirisolvibili dal server, come localhost o server1.

    La direttiva host deny esegue la procedura opposta: specifica quali nodi o reti non possono accedere. bene sapere che Samba risponde alle richieste provenienti da tutte le interfacce fisiche e logiche attivate

    sul server locale. Questo significa che se presente un modem ADSL connesso, anche gli utenti esternipotranno accedere al sistema Samba e sfogliare le condivisioni. Si tratta di una situazione molto pericolosa.

    Per risolvere il problema occorre usare la direttiva interfaces nel blocco global e indicare le interfacceabilitate a inoltrare richieste a Samba:

    interfaces = eth0 eth1 lobind interfaces = yes

    Vengono in questo esempio abilitate le due schede di rete presenti nel sistema (eth0 e eth1) e linterfacciadi loopback locale (lo). La seconda riga abilita il traffico solo sulle interfacce indicate nella direttivainterfaces.

    Queste direttive non esimono lamministratore dallimplementazione di un firewall perimetrale sulla reteoppure sul computer che ospita Samba (si veda il Capitolo 7). Le porte di servizio usate dal protocolloSMB/CIFS sono le 137, 138, 139 e 445. Queste devono essere chiuse dallesterno e disponibili solo alla reteinterna.

    Allinterno delle cartelle utente potrebbero essere presenti file con link simbolici che puntano a file e adirectory presenti in altri punti del file system. Per impedire la possibilit di seguire i link simbolici si pu usare

  • la seguente direttiva:

    follow symlinks = no

    Per quanto riguarda la registrazione degli eventi presente un meccanismo di logging attivato per default.Eventualmente possibile modificare le impostazioni, inserendo nel blocco global la direttiva log:

    log file = /var/log/samba/%m.logmax log size = 100log level = 3

    La prima direttiva indica il percorso dove salvare i messaggi di log. Si noti che stata usata una variabileper fare in modo che ci sia un file di log differente per ogni sistema che accede a Samba.

    Con max log size si indica la dimensione massima per il file di log. Superato questo limite il file di logcorrente viene rinominato aggiungendo .old al suo nome e viene creato un nuovo file. Il valore 0 sta a indicarenessun limite.

    Con log level si stabilisce il livello di dettaglio del file di log. Il valore 3 molto elevato e fornisce unoutput particolarmente dettagliato, utile per le operazioni di debugging o di verifica delle configurazioni. Non siconsiglia questo livello, come pure il 2, in quanto comporta un carico elevato sul sistema Samba con unconseguente calo delle prestazioni. Meglio usare il livello 1 in produzione e passare a livelli superiori solo incaso di necessit.

    Configurazione dei client

    La configurazione dei client rapida: basta portare il puntatore del mouse sullicona Risorse del computerdi Windows XP, fare clic con il tasto destro del mouse e selezionare Propriet. Compare una finestra da cuibisogna selezionare la scheda Nome computer, poi si deve premere il pulsante Cambia. Nella finestra che siapre, indicare il nome GRUPPOLAVORO per il gruppo di lavoro, confermare e riavviare il computer. Allavvioseguente di Windows, la macchina far parte del workgroup indicato.

    Per velocizzare le operazioni di accesso in rete importante attivare un sistema DNS, inserire le generalitdel server e di tutti i client e poi configurare ogni macchina dalle propriet di Risorse di rete per utilizzarequesto DNS. Informazioni sulla creazione di un sistema DNS con Linux vengono fornite nel Capitolo 4.

    Qui di seguito riportato il contenuto del file di configurazione smb.conf di Samba, cos come statocostruito nel corso di questo capitolo.

    Listato 1.14

    [global]workgroup = GRUPPOLAVOROnetbios name = SERVER1server string = file server Linuxsecurity = USERsmb passwd file = /etc/samba/smbpasswdencrypt passwords = YESlog file = /var/log/samba/%m.logmax log size = 100log level = 1[homes]comment = cartella utentewritable = YES

  • browsable = NOvalid users = %S# path = /usr/local/sambahome/%S[comune]comment = cartella comunepath =/home/comunepublic = YESwritable = YES[software]comment = file di utilita'path =/home/softwarepublic = YESwritable = NO[gestionale]comment = area supporto software gestionalepath =/home/gestionalevalid users = amm1 amm2writable = YES[cdrom]comment = Elenco telefonicobrowsable = YESread only = YESpath = /mnt/cdromroot preexec = mount /dev/cdromroot postexec = umount /mnt/cdrom

    Checklist

    1. Verificare che il pacchetto Samba sia installato sul proprio sistema, digitando il comando testparm. Secompare un messaggio derrore, significa che Samba non presente e bisogna procedere alla suainstallazione.2. Salvare in un luogo sicuro il file di configurazione di default di Samba, quindi creare un nuovo filesmb.conf nella directory /etc/samba.3. Aprire il file smb.conf e creare la sezione global.4. Inserire nella sezione global le direttive workgroup, netbios name e server string.

    Cartelle condivise di accesso pubblico

    1. Impostare nella sezione global il livello di sicurezza della condivisione con la direttiva security =SHARE.2. Impostare una condivisione, creando nel file di configurazione una sezione contenente almeno le direttivecomment e path.3. Inserire la direttiva public = YES per rendere pubblica la condivisione.4. Inserire la direttiva writable = YES per rendere accessibile in scrittura la condivisione.5. Impostare correttamente i permessi Linux nella directory che si sta condividendo.6. Impostare le direttive di sicurezza.7. Verificare la correttezza della configurazione, usando il comando testparm.

  • 8. Avviare i demoni di Samba e fare in modo che vengano sempre lanciati a ogni avvio del sistema.9. Configurare i client.

    Cartelle condivise protette da user id e password

    1. Impostare nella sezione global il livello di sicurezza dellutente con la direttiva security = USER.2. Impostare il file delle password tramite la direttiva smb passwd file.3. Indicare la gestione delle password cifrate, tramite la direttiva encrypt passwords = YES.4. Impostare una condivisione, creando nel file di configurazione una sezione contenente le direttivecomment e path.5. Indicare lelenco degli utenti autorizzati ad accedere alla condivisione, con la direttiva valid users.6. Specificare gli eventuali utenti non autorizzati, utilizzando la direttiva invalid users.7. Inserire la direttiva writable = YES per rendere accessibile in scrittura la condivisione.8. Impostare correttamente i permessi della directory condivisa.9. Ripetere i passaggi dal 4 al 8 per tutte le ulteriori condivisioni.10. Verificare la correttezza della configurazione richiamando il comando testparm.11. Creare sul sistema Linux gli account degli utenti Windows che potranno accedere alle condivisioni.12. Creare le password di Samba per gli account appena creati; con il comando smbpasswd.13. Avviare i demoni di Samba e fare in modo che vengano sempre lanciati a ogni avvio del sistema.14. Configurare i client.

    Nel caso siano necessarie directory utente

    1. Creare nel file di configurazione di Samba il blocco homes.2. Impostare la direttiva comment.3. Rendere le directory accessibili in scrittura, utilizzando la direttiva writable = YES.4. Inserire la direttiva browsable = NO per fare in modo che le condivisioni non siano visibili nei sistemiWindows.5. Fare in modo che ogni utente possa accedere solo alla propria directory, sfruttando le variabili diSamba.6. Verificare nel sistema Linux che a ogni utente corrisponda un profilo e una directory in /home.7. Verificare che i proprietari e i permessi delle cartelle utente presenti nella directory /home siano corretti.8. Se si vuole fare in modo che le directory utente non corrispondano alle directory home di Linux,specificare nella direttiva path un percorso alternativo, allinterno del quale devono essere presenti ledirectory utente.9. Verificare la correttezza della configurazione, utilizzando il comando testparm.10. Riavviare i demoni di Samba.

  • Capitolo 2

    Capitolo 2 - Realizzazione di un dominiocon Samba

    Nel capitolo precedente si visto quanto sia veloce condividere delle risorse attraverso la modalit diworkgroup. Basta il pacchetto Samba su una macchina Linux e una semplice configurazione per ottenere unfile server in grado di supportare un numero arbitrario di client. Sulle postazioni Windows la configurazione ancora pi semplice: sufficiente che il workgroup di riferimento del client coincida con quello impostato suSamba.

    La configurazione presentata ha per alcuni limiti. In un workgroup non esiste una vera distinzione tra cliente server, in quanto ogni macchina pu ricoprire entrambi i ruoli. Qualunque postazione pu infatti condividerecartelle locali e diventare server nel workgroup per tali risorse. Allo stesso tempo queste macchine possonoaccedere a condivisioni di altri sistemi e agire come client.

    Per questo motivo, in un workgroup non neppure necessario avere un computer server. Anche soli duecomputer Windows XP possono infatti costituire un gruppo di lavoro a tutti gli effetti.

    La facilit con cui si pu creare e utilizzare un workgroup il fattore chiave che ha permesso a Microsoftnegli anni Novanta di battere importanti aziende nel settore del networking.

    Microsoft non ha per limitato la propria presenza nel campo delle piccole LAN, ma ha supportatoattivamente una seconda modalit di rete pi sicura e articolata, che si contrappone al workgroup e si chiamadominio.

    In un dominio esiste almeno una macchina principale che svolge la funzione di PDC (Primary DomainController). Questo sistema esegue diverse attivit chiave, tra cui lautenticazione di utenti e di computer e lagestione delle autorizzazioni per le risorse condivise.

    Ogni utente che desidera aver accesso alla rete deve prima autenticarsi sul PDC. Gli utenti abilitati chehanno fornito credenziali corrette possono effettuare il logon, caricare dal server il proprio profilo personale esfruttare risorse comuni. Si potr cos accedere a directory condivise sul server, ma anche condividere lecartelle presenti sul proprio sistema locale, come accadeva nel workgroup. La condivisione regolata per dapermessi pi rigidi: quando si esegue una condivisione viene caricato dal server lelenco degli utenti abilitati deldominio e il proprietario del computer pu attivare la condivisione per uno o pi di questi utenti abilitati. Ilserver quindi sempre lelemento centrale, anche quando si lavora con risorse locali.

    In un workgroup non esiste niente di tutto questo. Gli utenti compiono log-in distinti sulle varie macchinedella LAN da cui desiderano utilizzare delle risorse condivise. Ogni macchina dispone perci di un elencoprivato di utenti abilitati e di relative autorizzazioni per le risorse locali. Nessuna funzione centralizzata e perquesto motivo si perde molto tempo a replicare elenchi utenti e diritti su tutti i client in LAN. La possibilit dierrori e dimenticanze molto alto in questo modello.

    Per questi motivi sempre meglio istituire un dominio, anche quando si ha una rete di piccole dimensioni.

    Esempio pratico

    In questo capitolo si prender in considerazione il caso di una piccola industria che ha la necessit dicreare un ambiente di rete ordinato.

    Lazienda dispone di cinque postazioni in amministrazione (amm1, amm2, amm3, amm4 e amm5), di diecipostazioni in ufficio tecnico (ufftec1, ufftec2, ufftec3 e cos via), di due postazioni commerciali (comm1 e

  • comm2) e di un computer in direzione (dir). Tutte le postazioni, basate su Windows XP Professional, devonoautenticarsi sul PDC. Durante il logon dovranno essere collegate al client locale una serie di cartelle condivisequali larea comune, larea con i file di utilit, larea di supporto per il gestionale e larea riservata allufficiotecnico. Ogni utente dovr inoltre trovare in Risorse del computer una propria cartella personale privataubicata sul server.

    I profili personalizzati dei singoli computer, come lo sfondo, lo screen saver, la disposizione delle icone, leimpostazioni del browser, le impostazioni del desktop, la configurazione di Office e cos via, dovranno esserememorizzate sul server. Questa funzionalit, denominata roaming profiles (profili mobili), permette agli utentidi trovare il proprio ambiente di lavoro su qualunque macchina utilizzino per il logon. Allaccesso nel dominio,tutte le impostazioni personalizzate saranno scaricate automaticamente in locale e applicate sulla macchina.Lutente potr lavorare normalmente sul computer e alluscita dal dominio tutte le modifiche apportate sarannosalvate sul server.

    I profili mobili sono molto comodi, ma si limitano alle personalizzazioni. Ossia non permettono lacondivisione dei programmi. Office, per fare un esempio, dovr essere regolarmente installato su tutte lepostazioni in cui necessaria la presenza della suite.

    Durante la configurazione di Samba come PDC si daranno per scontati i concetti espressi nel Capitolo 1.Le configurazioni applicate in questo capitolo rappresentano inoltre unestensione della configurazione di baserealizzata nel capitolo precedente.

    Non resta che procedere con il lavoro. Prima di tutto si deve fermare il servizio Samba, rinominare ilvecchio file di configurazione e creare un nuovo file smb.conf. La sezione global comincer con le seguentidirettive:

    Listato 2.1

    [global]workgroup = INCIPITnetbios name = SERVER1server string = PDC Linuxsecurity = USERsmb passwd file = /etc/samba/smbpasswdencrypt passwords = YESlog file = /var/log/samba/%m.logmax log size = 100log level = 1

    Non ci sono modifiche sostanziali rispetto a quanto si visto nella prima parte del Capitolo 1, a parte ilmodello di sicurezza che in questo caso impostato a livello utente (security = USER) e le password chesono gestite in modalit cifrata.

    La configurazione della sezione global deve ora proseguire indicando esplicitamente lintenzione diimpostare il sistema Samba come PDC:

    Listato 2.2

    os level = 255preferred master = YESlocal master = YESdomain master = YESwins support = YES

    Il PDC di una rete anche il sistema che svolge le funzionalit di Master Browser List. Si tratta cio dellamacchina che si preoccupa di mantenere aggiornato lelenco di sistemi che appare in Risorse di rete. Quando

  • si fa un doppio clic su Risorse di rete si interroga in realt il Master Browser List e si scarica lelenco daquesto sistema.

    Il ruolo di Master Browser List non assegnato a priori a un computer designato dallamministratore.Sono i sistemi presenti a stabilirlo attraverso un meccanismo automatico di elezioni. Nel farlo vengonoconsiderati molti criteri, tra cui il tempo di uptime e il tipo di sistema operativo. In Samba per possibilesembrare migliori di quello che si e tentare cos di vincere le elezioni. Con la direttiva preferred master= YES si forza unelezione e tramite la direttiva os level = 255 si pone il sistema corrente in cima a tutte lepreferenze. Questo valore indica infatti la tipologia del sistema operativo (i client hanno valori bassi, mentre iserver ne hanno di pi alti). Maggiore il numero e migliori sono le possibilit di vincita. Il valore di default 20.

    Con la direttiva local master = YES si comunica alla rete che il server Samba intende diventare ilMaster Browser List per il dominio INCIPIT. La direttiva seguente molto simile, ma opera su un contestopi ampio, ossia quando un dominio sparso su pi sottoreti. In queste situazioni potrebbero esserci diversisistemi a gestire gli elenchi per le singole sottoreti. La direttiva domain masters = yes opera come collantee fa in modo che il server Samba riceva gli elenchi di tutte le sottoreti. Questi elenchi saranno unificati sul serverSamba e il risultato complessivo sar distribuito a tutte le sottoreti. Gli utenti, sfogliando Risorse di rete,potranno vedere un elenco che comprende tutti i sistemi presenti in tutti i segmenti della struttura della rete.

    Ora che il server Samba il Master Browser List del dominio INCIPIT, si pu inserire una direttiva dicompatibilit per le macchine Windows 95/98. Per limiti progettuali, questi sistemi operativi non sono infatti ingrado di accedere al dominio a tutti gli effetti. quindi necessario utilizzare la seguente direttiva per attivare lacompatibilit:

    domain logons = YES

    Il sistema Samba pu agire anche da server WINS e fornire cos servizi di risoluzione per i client Windowspresenti. sufficiente ununica direttiva per attivare la funzionalit:

    wins support = YES

    Per accedere a questo server WINS bisogna andare sui singoli client e specificare lindirizzo IP del servernellapposita finestra di configurazione delle propriet di rete.

    Prima di attivare la funzionalit WINS bisogna controllare bene che non ve ne siano altri sulla sottoretelocale, in quanto si potrebbero avere comportamenti erronei.

    Abilitazione delle directory utente

    possibile fare in modo che ogni utente della rete disponga di una propria directory personale privata.Questa cartella pu essere assegnata in fase di logon a una lettera di unit ben precisa, per esempio U. Perattivare questa funzionalit si utilizza la seguente sintassi:

    logon home = \\server1\homedirlogon drive = U:

    La prima direttiva esplicita che le cartelle utente si trovano nella condivisione \\server1\homedir.Attenzione al fatto che non si tratta di un percorso allinterno del sistema Linux, ma di un percorso di rete. Intal caso si fa riferimento a una condivisione chiamata homedir presente sulla macchina server1. La cartellautente sar legata alla lettera U sul client locale grazie alla seconda direttiva. La condivisione definita pi inbasso sul file di configurazione, in un apposito blocco:

  • Listato 2.3

    [homedir]path = /home/%uread only = NOwritable = YESbrowsable = NOcreate mask = 0600directory mask = 0700hide dot files = YES

    La configurazione del blocco non si discosta molto da quanto si visto nel Capitolo 1. Ci sono comunquealcuni punti su cui interessante soffermarsi.

    Prima di tutto il percorso specificato tramite una variabile. Questo fa in modo che lutente amm2 abbiacome cartella utente il percorso /home/amm2, lutente amm4 abbia /home/amm4 e cos via.

    Sono state impiegate le cartelle utente di Linux per ottenere un ambiente omogeneo, dove gli utentifruiscono della stessa directory home sia su Linux, sia su Windows.

    Ci sono per alcune direttive che non sono state presentate nel Capitolo 1. La prima di queste createmask, che assegna a tutti i file creati sulla condivisione i diritti 0600. La direttiva successiva svolge la stessafunzionalit, ma questa volta sulle nuove directory create.

    La direttiva hide dot files = YES forza il bit nascosto su tutti i file che iniziano per punto. Questo utile per nascondere agli utenti Windows i file di configurazione di Linux presenti nella directory /home, comeper esempio .bashrc, .bash_profile e .bash_logout.

    La direttiva rende invisibili i file, ma se lutente ha attivato su Windows la visualizzazione dei file nascostivedr comunque tutti i file che iniziano per punto.

    Profili mobili

    I profili mobili (roaming profile) permettono di salvare sul server i profili di tutti gli utenti della rete e fare inmodo che ci si possa spostare di postazione e disporre sempre del proprio ambiente di lavoro tra cui lacartella Documenti, i preferiti del browser, il desktop, lelenco dei file recenti, la struttura del menu Avvio, laposta elettronica e cos via.

    Oltre alla comodit di poter avere la propria scrivania su qualunque computer della rete, si ha anche unafunzione di accentramento sul server di molte informazioni che generalmente vengono salvate solo localmente.Si pensi per esempio alla posta. Sono poche le piccole e medie imprese che eseguono un backup di questeinformazioni, tipicamente memorizzate sui singoli client. In caso di rottura del disco locale o di danno al filesystem si perde tutta la base di messaggi personali archiviati nel corso degli anni.

    Lo svantaggio maggiore comportato dai roaming profile consiste nel carico di rete. Ogni volta che si entrao si esce avviene unoperazione di sincronizzazione con il server e questo comporta un utilizzo della bandalocale. Nel caso si abbiano migliaia di messaggi archiviati, magari con allegati o si disponga di una cospicuacartella documenti, si sperimenter una lentezza apprezzabile. Se questo aspetto pu risultare problematico siconsiglia di evitare luso dei profili mobili e di saltare al prossimo paragrafo.

    logon path = \\server1\profili\%u

    Questa direttiva attiva i profili mobili segnalando a Samba che la directory dove memorizzare i profili sitrova nella condivisione \profili\%u di server1. Ancora una volta non si tratta di un riferimento al filesystem di Linux, ma di una condivisione di rete.

  • Anche in questo caso viene impiegata una variabile per fare in modo che sia utilizzata una directoryseparata per ogni utente. La condivisione profili definita pi in basso, in un apposito blocco:

    Listato 2.4

    [profili]path = /usr/local/samba/profiliread only = NOwritable = YESbrowsable = NOcreate mask = 0600directory mask = 0700

    importante rilevare che si scelto di rendere questa condivisione non visibile da Risorse di rete,utilizzando la direttiva browsable = NO.

    Durante la configurazione dei profili mobili si deve prestare attenzione ai diritti impostati sulla directory/usr/local/samba/profili del server Linux. Tutti gli utenti devono potervi accedere, leggere e scrivere.Per farlo si deve usare il comando chmod:

    chmod 777 /usr/local/samba/profili

    Windows 95 e 98 utilizzano un meccanismo differente per gestire i profili mobili. In tal caso non vieneutilizzata la direttiva logon path, ma la direttiva logon home per specificare la cartella utente. Ladocumentazione ufficiale di Samba consiglia di specificare questa sintassi nel caso di Windows 95 e 98:

    logon home = \\server1\%U\profile

    Samba gestir questo percorso in maniera dinamica. Nel caso cio di assegnamento di una lettera allahome directory, verr considerata solo la porzione \\server1\%U. Nel caso invece di utilizzo dei profili mobilisar usato il percorso completo e il profilo sar memorizzato dentro la directory profile.

    Script di logon

    Quando il client accede al PDC pu ricevere automaticamente dal server un file batch con una serie dicomandi da eseguire. In questo batch possono essere presenti diversi comandi, come la sincronizzazionedellorologio del computer locale con il server e lattivazione di un certo numero di condivisioni.

    Si tratta di un buon sistema per rendere omogeneo lambiente di rete ed evitare di dover visitare tutte lepostazioni ogni volta che si crea una nuova condivisione aziendale. Basta infatti aggiungere una riga al batch ein questo modo tutte le macchine attiveranno le nuove condivisioni allingresso.

    Per attivare gli script di logon basta indicare la direttiva seguente:

    logon script = logon.bat

    Durante il logon, il file logon.bat sar automaticamente scaricato dal server ed eseguito. Non vieneindicato alcun percorso per individuare il file, in quanto esiste una condivisione di Windows dedicata a questoscopo. Si tratta di netlogon, che viene creata di default sui server Windows. Su Samba, invece, necessarioreplicare tale comportamento creando un opportuno blocco di definizione per la condivisione:

    Listato 2.5

  • [netlogon]path = /usr/local/samba/netlogonread only = YESwrite list = root

    La directory di sola lettura e solo lutente root ha la facolt di scrivere in questa condivisione (direttivawrite list = root). La directory visibile da Risorse di rete, come avviene con i PDC basati suWindows.

    Dentro la condivisione netlogon contenuto il file logon.bat, che deve essere scritto su una macchinaWindows e poi salvato su Linux, in quanto questi due sistemi operativi gestiscono in maniera differente linvio acapo. Un batch scritto su Linux potrebbe avere problemi di funzionamento sulle macchine Windows.

    Un file batch di logon potrebbe avere la fisionomia seguente:

    NET TIME \\server1 /SET /YESNET USE G: \\server1\comuneNET USE M: \\server1\gestionale

    La prima riga sincronizza lora locale con lorario del server. Le righe seguenti si limitano invece adagganciare alcune condivisioni a due lettere di unit. Tutte le macchine vedranno cos larea comune e lareagestionale rispettivamente come G: e M:. Naturalmente necessario scrivere sul file di configurazione diSamba due blocchi con le relative definizioni delle condivisioni:

    Listato 2.6

    [comune]comment = cartella comunepath =/home/comunepublic = YESwritable = YES[gestionale]comment = area supporto software gestionalepath =/home/gestionalepublic = YESwritable = YES

    Durante la costruzione degli script di logon bisogna prestare attenzione ai limiti imposti alle singolecondivisioni nel file di configurazione di Samba. Se, per esempio, si fa in modo che solo le postazioni inamministrazione possano vedere larea gestionale, gli utenti dellufficio tecnico vedranno un messaggio derroredurante laccesso, in quanto lo script di logon tenter di agganciarsi a una directory a cui lutente non haaccesso.

    Per risolvere questi problemi bisogna ricorrere a programmi di scripting pi complessi, dotati di clausolecondizionali. In questo modo possibile specificare, per esempio, che se lutente fa parte del gruppodellufficio tecnico dovr vedere la condivisione ufftec, ma non larea gestionale mentre, viceversa, gliutenti del gruppo Amministrazione vedranno la condivisione gestionale e non ufftec.

    Kixtart (http:/www.kixtart.org) una soluzione di scripting in grado di gestire queste situazioni ed inoltre ben documentata e corredata da esempi.

    Se non si vuole qualcosa di cos complesso, si pu semplicemente creare un file batch per ogni utente.Ogni file di login sar in questo modo dedicato e conterr solo le condivisioni rilevanti per lutente in oggetto.In questo caso si devono creare tanti file batch quanti sono gli utenti e salvarli con il nome dellutente seguitodallestensione .bat, per esempio amm1.bat, amm2.bat, ufftec1.bat, dir.bat e cos via.

    Per fare in modo che Samba scarichi il file corretto si deve usare una direttiva dotata di variabile, simile a

  • quella riportata di seguito:

    logon script = %u.bat

    Attraverso la variabile %u sar composto dinamicamente il nome del file batch da caricare dallacondivisione netlogon.

    Abilitazione di utenti e computer

    La configurazione di Samba pu considerarsi conclusa. Il file di configurazione smb.conf pu diventaredifficile da leggere nel caso raggiunga una dimensione cospicua. Per facilitarne la comprensione si possonoinserire alcuni commenti al suo interno. I commenti testuali vanno preceduti dal cancelletto (#). Questo ilnuovo file di configurazione:

    Listato 2.7

    [global]workgroup = INCIPITnetbios name = SERVER1server string = PDC Linuxsecurity = USERsmb passwd file = /etc/samba/smbpasswdencrypt passwords = YESlog file = /var/log/samba/%m.logmax log size = 100log level = 1# impostazione del server come domain master browseros level = 255preferred master = YESlocal master = YESdomain master = YES# abilitazione dei logon W95/W98domain logons = YES# attivazione supporto WINSwins support = YES# impostazione homedirlogon home = \\server1\homedirlogon drive = U:# impostazione profili mobililogon path = \\server1\profili\%u# impostazione script di logonlogon script = logon.bat#logon script = %u.bat[netlogon]path = /usr/local/samba/netlogonread only = YESwrite list = root[profili]path = /usr/local/samba/profiliread only = NOwritable = YESbrowsable = NOcreate mask = 0600

  • directory mask = 0700[homedir]path = /home/%uread only = NOwritable = YESbrowsable = NOcreate mask = 0600directory mask = 0700hide dot files = YES[comune]comment = cartella comunepath =/home/comunepublic = YESwritable = YES[gestionale]comment = area supporto software gestionalepath =/home/gestionalepublic = YESwritable = YES[software]comment = file di utilita'path =/home/softwarepublic = YESwritable = NO

    Come per la configurazione di un workgroup, necessario creare sia gli utenti abilitati al dominioallinterno di Linux, sia un utente con lo stesso nome sul sistema Samba tramite lutility smbpasswd.

    Ma su un dominio, anche i computer devono essere autenticati per poter accedere alla rete. Tale sceltagarantisce una maggiore sicurezza, in quanto ogni singola macchina dotata di una chiave di protezioneunivoca. Questo impedisce che qualcuno possa accedere al dominio cambiando nome alla propria macchina efingendosi una macchina abilitata.

    Labilitazione di un computer una procedura molto simile a quella eseguita per abilitare gli utenti. Prima ditutto necessario creare un utente sul sistema Linux con lo stesso nome della macchina digitando questasintassi:

    useradd -g domaincomputers -d /dev/null -s /bin/false nomemacchina$

    Il parametro -g indica che il nuovo utente apparterr al gruppo domaincomputers. Questo gruppo dovressere stato preventivamente creato con il seguente comando:

    groupadd domaincomputers

    Il parametro -d specifica la directory home che Linux assocer allutente. Ogni utente sempre dotato diuna propria cartella sul sistema, ma in questo caso la cosa del tutto superflua. Non si sta infatti creando unutente, ma piuttosto un profilo per un computer. Tale profilo non acceder mai al sistema Linux dalla shellinterattiva e perci non ci sar mai bisogno della directory home. Si specifica allora /dev/null, una sorta disinonimo per indicare nessuna posizione sul file system.

    Il parametro -s indica la shell di login per lutente. Anche in questo caso non ne serve alcuna, perch sitratta di un computer e non di un utente. Si specifica allora /bin/false. Questo eseguibile non svolge alcunaattivit e si limita a uscire appena viene invocato.

    Si ha infine il nome della macchina che si sta abilitando, seguito dal simbolo obbligatorio di $ (convenzioneNetBIOS).

    Il nome della macchina deve essere ricavato da Windows XP trascinando il puntatore sopra Risorse del

  • computer, facendo clic sul tasto destro del mouse e selezionando la voce Propriet. Dalla finestra relativa sideve fare clic sulla scheda Nome computer (Figura 2.1). Il nome della macchina indicato in Nomecompleto computer. fondamentale che il nome su Windows XP coincida con quello su Samba.

    Figura 2.1 La scheda Nome computer cont iene informazioni per lident ificazione del PC allinterno della rete locale.

    Ora bisogna utilizzare il comando smbpasswd e creare un riferimento alla macchina sul file delle passworddi Samba:

    smbpasswd -a -m nomemacchina

    Il parametro -a indica che si tratta di un nuovo riferimento e che il nome deve essere aggiunto al file dellepassword di Samba. Il parametro -m indica che si sta aggiungendo laccount di un computer e non di un utenteed seguito dal nome del computer, questa volta senza il simbolo di $. Premendo Invio si procede allaregistrazione della entry nel file delle password di Samba.

    Se ora si accede alla directory /etc/samba e si apre il file passwd, in fondo a esso si potr notarelaccount appena creato.

    Durante le operazioni di abilitazione delle macchine importante evitare che i nomi dei computercoincidano con i nomi degli utenti abilitati in Samba.

    Aggiunta del client al dominio

  • Il sistema pronto: non resta che aggiungere al dominio la macchina Windows. Si deve nuovamenteportare il puntatore del mouse su Risorse del computer, fare clic con il tasto destro del mouse e selezionare lavoce Propriet. Dalla finestra che si apre si dovr fare clic sulla scheda Nome computer e premere il pulsanteID di rete, per attivare la procedura guidata di annessione al dominio.

    Al primo passaggio, nella finestra Identificazione guidata rete bisogna fare clic nella casella di selezionepresente in alto, per indicare che il computer fa parte di una rete aziendale (Figura 2.2).

    Figura 2.2 Nella configurazione guidata di rete, prima di tutto, si deve indicare che il sistema fa parte di una reteaziendale.

    Nel passaggio seguente bisogna ancora selezionare la voce in alto per indicare che la propria aziendautilizza un dominio (Figura 2.3).

  • Figura 2.3 Successivamente bisogna specificare il t ipo di rete.

    Al passaggio seguente si deve indicare un nome utente abilitato in Samba (per esempio amm1), lapassword relativa e il dominio (INCIPIT), come mostra la Figura 2.4.

    Figura 2.4 Dettagli relat ivi allaccount che si sta abilitando.

  • Confermando potrebbe essere necessario indicare manualmente il nome del computer e il dominio diappartenenza (Figura 2.5).

    Figura 2.5 Dettagli relat ivi al computer che si sta abilitando.

    Bisogna infine indicare un account di amministrazione con autorizzazione di accesso al dominio (Figura2.6).

    Figura 2.6 Per concludere si devono sempre fornire le credenziali di un account di amministrazione.

    In questo passaggio bisogna indicare lutente root di Samba, la relativa password e nuovamente ildominio.

    Attenzione a non fare confusione, perch si deve usare la password per lutente root specificata inSamba, non quella di Linux. Se si dimenticata la parola chiave si pu usare nuovamente il comandosmbpasswd -a root per sostituire la vecchia password di Samba con una nuova.

    Premendo il tasto Invio si conclude la procedura. Le modifiche non vengono applicate subito, ma

  • necessario eseguire un riavvio del computer.Completato il caricamento si dovr digitare il dominio INCIPIT nella finestra di logon, inserire il nome

    utente e la password: questultima sar verificata sul server e in caso di successo, verr creato il profilo mobile,sar collegata la directory home e lanciato lo script di login. A questo punto si far parte del dominio.

    Si potr immediatamente notare il modo in cui viene gestita la sicurezza in un dominio quando si cercherdi condividere una cartella: sar infatti richiesto a quali degli utenti presenti sul server concedere laccesso allacartella in oggetto.

    A questo punto potrebbero verificarsi problemi nella condivisione della cartella o limpossibilit di eseguireanche le pi semplici operazioni amministrative, come cambiare la pagina iniziale del browser, selezionare losfondo, cambiare IP e cos via. Il nuovo utente creato potrebbe non avere un profilo sufficientemente alto sullamacchina locale ed essere un semplice utente, pur essendo a pieno titolo membro del dominio. Bisogna teneresempre a mente che le macchine Windows collegate a un dominio hanno comunque bisogno di un profilolocale specifico. Se si dimentica questo passaggio si potrebbe essere poco pi che un guest, un utente condiritti minimi.

    Questo non necessariamente un fatto negativo, anzi: tale soluzione pu andare bene in un ambiente dilavoro, in quanto impedisce che gli utenti possano riconfigurare le postazioni. Se per si desidera dare pienoaccesso, bisogna entrare in Windows come administrator specificando come dominio il nome della macchina.Si deve andare nel Pannello di controllo e fare clic sullicona Account utente. Dovrebbero comparire inelenco due righe con lo stesso nome utente; una riga specifica il dominio locale (il nome del dominio locale ilnome del PC) e laltra il dominio di rete. Qualora manchi laccount di dominio, si deve procedere alla suacreazione specificando il nome utente (lo stesso di quello di dominio) e il dominio corretto. Poi si deve fare clicsul pulsante Avanti. Nella finestra successiva bisogna specificare il livello (usare administrator per conferire ilmassimo accesso) e fare clic su Fine. Potrebbe essere necessario eseguire un riavvio.

    Completato il caricamento del sistema operativo si pu rientrare nel dominio e lutente avr piena libertsulla macchina locale. Sul dominio resteranno validi i diritti impostati nel server.

    Checklist

    1. Verificare che il pacchetto Samba sia installato nel proprio sistema, digitando il comando testparm. Secompare un messaggio derrore, significa che Samba non presente e bisogna procedere alla suainstallazione.2. Salvare in un luogo sicuro il file di configurazione di default di Samba, quindi creare un nuovo filesmb.conf nella directory /