LEZIONE 12 INFORMATICA GENERALE Prof. Luciano Costa Ottimizzazione grafica di Orfeo Magnanimo Le reti Cominceremo parlando del modello Peer to peer, che per comodità d'ora in avanti chiameremo P2P; questo modello non è molto utilizzato nelle LAN, a meno che non esista nessun accesso alla rete esterna attraverso un gateway e si vogliano semplicemente condividere le cartelle in rete. Il P2P ha trovato invece un grosso riscontro direttamente su Internet, il primo esempio di P2P è stato sicuramente il vecchio Napster, anche se in realtà non si trattava di un vero P2P in quanto esisteva un server centrale: il rapporto di parità (P2P infatti significa da pari a pari) sussisteva unicamente fra i client che si scambiavano i file. Oggi sono ormai tantissimi i circuiti di P2P reali, da Morpheus a Kazaa, a Gnutella a WinMX, Mule e BitTorrent; ma il concetto fondante rimane lo stesso, il P2P viene utilizzato ormai quasi esclusivamente per lo scambio di file su internet; ovviamente il P2P ha anche altre applicazioni, che potrebbero essere considerate più interessanti e “nobili”, alcune delle quali riguardano il VoIP, ovvero la telefonia attraverso internet, tuttavia si tratta di una percentuale, al momento del tutto esigua. Le reti Ma oltre alla navigazione web e allo scambio di file, cosa si può fare con le reti? Tantissime cose! Invio di e-mail, chat, VoIP, videoconferenze, condivisione di file e cartelle, creazione di siti web e caricamento tramite FTP, ascoltare la radio o crearsene una propria, giocare online, iscriversi agli esami universitari, la possibilità di seguire lo stato di avanzamento delle verbalizzazioni degli esami in tempo reale. Questa è ovviamente solo una piccola percentuale di ciò che si può fare con le reti e con Internet, limitato solamente dalla vostra fantasia e creatività. Le reti Configurazione di una LAN Veniamo ora alla parte pratica: se mi volessi costruire una rete per conto mio? La prima cosa da fare è la pianificazione della rete, bisogna sapere quanti computer vanno collegati e quale deve essere la topologia della rete: può essere ad anello (la rete cosiddetta Token-ring ormai obsoleta e non più utilizzata da anni se non nei vecchi uffici), a stella (con un server-gateway centrale e i client intorno), o con forme più complesse per una rete di estensioni maggiori con diverse sottoreti. Disegno Esempio di rete composta da 5 PC di cui uno agisce da gateway Le reti Assumiamo di avere 5 computer, di cui uno collegato ad Internet tramite modem, e di volerli collegare fra di loro: la rete che prenderemo in considerazione sarà la più utilizzata oggi negli ambienti piccoli, una semplice LAN a stella. Ogni computer dovrà possedere una scheda di rete “ethernet” se vogliamo creare una rete cablata, oppure una scheda di rete Wi-Fi[1], nel caso volessimo creare una rete senza fili.Per non complicare troppo la faccenda utilizzeremo le classiche schede ethernet, creeremo quindi una rete cablata, ciò significa che ci dovremo anche procurare dei cavi ethernet, uno per ogni computer, nel nostro caso quindi ce ne servono 5 di tipo “patch”, ossia NON incrociati. [1]Il Wi-Fi (Wireless Fidelity) funziona in modo un po' diverso dalle reti cablate e presuppone l'esistenza di diversi tipi di rete: ad-hoc, con access point, managed ecc... Le reti su ogni scheda è presente un solo connettore ethernet, ci serve qualcos'altro quindi per poter collegare tutti i computer assieme. Ciò che ci manca è un componente hardware, potremmo prendere un HUB oppure uno switch, si tratta di una scatolina che permette di collegare insieme più PC, grazie alle numerose prese ethernet che possiede. La differenza fra HUB e switch è piuttosto tecnica: praticamente in presenza di un HUB i dati che partono dal computer A per raggiungere E transitano anche attraverso B, C e D, sono quindi a loro visibili tramite appositi software detti sniffer; con lo switch si elimina questo problema e si evitano anche possibili congestioni di rete. Nel caso dovessimo collegare solo 2 PC fra di loro sarà sufficiente un cavo ethernet di tipo crossover, ossia incrociato, e non avremo bisogno di nessun HUB o switch. Illustrazione: un cavo di rete Le reti Illustrazione: Switch 8 porte (visto dal retro) Ricapitolando, abbiamo 5 PC, di cui uno collegato ad Internet tramite modem, abbiamo comprato un switch da almeno 5 porte, abbiamo comprato i cavi di rete ethernet della lunghezza necessaria per collegare i computer: possiamo quindi dire che dal punto di vista hardware abbiamo già tutto, non ci resta che collegare tutti i PC all'HUB o allo switch tramite i cavi di rete e configurare il tutto. Le reti Nel caso di utilizzo di Windows XP, agiremo così: 1] Apriamo “Connessioni di rete” sul computer che possiede il modem e che quindi agirà da gateway, facciamo click destro > Proprietà> Avanzate sulla connessione Internet che utilizziamo. Selezioniamo adesso “Consenti ad altri utenti in rete di collegarsi tramite la connessione Internet di questo computer”, poi selezioniamo dall'elenco a tendina subito sotto “Connessione alla rete locale(LAN)”. 2] A questo punto chiudiamo la finestra e sempre da Connessioni di rete facciamo click destro>Proprietà su “Connessione alla rete locale (LAN), su “Generale”, scorrendo l'elenco incontriamo la scritta “Protocollo Internet (TCP/IP), clicchiamo ancora su Proprietà ed impostiamo “Ottieni automaticamente un indirizzo IP e Ottieni indirizzo server DNS automaticamente. Illustrazione Configurazione di rete - passo 1 Le reti Illustrazione Configurazione di rete - passo 2 Per i computer client sarà sufficiente ripetere il passo n° 2. Ora riavviamo i PC e dopo aver effettuato il collegamento ad Internet dal computer principale, gli altri PC potranno accedervi liberamente. Abbiamo realizzato una rete di 5 computer di cui uno agisce da gateway, complimenti! Le reti Questa è la parte pratica, ma avete capito veramente cosa abbiamo fatto? In pratica ogni computer dispone di un indirizzo, che permette di identificarlo fra gli altri, si tratta dell'indirizzo I.P. (Internet Protocol), ed è costituito da un gruppo di quattro numeri separati da un punto, ad esempio il nostro gateway ha l'IP192.168.0.1 . Più che ogni computer sarebbe più corretto dire ogni scheda di rete, infatti si possono avere computer con più di una scheda di rete, ognuna con un indirizzo diverso, si tratta sempre del nostro gateway, che per semplicità d'ora in avanti chiameremo GW; esso infatti possiede una scheda di rete ethernet ed un modem, che è sempre un dispositivo di rete. Sorge subito un problema: ammettiamo la seguente situazione: GW=192.168.0.1 | 151.100.34.131 client1=192.168.0.2 client2=192.168.0.3 client3=192.168.0.4 client4=192.168.0.5 Le reti Potrebbero esistere migliaia di reti come questa connesse ad Internet, e proprio per questo motivo sono state create delle classi di indirizzi riservate: la classe 192.168.x.x è ad esempio una classe riservata all'utilizzo nelle LAN, proprio per questo sarà impossibile trovare su Internet un computer il cui IP sia simile a quello dei computer della nostra rete, ed ecco che il GW avrà un indirizzo “interno” valido nella nostra LAN, grazie alla scheda ethernet, ed un indirizzo IP esterno del modem che potrà essere qualcosa di simile a 151.100.34.131. In sostanza la nostra rete dagli altri computer su internet verrà vista come un unico computer il cui IP è 151.100.34.131. Dunque noi con la configurazione praticamente automatica di Windows, abbiamo fatto in modo che il GW assegni automaticamente[1] gli indirizzi IP agli altri computer della LAN, evitando così di configurare gli IP di ogni singola macchina, poi abbiamo fatto in modo che gli altri PC in LAN vedano il computer con indirizzo 192.168.0.1 come GW, e quindi facciano transitare i dati attraverso di esso per accedere ad un'altra rete, che nel nostro caso è Internet. [1]Si tratta della funzione DHCP (Dinamic Host Configuration Protocol), attraverso un server DHCP è possibile fare in modo che gli indirizzi IP vengano automaticamente assegnati all'interno di una rete e che venga assegnato automaticamente il server DNS da utilizzare per le connesioni. Le reti Avrete fatto caso durante la configurazione di rete abbiamo posto una spunta anche su “Ottieni indirizzo server DNS automaticamente”, ma cos'è un DNS? Il DNS, Domain Name System, permette a tutti noi di navigare su Internet immettendo indirizzi facilmente memorizzabili dagli esseri umani, o meglio dal nostro homo pauper. In pratica ci permette di visitare il sito con indirizzo IP 193.205.217.198 semplicemente digitando un indirizzo molto più semplice da ricordare come può essere http://www.comunicazione.uniroma1.it, in pratica i computer connessi ad Internet fanno riferimento ad un server DNS ogni volta che si digita un indirizzo: digitando http://www.comunicazione.uniroma1.it il server DNS farà una ricerca inversa e ci indirizzerà sul sito 193.205.217.198 senza che noi ce ne stiamo a preoccupare ed in modo assolutamente trasparente. La stessa cosa poteva essere fatta, con qualsiasi altro sistema operativo che supporta la connettività di rete come Linux, Unix, MacOS, Amiga ecc...ovviamente le procedure di configurazione sarebbero state diverse, ma non il concetto ed il risultato finale. Le reti Le Virtual Private Network (VPN) Una rete privata virtuale è il modo più economico per realizzare una rete privata utilizzando anziché linee telefoniche private, cablaggi che collegano le diverse LAN e vari altri strumenti per realizzare reti di vaste dimensioni, la semplice connessione ad un network pubblico quale può essere Internet. Le VPN sono una realtà piuttosto recente, prima solo poche ricche società potevano permettersi di possedere una rete privata, poiché dovevano possedere od affittare linee dedicate per collegare i diversi uffici sparsi sul territorio; oggi invece le reti private sono alla portata di tutti, grazie alla loro “virtualizzazione”. L'obbiettivo di una VPN è quello di fornire ad un'azienda le stesse potenzialità di una rete privata reale ad un costo minore. Le reti Per essere più chiari cercherò di spiegarvi a grandi linee il funzionamento di una VPN, che se spiegata approfonditamente risulterebbe di difficile comprensione a meno che voi non siate degli amministratori di rete... In pratica, come è stato accennato precedentemente, Internet funziona grazie al protocollo TCP/IP (Trasfer Control Protocol/Internet Protocol), quello che avviene in una VPN è un incapsulamento, in gergo tunneling, ed una criptazione dei pacchetti di dati inviati all'interno del protocollo TCP/IP Le reti Così è un po' complesso, ma con un esempio pratico vi renderò tutto più chiaro: -Il computer A deve mandare un file al computer B che si trova in un'altra sede dell'azienda e quindi raggiungibile tramite VPN; -Il computer A e il computer B sono entrambi collegati ad Internet tramite la LAN; -Il computer A allora cripta il file con una chiave nota anche a B, e lo incapsula all'interno di pacchetti TCP, il computer B riceve il file incapsulato e criptato e lo decripta automaticamente, in quanto possiede la chiave di decriptazione ed è già configurato per eseguire tale operazione. La comunicazione fra A e B risulterebbe totalmente trasparente, come se il computer B si trovasse nella stessa LAN di A. Le reti Un eventuale hacker che cercasse di intercettare il traffico fra A e B che transita su Internet dovrebbe deincapsulare i pacchetti e decriptarli, operazione questa che risulterebbe molto difficile, anche perchè in genere le chiavi delle VPN vengono cambiate spesso e quindi anche se l'hacker fosse riuscito a trovare la chiave, nel frattempo la chiave potrebbe già essere cambiata, mantendo quindi la comunicazione fra A e B sicura e segreta. Le reti I Firewall Come forse avrete sentito dire “un computer collegato ad una rete non e' mai sicuro”, tuttavia nonostante in informatica la sicurezza completa non esista mai, ci si può cerchere di avvicinarsi ad essa tramite appositi strumenti. Uno di questi e' il firewall, letteralemente “muro di fuoco”, tramite di esso si possono filtrare numerosi attacchi verso il proprio PC e la propria rete, o limitare gli accessi ad alcune risorse, sia interne che esterne. Per poter configurare un firewall, che d'ora in avanti chiameremo FW, bisogna sapere 2 cose, cosa sono gli indirizzi IP, e cosa sono le porte software: gli IP abbiamo già imparato a conoscerli, ma le porte software? Ebbene si tratta di porte virtuali aperte dai programmi che hanno bisogno effettuare o ricevere comunicazioni, in totale sono 65527, ma non si utilizzano tutte, proprio per questo è stato scelto un numero così grande, in modo da poter avere sempre un gran numero di porte disponibili. Le reti Esistono dei numeri di porte famosi che sono associate a programmi altrettanto noti, ad esempio le porte 20 e 21 sono associate all'FTP, la 22 a SSH per il controllo remoto criptato di un computer, la 23 al telnet per il controllo remoto del PC,la porta 25 all'SMTP per inviare la posta, la 80 al server web http, e così via. Ammettiamo allora di avere un server web che gira sul nostro computer, siamo collegati ad Internet, ma vogliamo che solo un nostro amico con indirizzo 123.123.123.4 possa accedere ad esso attraverso Internet e nessun altro. Abbiamo quindi l'indirizzo (123.123.123.4), e la porta che ci interessa (80), non ci resta quindi che permettere l'accesso dalla porta 80 unicamente a quell'IP ed impedirlo agli altri indirizzi.Ciò è semplice ed intuitivo con le recenti interfacce per la creazione di FW che ci chiedono ogni qualvolta un altro computer tenta di stabilire una connessione con il proprio computer se permettere a quel computer di collegarsi o meno. Le reti Un altro utilizzo del FW potrebbe essere quello di impedire ai bambini di accedere a siti non adatti a loro, ad esempio potremmo impedire totalmente la connessione al sito www.porkypig.com tutelando così le connessioni uscenti oltre che quelle entranti. Ma non finisce qui, grazie a tecniche di firewalling avanzate potremmo ridurre la velocità di connessione di specifici computer all'interno della LAN per evitare il sovraccarico, oppure impedire il collegamento ai server P2P tramite il blocco delle porte utilizzate dai programmi di P2P. Naturalmente le possibilità offerte dai FW sono infinite, anche se molti FW per Windows per essere molto “user friendly”, alla fine riducono di molto la possibilità di effettuare una configurazione avanzata, proprio per questo molto spesso i FW di reti importanti si basano su server Linux con il suo FW integrato configurato appositamente da un amministratore di rete esperto. Le reti I Pericoli e le potenzialità delle reti Come avrete capito le reti offrono molte potenzialità, ma sono anche luogo di pericoli informatici, come potrebbe essere l'accesso non autorizzato ad un computer privato con la successiva acquisizione di informazioni sensibili. All'interno di una LAN potrebbe essere ad esempio utilizzato uno sniffer software, un programma cioè che in presenza di altri computer collegati in rete tramite semplici HUB ed assenza di switch, è in grado di catturare tutto il traffico transitante in quella rete, rendendo così disponibili indirizzi di siti visitati, password, email ecc... Nella pagina seguente si può vedere lo sniffer “ethereal” in azione in ambiente Linux, sono evidenti le richieste di collegamento ai domini http://gabriele.astrofili.org, http://comunicazione.uniroma1.it, http://www.gunbound.net e http://www.kernel.org oltre ai relativi IP di partenza, di destinazione, protocolli e porte software utilizzati e tipi di pacchetti inviati. Le reti Gli sniffer generalmente sono pericolosi solo nelle reti locali, ma altri pericoli si annidano nelle reti: virus, worm e spyware e altro software maligno, proprio per questo è buona norma fornire il proprio computer delle protezione adeguate tramite i programmi adeguati: stiamo parlando quindi di firewall, antivirus (che deve essere aggiornato almeno una volta a settimana, pena risultare inefficacie) ed anti-spyware. Per riprendere le potenzialità delle reti potremmo parlare dei cluster. Si tratta di aggregati di computer (cluster in inglese vuol dire appunto gruppo) collegati fra di loro, in grado di agire come un grande, unico supercomputer a basso costo, ma ad alte prestazioni. Le reti In genere per creare un cluster si utilizzano computer fra di loro tutti uguali, facendoci girare sopra sistemi operativi compilati appositamente per poter funzionare come cluster, generalmente si tratta di macchine Linux, Unix, Sun, e SGI; recentemente anche la versione di Windows 2003 Professional ha incluso un supporto per il clustering, ma è ancora ad uno stadio primordiale e limitato ad un ristretto numero di nodi (cioè di computer costituenti il cluster). Le reti Data l'enorme potenza di calcolo fornita dai cluster, essi vengono generalmente impiegati in ambienti dove essi sono realmente recessari, ad esempio nelle “Render Farm” dove vengono utilizzati per creare ambienti tridimensionali altamente dettagliati come quelli che si vedono negli effetti speciali dei film; altri esempi di utilizzo dei cluster sono quelli del calcolo scientifico, molto utilizzati in astronomia, oppure quelli dei motori di ricerca: Google infatti adotta un sistema di cluster atto a restituire a chi ne fa richiesta i risultati della ricerca in milioni di siti in tempi inferiori al secondo! Fine