Mini-guida per l’installazione di una rete locale Anno Accademico 2001/2002 Versione 1.13 20020509 Dott. Gianni Verduci “[email protected]” Maggio, 2002 Indice 1 Situazione di partenza 2 2 Un 2.1 2.2 2.3 2 4 4 5 pó di teoria Qualche dettaglio . . . . . . . . . . . . . . . . . . . . . . . . . . . L’aspetto logico . . . . . . . . . . . . . . . . . . . . . . . . . . . . L’aspetto fisico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Realizzazione 3.1 La nostra rete . . . . . . . . . . . . . . . . . . 3.2 Configurazione di Unix . . . . . . . . . . . . . 3.2.1 Configurazione di RedHat Linux . . . 3.2.2 Configurazione di Debian GNU/Linux 3.3 Configurazione di windows . . . . . . . . . . . 3.4 Verifichiamo la rete . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 7 8 8 4 Miglioriamo la rete 4.1 Configuriamo un DNS . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Configuriamo SAMBA . . . . . . . . . . . . . . . . . . . . . . . . 9 10 13 5 Conclusioni 15 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sommario In queste poche pagine cercheremo di presentare la sequenza dei passi necessari per realizzare una piccola rete locale funzionante utilizzando alcuni dei sistemi operativi con i quali si ha tipicamente a che fare durante il corso degli studi. Molte delle nozioni presentate durante le lezioni del corso di Sistemi Operativi verranno date per scontate, altre verranno brevemente accennate per uniformità della trattazione. I prerequisiti necessari sono essenzialmente un minimo di conoscenza dei problemi che si andranno ad affrontare in modo da comprendere il perchè di determinati passaggi. L’intenzione è quella di fornire le informazioni necessarie per realizzare una piccola rete locale acquisendo conoscenze che possono essere poi utilizzate in situazioni ben più complesse. 1 Situazione di partenza Ci troviamo a dover realizzare una rete locale tra alcune postazioni, nel nostro caso tre, rappresentate da altrettanti PC. Il collegamento fisico tra le macchine è realizzato attraverso dei normali cavi di rete (detti categoria 5 e certificati per una velocità di 100Mbits) ed un hub/switch (un apparato di rete che consente lo scambio “fisico” delle informazioni tra le schede di rete installate). Nella nostra simulazione daremo per scontato l’aspetto relativo al cablaggio della rete, che del resto sarà argomento di altri corsi negli anni successivi. Quanto necessario al nostro scopo riguarda alcune informazioni su come avviene effettivamente il traffico di rete attraverso un’apparecchiatura. Tutte le macchine attestate sui nostri dispositivi di rete effettuano comunicazioni attraverso messaggi inviati in broadcast (cioè inviato a tutti) di alcuni pacchetti necessari a raccogliere le informazioni per stabilire a chi va inviato un particolare pacchetto. Una volta raccolte le informazioni relative alle altre postazioni presenti in rete, ogni sistema operativo è in grado di riconoscere le altre macchine in rete. 2 Un pó di teoria Allestire una rete richiede la configurazione del software necessario al suo funzionamento: nei diversi sistemi troviamo la possibilità di attivare vari protocolli di comunicazione. Nonostante i numerosi protocolli di rete disponibili il più utilizzato attualmente, grazie anche al fatto di essere la base portante dell’attuale rete Internet, è il protocollo TCP/IP. 2 Figura 1: Un esempio di rete locale nel quale abbiamo un router/gateway che consente alle postazioni della rete di raggiungere l’esterno. Utilizzato come protocollo di riferimento anche per la realizzazione delle reti aziendali, si tratta di un protocollo molto adatto in reti congestionate nelle quali è facile che si perdano pacchetti (ovvero frammenti di dati) e, quindi, sono necessari meccanismi che controllino l’integrità. Nella configurazione del protocollo TCP/IP di ogni macchina si attribuiscono alcuni parametri fondamentali per il funzionamento del sistema ed il corretto riconoscimento della macchina nella rete: • un indirizzo IP: ovvero una sequenza di 4 byte (quindi con valori tra 0 e 255) separati dal carattere “.” come ad esempio 192.168.0.1; • netmask di rete: necessario per poter distinguere quale traffico di rete sia da considerare proprio. Si tratta nuovamente di una sequenza di 4 byte che viene utilizzata con l’indirizzo IP della macchina (viene fatta un’operazione di “and” logico) per ricavare l’indirizzo della rete della quale si fa parte. Ad esempio una macchina con IP 192.168.0.23 e netmask 255.255.255.0 avrà rete 192.168.0.0; • l’indirizzo del gateway: si tratta dell’indirizzo IP1 del dispositivo attraverso il quale è possibile raggiungere le reti esterne a quella di appartenenza. Può trattarsi di un router, un firewall oppure di un dispositivo connesso a più reti ed in grado di instradare opportunamente il traffico. Fornite tali informazioni al sistema si ha la possibilità di “navigare” nella nostra rete locale e nelle reti esterne. Possiamo dire che queste informazioni rappresentano il minimo indispensabile per essere in rete. 1 Tipicamente con l’ultimo byte uguale a .1 o .254 3 2.1 Qualche dettaglio Vediamo ora alcuni dettagli che consentiranno di comprendere i meccanismi che vengono “nascosti” dai diversi strati software che costituiscono il protocollo TCP/IP. 2.2 L’aspetto logico In primo luogo, bisogna tener presente che non è generalmente possibile utilizzare qualunque valore per i nostri indirizzi IP: è necessario prestare una certa attenzione soprattutto nel caso sia prevista una successiva evoluzione della nostra rete, considerando la possibilità di collegare tutta la nostra rete ad internet. Gli indirizzi IP vengono divisi in classi di appartenenza ed in particolare: • classe A: da 0.0.0.0 a 127.255.255.255, ovvero una rete formata da 16.581.375 indirizzi IP; • classe B: da 128.0.0.0 a 191.255.255.255, ovvero una rete formata da 65.025 indirizzi IP; • classe C: da 192.0.0.0 a 223.255.255.255, ovvero una rete formata da 255 indirizzi IP. L’insieme di indirizzi che vanno da 224.0.0.0 a 239.0.0.0 sono utilizzati per il traffico multicasting e, quindi, non sono interessanti per i nostri impieghi. Gli indirizzi IP che rientrano in questi insiemi sono detti pubblici e sono univocamente assegnati ad una postazione collegata ad internet: tale univocità garantisce che le nostre connessioni avvengano proprio con il sistema di nostro interesse. Tra gli indirizzi pubblici sono riservati alcuni valori, detti “privati”, che vengono utilizzati proprio per le reti locali non necessariamente connesse ad internet: nessuna macchina con tali indirizzi è in grado di sfruttare le risorse pubbliche della rete poichè gli stessi apparati di rete non riconoscono il traffico eventualmente generato da tali indirizzi IP. Gli indirizzi IP “privati” sono in particolare: • per la classe A: da 10.0.0.0 a 10.255.255.255, ovvero una rete formata da 16.581.375 indirizzi IP; • per la classe B: da 172.16.0.0 a 172.32.255.255, ovvero una rete formata da 1.040.400 indirizzi IP; • per la classe C: da 192.168.0.0 a 192.168.255.255, ovvero una rete formata da 255 indirizzi IP2 . 2 Sarebbe più corretto dire solo 192.168.0.0 poichè si stabilisce la rete che si intende utilizzare e poi si utilizzano i 255 indirizzi di tale rete. Ad esempio se prendiamo la rete 192.168.15.0 avremo 192.168.15.1, 192.168.15.2, 192.168.15.3, e cosı̀ via. 4 Scelti quali indirizzi utilizzare viene stabilito il valore del netmask: tipicamente viene utilizzato il valore 255.255.255.0, indicato alternativamente con /24. Se intendiamo, ad esempio, configurare un centinaio di postazioni possiamo scegliere una rete di classe C con tale netmask: 192.168.1.0/24, oppure volendo ridurre gli “sprechi” 192.168.1.0/25 che equivale a 192.168.1.0/255.255.255.128. Con il secondo valore di netmask riduciamo a 127 il numero di host configurabili nella nostra rete. 2.3 L’aspetto fisico In secondo luogo, bisogna comprendere che l’“univocità” di un indirizzo IP viene realizzata ai livelli più bassi. Vediamo come in base all’indirizzo fisico, detto MAC address, Medium Access Controll, si realizza effettivamente la comunicazione. Esso si presenta nella forma “00:50:FC:05:26:1E” ed è univoco tra tutti i dispositivi di rete prodotti siano essi schede di rete, router, switch od altro. Quando configuriamo un sistema con un particolare indirizzo IP vengono fatte, da parte del sistema operativo, degli invii in broadcast3 sulla rete dell’informazione “indirizzo IP = MAC address”. Tale informazione serve a preparare le tabelle ARP, Address Resolution Protocol che ogni host della rete utilizza per attivare una connessione con una particolare macchina. Avendo la possibilità di utilizzare un analizzatore del traffico di rete è possibile vedere tutte le informazioni che vengono fatte circolare e, tra queste, anche quelle relative all’identificazione degli indirizzi fisici delle macchine collegate. 3 Realizzazione Passiamo ora alla fase pratica di queste dispense: la realizzazione della nostra rete locale simulata. Faremo uso, infatti, di un particolare software che simulerà la presenza di diversi computer su un unico sistema. Il software in questione è VMWare: grazie a questo prodotto è possibile simulare un intero personal computer a partire dalla fase di boot e relativa configurazione del bios, alla definizione di quali elementi caratterizzino la macchina simulata (numero di harddisk e loro dimensioni, quantità di memoria, ecc.). 3.1 La nostra rete Ci proponiamo di realizzare una rete locale costituita da tre postazioni sulle quali saranno installati sistemi operativi diversi. In particolare windows 95, Debian GNU/Linux e RedHat Linux. 3 Gli apparati di rete sono programmati in modo tale da ricevere messaggi inviati a due soli indirizzi fisici: il proprio e quello che identifica tutte le postazioni ovvero FF:FF:FF:FF:FF:FF. Quest’ultimo valore viene utilizzato quando si cerca di contattare un indirizzo IP del quale non si conosce ancora l’indirizzo MAC. 5 Utilizziamo indirizzi IP della classe C ed in particolare della rete 192.168.1.0/24 attribuendo i seguenti nomi: Nome Pippo Pluto Paperino Indirizzo IP 192.168.1.1 192.168.1.2 192.168.1.3 S.O. RH 7.2 Debian 2.2 Win 95 Tabella 1: Gli hosts della nostra rete. Il passo da compiere è quello di attribuire gli indirizzi alle rispettive macchine. Per far questo esistono procedure che variano in base al sistema operativo e al tipo di installazione fatta. In fase di installazione è già possibile fornire tutti i parametri necessari, ma supponiamo di volerlo fare in un secondo momento. Vediamo le procedure da seguire in base al sistema operativo da configurare. 3.2 Configurazione di Unix Le due installazioni linux differisco per alcuni file da modificare e la loro posizione. In generale un sistema unix racchiude i suoi file di configurazione all’interno della directory “/etc”: al suo interno troviamo informazioni su tutto il sistema. Analizziamo prima di tutto i file in comune tra le due distribuzioni: • /etc/hosts: un semplice elenco contenente indirizzo IP e nome associato consentendo di ricordare il solo nome alfanumerico di una postazione al posto dei valori numerici; 127.0.0.1 192.168.1.1 192.168.1.2 192.168.1.3 localhost.localdomain localhost pippo.labo.it pippo pluto.labo.it pluto paperino.labo.it paperino • /etc/resolv.conf: in tale file vengono impostate le informazioni relative al dominio internet di appartenenza e gli indirizzi di eventuali server DNS (Domain Name System): domain labo.it nameserver 192.168.1.1 • /etc/host.conf: definisce la sequenza di risorse da interrogare quando si deve risolvere un indirizzo IP o un nome di un host. Tipicamente viene data precedenza al file hosts ed in seguito si invia una richiesta al server DNS; order hosts,bind 6 • /etc/networks: contiene il nome della rete o delle reti alle quali si è collegati. Non è un file vitale e infatti in RedHat non è presente, ma può risultare utile gestendo un sistema connesso a più reti. labo.it 192.168.1.0 Passiamo ora a considerare la configurazione di rete specifica delle distribuzioni utilizzate. 3.2.1 Configurazione di RedHat Linux Sono possibili almeno due possibilità: una prima si basa sull’uso di “netconf”, una seconda consiste nella modifica manuale di alcuni file di sistema. Grazie a “netconf” tutta la configurazione avviene in modo guidato: vengono richieste via via le informazioni necessarie per impostare correttamente la scheda di rete insieme ad eventuali valori di gateway, DNS, ecc.. Nel caso si decida di intervenire direttamente sui file di sistema è necessario entrare nella directory “/etc/sysconfig” e verificare che il file “network” contenga: NETWORKING=yes HOSTNAME=pippo.labo.it A questo punto è necessario spostarsi in “/etc/sysconfig/network-scripts” e verificare i valori contenuti in “ifcfg-eth0”: DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0 Attraverso le diverse voci vengono definite: il nome dell’interfaccia (DEVICE), il valore dell’indirizzo IP (IPADDR) e del netmask di rete (NETMASK). 3.2.2 Configurazione di Debian GNU/Linux Nel sistema Debian la configurazione di tutte le interfacce viene realizzata attraverso il file “/etc/network/interfaces”: # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface iface lo inet loopback # The first network card - this entry was created during the Debian # installation (network, broadcast and gateway are optional) iface eth0 inet static address 192.168.1.2 7 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 Le voci contenute in tale file sono analoghe e quelle che troviamo nei file di un sistema RedHat. 3.3 Configurazione di windows Nel caso di windows possiamo intervenire unicamente attraverso schermate grafiche: Start - Pannello di controllo - Rete. Visualizzare quindi le proprietà del protocollo TCPIP4 , modificare i valori nelle cartelle “Indirizzo IP” e “DNS” in base alle necessità5 . Anche in ambiente windows esiste il file “hosts”. In realtà l’installazione dei protocolli di rete fa comparire il file “hosts.sam” ovvero un file d’esempio che può essere utilizzato come template per la versione definitiva. La sua collocazione varia in funzione della versione di windows: “\windows” o “\winnt\system32\drivers\etc”. 3.4 Verifichiamo la rete Impostate correttamente le configurazioni delle tre macchine è ora possibile verificare che si “vedano” attraverso la rete. Per far questo possiamo utilizzare il programma più conosciuto per eseguire questo tipo di test: il programma “ping”. Da ogni postazione possiamo provare ad eseguire: [utente@host utente]$ ping <IP della macchina da testare> Se la macchina che cerchiamo di contattare e quella dalla quale lanciamo il “ping” sono correttamente collegate dal punto di vista fisico, il software di rete è correttamente configurato su entrambe e non ci sono ulteriori problemi di comunicazione, riceveremo una risposta dalla postazione destinataria dei pacchetti generati dal ping. Ripetendo questa verifica per ogni sistema avremo la certezza che la rete sia funzionante e che ogni macchina sia in grado di raggiungere le altre. Durante questi test oltre a verificare la corretta configurazione dei sistemi stiamo, in realtà, anche riempendo le loro tabelle arp. Se, infatti, andassimo a controllare il traffico di rete troveremmo messaggi del tipo: 11:03:23.447122 arp who-has paperino.labo.it tell paperino.labo.it 11:03:23.490414 arp who-has pippo.labo.it tell pluto.labo.it 4 Nel caso non sia presente è necessario aggiungerlo usando il tasto “Aggiungi”, protocolli, Microsoft, TCPIP. 5 In base alla versione di windows le finestre possono avere nomi diversi o con diverse sequenze di menù. 8 11:03:23.495068 11:03:27.797398 11:03:27.797917 11:03:53.191396 11:03:53.191477 11:03:57.911651 11:03:57.913766 11:05:05.416764 11:05:05.420030 4 arp arp arp arp arp arp arp arp arp reply pippo.labo.it is-at 0:50:56:5d:0:51 who-has pluto.labo.it tell pippo.labo.it reply pluto.labo.it is-at 0:50:56:5d:0:68 who-has pippo.labo.it tell paperino.labo.it reply pippo.labo.it is-at 0:50:56:5d:0:51 who-has paperino.labo.it tell pippo.labo.it reply paperino.labo.it is-at 0:50:56:5d:0:40 who-has pippo.labo.it tell pluto.labo.it reply pippo.labo.it is-at 0:50:56:5d:0:51 Miglioriamo la rete Con quanto illustrato si è in grado di mettere in rete una postazione a prescindere dal sistema operativo: noti i valori per la configurazione specifica della rete utilizzata si tratta solo di impostare correttamente alcuni file o maschere di sistema. Tuttavia, essere costretti ad utilizzare gli indirizzi numerici non può certo dirsi comodo soprattutto se si deve spesso far uso delle macchine in rete. Per risolvere questo problema è stato utilizzato inizialmente il file “/etc/hosts”: agli inizi dello sviluppo di Internet veniva mantenuto un unico file periodicamente copiato su tutte le postazioni collegate in rete. In ambito di piccole reti locali si rivela una soluzione di veloce e facile gestione fino a che il numero di hosts da gestire rimane nell’ordine di qualche decina di unità. Nel nostro caso sono sufficienti quattro righe per fare ciò. Un sistema cosı̀ gestito si rivelò presto insostenibile e portò alla realizzazione del sistema DNS. Si tratta di un sistema decentralizzato e gerarchico con una struttura ad albero: ció ha reso possibile la suddivisione della rete in domini e sotto domini, consentendo di delegare ai diversi responsabili la gestione degli elenchi di propria competenza. Possiamo, quindi, aumentare il valore della nostra rete configurando un DNS per essa, semplificando da subito la gestione di eventuali nuovi host. La macchina sulla quale configureremo tale sistema sarà “pippo” ed il server DNS sarà realizzato con il pacchetto Bind, universalmente riconosciuto come “Il server DNS”. Un’altra funzionalità utile, soprattutto per la postazione windows, è la possibilità di “vedere” una postazione unix e i suoi dischi condivisi: in pratica vedere una postazione unix navigando tra le risorse di rete di windows. Per questo esiste il pacchetto SAMBA che implementa le stesse funzionalità di rete di una postazione windows consentendo di emulare anche un server windows NT/2000. 9 4.1 Configuriamo un DNS La configurazione del DNS avviene attraverso alcuni file. Il principale si trova in “/etc” con il nome di “named.conf”. In tale file sono presenti le direttive principali del sistema e le indicazioni su dove trovare le informazioni circa le “zone”6 che saranno gestite. Ecco il file “named.conf” per il nostro esempio dove il nome del dominio sarà “labo.it”: _______________________________________________________________ options { directory "/var/named"; }; // // a caching only nameserver config // controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; // info rete labo.it zone "1.168.192.in-addr.arpa" IN { type master; file "1168192.rev"; }; zone "labo.it" IN { 6 Con tale termine si intende l’elenco che contiene le associazioni dei nomi agli indirizzi IP per un dato dominio o sottodominio. È possibile utilizzare uno o più file di zona organizzando in modo opportuno gli hosts da gestire. È ovviamente necessario specificare, nella configurazione del DNS, quanti e quali file considerare per la definizione della propria area di competenza. 10 type master; file "laboit.soa"; notify no; }; include "/etc/rndc.key"; _______________________________________________________________ Utilizzando le direttive necessarie per personalizzare il comportamento del nostro server vengono definite le directory di lavoro, “/var/named”, dove ricercare i file di zona, direttiva “zone ... IN”, il tipo di DNS che si va a configurare per ogni zona, direttiva “type master”. Questo perchè stiamo configurando unicamente un server DNS primario. Se volessimo attivare anche un servizio di backup per un dominio, ad esempio, “labo.com” dovremmo aggiungere le seguenti righe: _______________________________________________________________ zone "labo.com" IN { type slave; file "labocom.soa"; masters { 12.68.6.1; }; }; _______________________________________________________________ Con queste direttive il nostro server DNS si collegherà a quello primario del dominio “labo.com” e creerà il file “labocom.soa”7 inserendovi tutte le informazioni che gli saranno inviati dal DNS. Le prime tre zone consentono il funzionamento base di un server DNS in grado di svolgere “caching”: ogni volta che una richiesta raggiunge il server DNS la risposta viene registrata in un’apposita cache in modo tale da risparmiare tempo e banda per nuove richieste analoghe. In particolare le zone “localhost” e “0.0.127.in-addr.arpa” definiscono le informazioni relative all’interfaccia di loopback8 , mentre la zona “.” definisce la radice dell’intero sistema DNS. Nel file “named.ca” sono infatti elencati i root name servers mondiali, ovvero i DNS che si trovano al di sopra di ogni altro server di dominio. Passando quindi ai file per la risoluzione diretta e inversa dei nomi è sufficiente compilarli in modo simile a quanto viene fatto per il file “hosts” oltre, ovviamente, ad alcune differenze dovute alla presenza delle direttive necessarie per il server DNS. 7 La scelta delle estensioni dei file “.soa” e “.rev” è a discrezione del gestore del server come anche la disposizione e struttura dei file di zona utilizzati. In particolare “.soa” indica “Star Of Authority”, in quanto server primario, “.rev” poichè relativo alla risoluzione inversa. 8 Un’interfaccia fittizia, alla quale viene attribuito indirizzo IP 127.0.0.1, utilizzata per fare riferimento alla macchina locale. In tal modo è possibile utilizzare software di rete anche senza essere provvisti di una scheda di rete reale. 11 Compilati in base alle nostre esigenze, è necessario far partire in server e impostare, nelle macchine della rete, il nuovo valore del server DNS. Ecco il file relativo alla risoluzione diretta, da nome ad indirizzo IP: _______________________________________________________________ ; laboit.soa risoluzione diretta $TTL 86400 @ IN SOA @ ns.labo.it. ( 2002033000 ; serial (d. adams) 3H ; refresh 15 ; retry 1W ; expiry 1D ) ; minimum ; NS ns pippo A 192.168.1.1 ns CNAME pippo pluto A 192.168.1.2 paperino A 192.168.1.3 _______________________________________________________________ E quello relativo alla risoluzione inversa, da indirizzo IP ad nome: _______________________________________________________________ ; 1168192.rev risoluzione inversa $TTL 86400 @ IN SOA ns.labo.it. root.labo.it. ( 2002033000 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS ns.labo.it. 1 IN PTR pippo.labo.it. 2 IN PTR pluto.labo.it. 3 IN PTR paperino.labo.it. ______________________________________________________________ In entrambi vengono indicati i valori che possiamo ritrovare nel file hosts, ma anche valori relativi ai tempi di validità delle informazioni fornite e il numero di serie della particolare configurazione. In particolare con i valori di TTL, Serial, Refresh, Retry, Expire, Minimum andiamo a definire i tempi che devono essere considerati accettabili per la durata di una richiesta gestita dal server, eventuali timeout per l’attesa di risposte da altri server e soprattutto il numero di versione del file di configurazione della zona. 12 Il valore del campo Serial viene infatti utilizzatto nella comunicazione con i server secondari per stabilire la presenza di eventuali aggiornamenti ed attivare eventuali trasferimenti per il nuovo file di zona. Infine, nella definizione degli host della rete, troviamo le direttive “A” e “IN PTR” per legare i valori degli indirizzi IP con i nomi degli host e la direttiva “CNAME” per definire ulteriori nomi, detti alias, associati ad un indirizzo IP. Nel caso specifico l’indirizzo 192.168.1.1 è raggiungibile con i nomi “pippo” e “ns”. Per far partire il servizio è quindi necessario lanciare da root il comando: “/etc/init.d/named restart”, oppure “service named restart” sotto RedHat Linux. Per maggiori informazioni consiglio di leggere la documentazione fornita con il pacchetto Bind e il DNS-HOWTO. 4.2 Configuriamo SAMBA Una volta “messe in rete” le macchine, queste sono in grado di “vedersi” attraverso i normali tool come “ping”, “traceroute” o “tracert”. Utilizzando un sistema windows può quindi sembrare naturale trovare tra le risorse di rete tutte le macchine della nosta rete siano esse windows che unix. In realtà i meccanismi che stanno dietro alle “Risorse di rete” è ben più complesso e per questo motivo è stato sviluppato il progetto SAMBA: consente di mostrare postazioni unix a macchine windows, di condividerne dischi e stampanti, di emulare un server windows NT/2000 per la gestione delle Home Directory e dell’autenticazione. Nel nostro caso ci limiteremo al suo utilizzo per far “vedere” la macchina pippo tra le risorse di rete e accedere alla home directory dell’utente “test”. Il file di configurazione di SAMBA si trova in “/etc/samba/smb.conf”: _______________________________________________________________ # Samba config file created using SWAT # from paperino.labo.it (192.168.1.3) # Date: 2002/03/30 19:57:15 # Global parameters [global] workgroup = DISI server string = Samba Server encrypt passwords = Yes printing = lprng [homes] comment = Home Directories read only = No 13 create mask = 0664 directory mask = 0775 browseable = No [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No _______________________________________________________________ Dalle prime righe possiamo leggere data di creazione e la macchina dalla quale è stato configurato. In questo caso tale configurazione è stata ottenuta utilizzando SWAT un tool via web che consente di configurare un server SAMBA attraverso la rete ed un browser internet. In particolare vengono mostrate le variabili di base per definire il workgroup di appartenenza9 , l’utilizzo di password criptate e la definizione di due share10 di default “[homes]” e “[printers]”. La suddivisione in sezioni consente di gestire al meglio le funzionalità che si intendono offrire. La sezione “global” è obbligatoria in quanto definisce il tipo di server SAMBA che si va a configurare: possiamo definire la configurazione di un semplice workgroup o di un dominio con le relative funzionalità di autenticazione degli utenti. Le altre sezioni possibili sono presenti in base a quanto indicato nella sezione “global”. Nel caso più semplice si condivide lo spazio relativo alle Home Directory degli utenti attraverso lo share “homes”, possiamo di conseguenza definire le politiche di accesso a tale area impostando in modo opportuno i valori indicati, insieme alle stampanti presenti sul server con lo share “printers”. Per far partire il servizio è quindi necessario lanciare da root il comando: “/etc/init.d/smb restart”, oppure “service smb restart” sotto RedHat Linux. Una volta attivato SAMBA è necessario creare l’account sia dal punto di vista del sistema sia dal punto di vista degli utenti riconosciuti dal servizio. È quindi necessario eseguire i seguenti comandi: “adduser test”11 , con il quale aggiungiamo l’utente test tra gli utenti riconosciuti dal sistema, “smbpasswd -a test”, con il quale aggiungiamo l’utente test tra gli utenti riconosciuti da SAMBA. A questo punto l’utente disporrà di un account funzionante per l’accesso al sistema e che consentirà all’utente test del sistema windows di accedere alla 9 Quando si realizza una rete tra postazioni windows è necessario definire un gruppo di lavoro, oppure un dominio di appartenenza, all’interno del quale racchiudere le macchine. 10 Si parla in generale di servizi offerti: autenticazione, condivisione di stampanti e spazi disco. Nel caso delle home degli utenti si parla più semplicemente di share. 11 In realtà, a seconda della distribuzione utilizzata, questo comando assegna anche una password o lascia bloccato l’account fino a che non ne viene impostata una valida. In RedHat, ad esempio, è necessario creare l’account e poi fornire una password con il comando “passwd test”. 14 propria home sul server linux. Anche in questo caso consiglio di leggere la documentazione fornita con il pacchetto e di visitare il sito del progetto “samba.org”. 5 Conclusioni Con queste poche pagine non si può sperare di raccogliere tutte le informazioni tipicamente necessarie per configurare e mantenere una rete locale: non basta assegnare degli indirizzi IP coerenti e collegare tra loro le macchine, ma è necessario attivare alcuni servizi che rendano effettivamente utile l’adozione di una tecnologia di rete. In genere si ricorre a una rete per condividere risorse come dischi, stampanti, scanner, ma il tutto deve essere organizzato con un minimo di criterio per evitare di trovarsi in una situazione più scomoda della precedente. Non ho la pretesa di aver spiegato le cose nel modo migliore e più chiaro possibile: per questo motivo ogni feedback è ben accetto per migliorare/integrare quanto presentato in modo che si traduca in qualcosa di veramente utile, anche se limitato. Buon Lavoro!!! 15