Realizzazione di una soluzione integrata cablata/wireless per una infrastruttura di rete dipartimentale.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Realizzazione di una soluzione integrata cablata/wireless per una infrastruttura di rete dipartimentale."

Transcript

1 Università degli Studi di Perugia Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Realizzazione di una soluzione integrata cablata/wireless per una infrastruttura di rete dipartimentale. Candidato Simone Pascarosa Relatore Prof. Leonello Servoli Correlatore Mirko Mariotti Anno Accademico

2 2

3 Indice 1 Introduzione Enti coinvolti nel progetto Dipartimento di Fisica dell Università di Perugia Sezione di Perugia dell Istituto Nazionale di Fisica Nucleare Situazione attuale della rete Il progetto della rete Funzioni da implementare Requisiti hardware e software La rete nascosta I servizi condivisi Flessibilità, estensioni, aggiornamenti e modifiche Tecnologie Virtual LAN Storia Funzionamento e terminologia Configurazione di VLAN su un computer Wireless Extended Service Set Il progetto INFN/TRIP La rete aperta per i convegni Sicurezza, autenticazione e controllo: RADIUS AAA e RADIUS Il protocollo RADIUS Il nostro server RADIUS FreeRADIUS Certificati digitali X.509: sicurezza garantita Crittografia Public Key Infrastructure Certificato digitale Il formato X.509 per certificati digitali Directory service con LDAP Storia Perché non usare un database relazionale? Struttura directory e formato delle entry Referrals e chaining Schema: attributi e classi di oggetto

4 3.5.6 Server LDAP slave La nostra directory Virtualizzazione per alta affidabilità Virtualizzazione di piattaforma con Xen EVMS: virtualizzazione dei dischi Realizzazione Struttura generale della rete Indirizzamento IP Implementazione VLAN Aggiunta dei VLAN ID Tagging delle porte Configurazione VLAN con SSID multipli su AP wireless Implementazione del progetto TRIP Configurazione Access point per 802.1x Configurazione Captive portal Configurazioni RADIUS Configurazione directory LDAP Configurazione servizio slapd Inserimento entry per lo startup Configurazione repliche LDAP Configurazione DNS e DHCP Configurazione DHCP Configurazione DNS Configurazione delle macchine virtuali Installazione di Xen Configurazione dei domu Configurazione router e firewall Uso di interfacce grafiche per la gestione del sistema Migrazione Conclusioni 105 4

5 Elenco delle figure 1.1 Schema della rete del Dipartimento di Fisica/INFN Modello di rete privata Associazione di un server ad una o più reti VLAN Trama Ethernet con IEEE 802.1q Esempio di comunicazione in modalità Tagged Esempio di comunicazione in modalità Untagged Interfacce virtuali per l uso delle VLAN Meccanismo di proxying del server RADIUS Schema di una sessione di autenticazione 802.1x Schema dell autenticazione via Captive Portal Processo di autenticazione RADIUS standard Schematizzazione dei servizi RADIUS centralizzati su LDAP Struttura gerarchica dei server RADIUS INFN Meccanismo di cifratura simmetrica Meccanismo di cifratura asimmetrica Meccanismo di Referral di LDAP Meccanismo di Chaining di LDAP Meccanismo di replica di LDAP Schema semplificato dell architettura di XEN Schermata di aggiunta di una VLAN sullo switch 3Com Aggiunta di porte in modalità Tagged ad una VLAN Definizione della VLAN Untagged per una porta dello switch Esempio di separazione dei domini VLAN Configurazione delle VLAN sugli Access Point Cisco Configurazione degli SSID sugli Access Point Cisco Configurazione dell autenticazione sugli Access Point Cisco Dettaglio della configurazione dei metodi di cifratura Meccanismo di replica in LDAP Gerarchia delle configurazioni del DHCP su LDAP Domini della rete privata Gerarchia delle configurazioni del DNS su LDAP Router di frontiera con le reti servite Schermata principale di phpldapadmin Gerarchia di una directory LDAP con phpldapadmin Definizione degli attributi di una entry con phpldapadmin Strutturazione dei file del programma LDAPaccess

6 4.18 Aggiunta di un nuovo computer portatile con LDAPaccess LDIF per la registrazione di un nuovo computer portatile Dettaglio dei computer posseduti da un utente con LDAPAccess 102 6

7 Capitolo 1 Introduzione Questa tesi presenta il lavoro svolto dal candidato presso il Dipartimento di Fisica dell Università di Perugia, in collaborazione con l Istituto Nazionale di Fisica Nucleare, per la realizzazione del nuovo impianto di rete cablata e wireless dell edificio che ospita i due enti. Il lavoro è stato svolto principalmente nel periodo da Marzo a Settembre Perché realizzare questo tipo di rete La realizzazione di una rete come descritta da questa tesi risponde ad alcune necessità specifiche degli enti che la utilizzeranno, ma può benissimo rispondere alle necessità di altre realtà simili. In particolare deve prevedere la possibilità di condividere gli apparati di rete tra gli enti in gioco, ma nel contempo dare la possibilità di creare reti separate. 1.1 Enti coinvolti nel progetto Dipartimento di Fisica dell Università di Perugia Il Dipartimento di Fisica dell Università di Perugia nasce il 30 ottobre Ad oggi conta 31 professori, tra ordinari ed associati, ed 11 ricercatori. Inoltre all interno del dipartimento lavorano 24 dottorandi. Il dipartimento opera in stretta collaborazione con l Istituto Nazionale di Fisica Nucleare, con l Istituto Nazionale per la Fisica della Materia, con alcune Agenzie Spaziali ed Enti di Ricerca sparsi in tutto il mondo. I principali campi di ricerca in cui è coinvolto il personale sono l astrofisica, la fisica della materia, la fisica sperimentale delle particelle e astroparticelle e la fisica teorica. Il dipartimento di Fisica si inserisce nella Facoltà di Scienze Matematiche Fisiche e Naturali dell Università degli Studi di Perugia, che fu una tra le prime libere università sorte in Italia, eretta a Studium Generale l 8 settembre Ad oggi l Università degli Studi di Perugia è suddivisa in 11 facoltà, con circa iscritti in totale, provenienti da tutta Italia. 7

8 1.1.2 Sezione di Perugia dell Istituto Nazionale di Fisica Nucleare L INFN è l ente dedicato allo studio dei costituenti fondamentali della materia e svolge attività di ricerca, teorica e sperimentale, nei campi della fisica subnucleare, nucleare e astroparticellare 1. La ricerca fondamentale in questi settori richiede l uso di tecnologie e strumenti di ricerca d avanguardia, che l INFN sviluppa nei propri laboratori e in collaborazione con il mondo dell industria. L Istituto promuove inoltre il trasferimento delle competenze, delle metodologie e delle tecniche strumentali sviluppate nell ambito della propria attività verso campi di ricerca diversi quali la medicina, i beni culturali e l ambiente. Tutte queste attività si svolgono in stretta collaborazione con il mondo universitario. L INFN venne istituito l 8 Agosto 1951 da gruppi delle Università di Roma, Padova, Torino e Milano, al fine di proseguire e sviluppare la tradizione scientifica iniziata negli anni 30 con le ricerche teoriche e sperimentali di fisica nucleare di Enrico Fermi e della sua scuola. L attività dell INFN si basa su due tipi di strutture di ricerca complementari: le Sezioni e i Laboratori Nazionali. Le 19 Sezioni hanno sede in dipartimenti universitari e realizzano il collegamento diretto tra l Istituto e le Università. I quattro Laboratori, con sede a Catania, Frascati, Legnaro e Gran Sasso, ospitano grandi apparecchiature e infrastrutture messe a disposizione della comunità scientifica nazionale ed internazionale. Il personale dell INFN conta circa 2000 dipendenti propri e quasi 2000 dipendenti universitari coinvolti nelle attività dell Istituto e 1300 giovani tra laureandi, borsisti e dottorandi. Si chiamano associati coloro che definiscono una collaborazione con l ente per progetti di ricerca pur non essendo dipendenti. 1.2 Situazione attuale della rete Finora le due reti, quella di INFN e quella del Dipartimento di Fisica, coesistono in modo indipendente all interno dell edificio, anche se possono parlarsi attraverso un gateway che le mette in comunicazione; per il resto le due reti sono fisicamente separate, cioè ognuna ha i propri switch, i propri cavi e i propri server. Vediamo schematicamente la rete odierna dell edificio del Dipartimento di Fisica nella figura 1.1. In verde è riportato il dominio della rete di Fisica 2, mentre in blu quello di INFN. Si noti la presenza di almeno 2 switch per ogni piano, uno per dominio. Problemi della coesistenza di due reti nello stesso edificio Questa struttura porta ad avere, ad ogni piano dell edificio, armadi con 2 o 3 switch, anche non completamente utilizzati, vista la necessità di avere la rete di Fisica su uno switch e quella INFN su un altro. Inoltre il cablaggio delle stanze deve essere tenuto sotto controllo e bisogna fare attenzione a quale switch 1 queste informazioni sono prese dal sito ufficiale di INFN[1] 2 nel resto della tesi verrà usato il nome Fisica, intendendo il Dipartimento di Fisica dell Università di Perugia 8

9 Figura 1.1: Schema della rete del Dipartimento di Fisica/INFN attaccare un certo cavo (nel periodo di stage ho imparato l importanza delle etichette sui cavi!). Altro grande problema si presenta quando una persona passa da un ente ad un altro: se un ricercatore INFN diventa dipendente del Dipartimento di Fisica, si dovrebbe procedere a registrare nuovamente i suoi dati presso il nuovo ente e a ricreare tutte le configurazioni necessarie. 9

10 10

11 Capitolo 2 Il progetto della rete Il progetto della nuova rete del Dipartimento di Fisica di Perugia vuole sfruttare gli apparati di rete esistenti per creare una infrastruttura di rete scalabile, flessibile e condivisa tra i due enti che risiedono nell edificio cioè il Dipartimento di Fisica e la sezione di Perugia dell Istituto Nazionale di Fisica Nucleare. La rete dovrà permettere la navigazione dei computer su Internet, l utilizzo delle risorse interne, quali stampanti, server di posta, griglia di calcolo e degli altri servizi fondamentali. Le necessità di amministrazione e gestione della rete prevedono che i due domini 1 siano separati, anche se gli apparati di rete, soprattutto quello di collegamento e commutazione, sono gestiti in collaborazione tra i due enti. Questa separazione verrà realizzata con la tecnologia IEEE q detta anche VLAN, Virtual LAN. Si prevede anche di creare un sistema di gestione centralizzata delle configurazione dei servizi di rete principali per facilitare la creazione di repliche ridondanti di tali server, per evitare replicazioni inutili di dati importanti e per centralizzare in un unico servizio le informazioni di configurazione, autenticazione ed autorizzazione per i servizi. La gestione sarà implementata con un directory server usando il protocollo LDAP. Per aumentare l affidabilità e la disponibilità dei servizi, si prevede di creare delle copie ridondanti di alcuni servizi critici tramite tecniche di virtualizzazione. Il progetto vuole creare un sistema di amministrazione, configurazione e controllo delle reti che sia il più possibile facile, flessibile, sicuro, affidabile e mantenibile. 2.1 Funzioni da implementare Separazione in apparati comuni e linee comuni Con la nuova struttura, le due reti saranno realizzate sulle stesse apparecchiature di comunicazione (switch e cavi), ma con la tecnologia IEEE 802.1q possiamo separare i domini delle due reti, riducendo il numero dei dispositivi e gli sforzi di gestione. Questo porta certamente ad una condivisione della responsabilità tra 1 nel resto della tesi il termine dominio verrà usato in alternativa a rete; altri usi del termine saranno chiari dal contesto 2 Institute of Electrical and Electronics Engineers, uno dei principali enti di standardizzazione internazionali in informatica 11

12 gli amministratori delle due reti, ma sicuramente facilita il controllo, aumenta la flessibilità e l aggiunta di nuovi dispositivi alla rete. Facilità di configurazione di molti server con la centralizzazione Ciascun servizio di rete, come l assegnazione degli indirizzi IP (DHCP), le stampanti condivise, la risoluzione dei nomi a dominio (DNS), il controllo degli accessi, ha necessità di configurazione diverse: per ciascuno di questi, esistono altrettanti software che li implementano e ciascuno di essi ha una propria configurazione. Per ogni configurazione, nello specifico per ogni file di configurazione, esistono altrettante regole di sintassi, comandi e parole chiave da imparare, che sovente obbligano l amministratore a noiose ricerche su manuali e guide di riferimento. L idea di questo progetto è quella di centralizzare tutte le configurazioni dei servizi principali, nel nostro caso DHCP, DNS, autenticazione e PROXY, in un unico servizio informativo che sia di facile accesso ed abbia un interfaccia standard al fine di poter creare applicazioni personalizzate per svolgere certi compiti. Questo servizio informativo sarà critico per tutta la struttura di rete, poichè ciascun server andrà a leggere la sua configurazione facendo delle interrogazioni su di esso; possiamo perciò immaginare la sua criticità sia in termini di sicurezza che di affidabilità. Il servizio informativo messo in piedi permette quindi di replicare facilmente le macchine server, sia in caso di guasti della macchina stessa, sia in caso di indisponibilità; non essendoci più file di configurazione lunghissimi, l unica informazione da scrivere nel server sarà quella che lo indirizza al servizio informativo. Economia nell acquisto degli apparati di rete con la separazione dei domini Un punto a favore di questa struttura è il lato economico. Come già accennato nei paragrafi precedenti, la condivisione degli apparati di rete e dei cavi diminuisce i costi sia di acquisto di nuovi apparati che di cablaggio. Con la struttura precedente della rete, quando uno switch di INFN esauriva le porte e c era necessità di una porta per un nuovo computer, si doveva acquistare un nuovo switch. Adesso che gli switch sono condivisi tra le due reti, si può bilanciare il numero dei PC tra gli switch già esistenti, visto che gli switch sono comuni tra le due reti. Con la tecnologia delle VLAN (o IEEE 802.1q) si diminuiscono anche i costi di cablaggio, visto che se un ufficio ha bisogno di accedere sia alla rete INFN che a quella del Dipartimento di Fisica non deve avere più due cavi che portano ad altrettanti switch, ma su un singolo cavo può far coesistere comunicazioni per l una e per l altra rete, semplicemente configurando la propria postazione in modo opportuno. Economia nell acquisto dei server tramite virtualizzazione La virtualizzazione è ormai una realtà consolidata. Permette di creare versioni virtuali di una risorsa, nel nostro caso un sistema operativo, che agisce come se fosse la sua versione reale. I server che implementiamo in questo progetto 12

13 sono virtuali, perché a ciascun server virtuale corrisponde una macchina reale sulla quale viene eseguito, ma ciascuna macchina reale può eseguire più server virtuali con la virtualizzazione dei sistemi operativi. Con questo sistema possiamo far eseguire anche diversi server virtuali su un unica macchina reale. La configurazione migliore che sembra garantire buone prestazioni è quella che prevede di far girare 4 server virtuali (o macchine virtuali) su una sola macchina fisica. In questo modo ci siamo risparmiati l acquisto di 3 server... un bel risultato! Altro vantaggio dell uso delle macchine virtuali è che al loro interno possiamo mettere solo lo stretto necessario, riducendo il rischio di crash del server e di errori di sistema causati da software non necessari, riducendo anche la dimensione su disco dei filesystem di queste macchine. In pratica creiamo dei piccoli server special purpose, virtuali, che condividono la stessa macchina reale sulla quale vengono eseguiti. Nella sezione vedremo come riuscire a cablare queste macchine virtuali che naturalmente condividono l interfaccia di rete del server reale e come, attraverso il VLAN Tagging, riusciamo ad associare ciascun server alle reti che deve servire, risparmiando anche sulle interfacce di rete necessarie. Economia nell acquisto di software Altro fattore, che incide pesantemente sul risparmio che questa struttura di rete porta, è la scelta di usare software libero 3, vista anche la buona esperienza sia del candidato che dei suoi relatori con il software libero, e specialmente con il sistema operativo GNU/Linux. L uso di software libero, oltre ad abbattere, nella maggior parte dei casi, i costi di acquisto, aumenta la configurabilità, l adesione agli standard dei software rilasciati sotto licenze libere e facilita la personalizzazione del software. Il software libero, checché ne dicano i suoi detrattori, ha raggiunto un livello di stabilità, di standardizzazione e di utilizzo tale da poter sostituire completamente quello proprietario, soprattutto nel campo dei server di rete. Tutte le tecnologie che abbiamo utilizzato sono standard consolidati; anche se esistono soluzioni proprietarie per alcune parti di questo progetto (ad esempio Active Directory per l autenticazione), abbiamo preferito usare sempre software libero. Flessibilità nella definizione di nuove reti private Un elemento non secondario, conseguenza dell utilizzo della tecnologia VLAN per la separazione delle reti, è la flessibilità nella creazione delle reti (il termine rete, in questo contesto, denota un dominio di collisione Ethernet, cioè una rete a livello Data Link ISO/OSI 4 separata dalle altre). Allo stato attuale ci sono 14 domini diversi, ma nessuno ci vieta di crearne di nuovi. Se per esempio avessimo la necessità di creare una rete riservata alla quale agganciare PC di diversi piani, basterebbe creare un VLAN ID per la nuova rete, assegnando i TAG necessari alla porte dello switch con i PC interessati. Tutto questo senza necessità di acquisto di nuovi switch o di cablaggi ulteriori, che si renderebbero 3 inteso come quel software che permette la libertà di eseguire il programma per qualunque scopo, di studiarlo e modificarlo, di copiarlo e distribuirlo e di migliorarlo e rilasciare i propri miglioramenti a tutti perché tutti ne traggano beneficio 4 International Standard Organization/Open System Infrastructure, modello di riferimento per le reti informatiche composto da una pila a 7 livelli 13

14 necessari visto che la rete dovrebbe essere separata fisicamente dalle altre. La separazione fisica è realizzata con i VLAN ID. Il compito delle VLAN è quello di creare reti logiche indipendenti su una stessa rete fisica; al contrario delle sottoreti che tendono a creare gerarchie di reti. Criticità, svantaggi e rischi Le criticità introdotte da questa struttura sono diverse. Prima di tutto la coesistenza di due reti, afferenti a due enti diversi, sulle stesse apparecchiature, porta la necessità di condividere la responsabilità tra i gestori delle due reti; inoltre, l errore di uno degli amministratori, anche se riguarda una configurazione della propria rete, potrebbe provocare un down della rete dell altro ente, con evidenti conseguenze sulla disponibilità di quella rete. Gli apparati, quali switch, cavi e router, diventano critici perché un loro malfunzionamento compromette il funzionamento non solo della rete a cui appartengono ma di tutti i domini che passano attraverso questi. La centralizzazione delle configurazioni (oltre agli evidenti vantaggi già enunciati) comporta alcuni svantaggi: anche per le configurazioni dei servizi la responsabilità deve essere condivisa tra gli amministratori delle reti interessate; inoltre le macchine che svolgono questo servizio informativo sono dei point of failure per le reti, infatti un down del servizio di centralizzazione delle configurazioni (LDAP) porterebbe al down di tutti i servizi interessati, come DHCP, DNS, autenticazione wireless ecc. Per aggirare questo problema, le macchine che implementano il servizio saranno replicate in una gerarchia che garantirà una maggiore disponibilità del servizio anche nel caso in cui una delle macchine smettesse di funzionare. Il servizio informativo ed il router di frontiera tra i diversi domini sono le macchine più critiche dal punto di vista della sicurezza; le politiche dovranno essere adeguate, sia per quanto riguarda il controllo degli accessi, che consentirà l accesso solo agli amministratori, sia per quanto riguarda il traffico in entrata e in uscita, permesso solo alle macchine che devono leggere le proprie configurazioni. 2.2 Requisiti hardware e software I requisiti hardware per la realizzazione del progetto sono molto simili a quelli di una normale rete di computer. Per quanto riguarda il cablaggio, i requisiti sono la presenza di almeno 1 porta con connettività Gigabit Ethernet per connettere tutti gli switch di dorsale al centro stella della rete ed uno switch che supporti Gigabit Ethernet; inoltre tali switch devono supportare lo standard 802.1q per definire l associazione di ciascuna porta dello switch ad un dominio. Saranno necessari degli switch Managed cioè ai quali possa essere assegnato un indirizzo IP per la gestione di queste configurazioni. Anche gli Access Point Wireless devono supportare la tecnologia 802.1q e devono poter annunciare più di una rete wireless 5. 5 per rete wireless si intende un SSID che identifica una rete wireless, come descritto nel paragrafo

15 Per il cablaggio abbiamo usato cavi UTP 6 Cat.5 per le tratte dagli switch di piano ai computer e cavi STP 7 Cat.7 per le tratte dagli switch di piano al centro stella (per supportare le trasmissioni a frequenze fino a 1Gbit/sec). I dispositivi già presenti sono switch 3com 3300 e HP Procurve 2848 ad ogni piano. Per il centro stella abbiamo scelto uno switch 3com Come Access Point usiamo Cisco Aironet 1100 e Come server per ospitare le macchine virtuali abbiamo utilizzato dei server SuperMicro o comunque possiamo utilizzare qualunque macchina di livello server può andare bene. Per ospitare comodamente 4 macchine virtuali in funzione, le macchine reali dovranno avere un processore da almeno 2 GHz di clock, con almeno 1 GB di memoria RAM da condividere tra le macchine virtuali. Per quanto riguarda lo spazio disco, non ci sono particolari requisiti, tranne quello che l hard disk dovrà avere una capacità tale da contenere tutti i filesystem delle macchine virtuali ed il filesystem del sistema di monitoraggio di queste. Per quanto riguarda i dispositivi di rete c è bisogno che le interfacce di rete delle macchine reali possano comunicare a velocità sostenuta, di almeno 100Mbit/sec, meglio se 1Gbit/sec, visto che una stessa interfaccia potrebbe essere utilizzata da più macchine virtuali. Il controllo sull autenticazione dei portatili sulla rete wireless verrà fatto tramite server RADIUS 8, quindi gli access point devono supportare questa modalità. Il software di rete del sistema operativo sia delle macchine virtuali, che della macchina reale di monitor deve supportare le VLAN. Lo stack di rete del sistema operativo GNU/Linux, nello specifico quello delle distribuzioni Gentoo e Debian, supportano questa tecnologia. Nei computer degli utenti della rete, non c è necessità di alcun supporto delle VLAN, a meno che questi non debbano, per particolari necessità, avere interfacce di rete su più di una rete. Quindi dal lato utente non c è bisogno di alcuna modifica o upgrade del software. 2.3 La rete nascosta Una delle novità più evidenti della nuova rete è il fatto che gli indirizzi di rete pubblici, sia del dipartimento di Fisica, che dell INFN, non vengono più dati ai singoli utenti su singole postazioni, ma vengono riservati solo ai servizi di rete (che con l adozione di nuove tecnologie aumentano). Per indirizzo IP 9 pubblico si intende un indirizzo registrato presso un ISP 10 che può essere contattato direttamente da qualsiasi host su Internet. La rete nascosta (o rete privata) è una struttura che permette di realizzare proprio questa separazione tra il dominio locale della rete ed Internet, come mostrato in figura 2.1. Fino ad oggi, quindi, i computer della rete del Dipartimento erano accedibili da qualunque computer connesso ad Internet: questo per varie necessità, ad esempio per i docenti per mettere a disposizione materiale per gli studenti o ai ricercatori per poter scambiare facilmente dati e informazioni con altri ricercatori in giro per il mondo. La nuova struttura permetterà ai computer della rete 6 Unshielded Twisted Pair, coppia di cavi incrociati senza schermatura 7 Shielded Twisted Pair, coppia di cavi incrociati con schermatura 8 una descrizione del sistema RADIUS viene data nel paragrafo Internet Protocol, il protocollo di rete di Internet 10 Internet Service Provider, fornitore di accesso ad Internet 15

16 Figura 2.1: Modello di rete privata interna di navigare qualunque sito Web o di contattare qulunque host nella rete, viceversa, un utente di Internet non può contattare direttamente un computer interno. Analizziamo più attentamente i vantaggi/svantaggi di questa soluzione. Vantaggi: i computer della rete Interna sono più protetti dagli attacchi esterni perché non sono direttamente raggiungibili dalla rete di Internet; vengono risparmiati indirizzi IP pubblici; è facilitato il controllo degli accessi, il tracciamento delle connessioni e la registrazione dell utilizzo della rete; abbiamo a disposizione molti più indirizzi, visto che possiamo scegliere arbitrariamente la classe di indirizzi IP da usare e quindi la dimensione massima della nostra rete, perciò allarghiamo il limite dei servizi che possiamo offrire. Svantaggi: i computer della rete interna non sono contattabili direttamente da Internet, anche se si possono definire delle associazioni sul router di frontiera della rete per renderli visibili; l installazione e la configurazione sono più complicate rispetto alla vecchia struttura. Impatto sugli utenti Uno dei requisiti della migrazione è quello di diminuire il più possibile l impatto sugli utenti della modifica. Effettivamente, chi utilizza un computer fisso non dovrà effettuare alcuna modifica, visto che sia in passato, che nella nuova rete, viene utilizzato un server DHCP 11 che distribuisce le configurazioni di accesso 11 Dynamic Host Configuration Protocol, protocollo per la configurazione degli host su rete 16

17 alla rete ai computer. Quindi per l utente finale non ci sarà alcuna modifica, tranne il fatto che non si potrà più accedere direttamente al proprio computer da Internet, con le caratteristiche appena evidenziate. Per gli utenti che si collegano con un portatile l unica modifica da fare sarà il nome della rete wireless (l ESSID 12 ) e, per gli ospiti, l inserimento di nome utente/password sulla schermata di autenticazione. VLAN per rappresentare l afferenza delle reti Con rete nascosta intendiamo tutto l insieme delle reti, nascoste appunto, che vengono realizzate nell edificio. Tecnicamente parlando infatti, non viene realizzata una singola rete (a livello IP), ma diverse reti, una per ogni ambito di lavoro (dipartimento, INFN, wireless, laboratori ecc.). Quando si parla di rete nascosta, si intende perciò la struttura di queste varie reti. La suddivisione delle Virtual LAN permette di creare tante reti separate, senza moltiplicare il numero degli switch. Immaginiamo per esempio un palazzo di sei piani, come quello del Dipartimento di Fisica, con due reti separate: dovremmo avere un numero di switch pari alla reti possibili per ogni piano, quindi n = numero piani, r = numero reti numeroswitch = n r un numero esagerato! Con le VLAN non abbiamo più bisogno di uno switch per ogni ente ad ogni piano. Gli switch che useremo dovranno essere più intelligenti della semplice commutazione: infatti devono poter controllare il codice della VLAN (TAG) al quale il pacchetto appartiene ed eventualmente modificare tale codice. Ciascuna rete singola rappresenta una rete a se stante a livello IP; cioè le varie VLAN si comportano come se fossero varie reti separate (come d altronde succedeva nella vecchia struttura del dipartimento), ma che condividono le stesse attrezzature hardware e software per funzionare. L amministratore, configurando gli switch e impostando le politiche più appropriate, può spostare un computer da una VLAN ad un altra in modo trasparente. Questo grazie al meccanismo del VLAN Tagging delle porte, che verrà spiegato nel paragrafo Grazie alle VLAN creiamo delle reti separate inserendo dei codici nel traffico, che permettono di associare un pacchetto o una porta di uno switch ad una certa rete. Il meccanismo è flessibile, infatti possiamo associare un computer ad una o più reti VLAN diverse, senza modificare le funzionalità di rete già esistenti e con un overhead relativamente basso. La complessità naturalmente si sposta sullo switch che deve essere configurato in modo adeguato per far passare i pacchetti per le VLAN previste nel modo giusto. Reti separate con servizi in comune Finora abbiamo parlato di suddivisione, separazione ed indipendenza. Si prevede di realizzare comunque dei servizi comuni a tutte le singole reti. 12 si veda il paragrafo per maggiori informazioni 17

18 In generale, la struttura permette, attraverso il router che connette le varie VLAN ad Internet, di fornire dei servizi agli utenti, anche diversificandoli secondo la propria tipologia. Nello specifico possiamo realizzare sulla rete servizi di proxying, di accesso remoto alla propria postazione da Internet o accesso alle stampanti condivise. 2.4 I servizi condivisi I servizi di rete principali sono il DHCP, il DNS 13 e l autenticazione 14. Questi servizi sono condivisi tra tutte le reti create, perché indispensabili per l accesso alla rete e ad Internet. Esistono anche delle risorse che sono condivise solo da alcune reti, come ad esempio le stampanti. La flessibilità della rete permette di creare servizi che rispondano ad una o più reti. Infatti basta associare lo specifico server alle VLAN alle quali è interessato, registrarlo opportunamente sul DNS ed il gioco è fatto. Figura 2.2: Associazione di un server ad una o più reti VLAN Come mostra la figura 2.2 possiamo associare un server alle reti VLAN che ci interessano semplicemente collegando la sua scheda di rete ad uno switch che sia connesso a tali reti; successivamente basta far conoscere al server i codici di queste reti (indicate con i colori nell immagine) per realizzare il collegamento. La configurazione di questi servizi è stata centralizzata in un directory server che garantisce: omogeneità delle configurazioni, che non sono distribuite su vari file e server, ma controllate da un unico servizio; robustezza dei dati ed affidabilità, infatti se un server andasse in crash, potremmo tirare su una sua copia e leggere le configurazioni dal directory server, che consideriamo affidabile 15 ; 13 Domain Name Service, servizio di risoluzione dei nomi a dominio 14 che riguarda il riconoscimento di un utente sulla rete 15 il directory server sarà replicato in diverse copie che si mantengono aggiornate da una copia principale, il master, e rispondono alle richieste in modalità load balancing 18

19 integrità dei dati, perché l aggiunta di nuove configurazioni non viene fatta modificando un file, ma tramite procedure personalizzate da noi create che garantiscono una certa protezione dagli errori umani e permettono di risalire facilmente alle informazioni relative ad un account, al suo possessore e, per esempio, ai computer registrati a suo nome. 2.5 Flessibilità, estensioni, aggiornamenti e modifiche Uno dei maggiori punti di forza della struttura è la sua flessibilità: la separazione forte tra la struttura fisica e la struttura logica della rete ci permette di giocare con le reti. Con il meccanismo delle VLAN disaccoppiamo completamente il concetto di dominio di collisione da quello di insieme di cavi, computer e switch collegati tra loro. Possiamo cioè creare, eliminare o modificare una qualunque rete nella struttura semplicemente andando a lavorare sulle configurazioni delle VLAN. Possiamo anche creare delle reti distribuite sui vari piani dell edificio ed associare un computer ad una qualunque di queste. Ciò potrebbe sembrare controproducente, perché un utente potrebbe collegarsi ad una rete alla quale non è autorizzato ad accedere, ma la configurazione degli switch decide, porta per porta, a quale rete possiamo accedere, e quindi limita l accesso di un computer ad una sola rete (la maggioranza dei casi). L accesso a più reti dovrebbe riguardare solo i computer di servizio, degli amministratori e altri server o postazioni che abbiano realmente tale necessità: la maggior parte dei computer dovrà accedere solo ad una rete, con la possibilità di entrare nelle altre attraverso il router; quest ultimo può permettere il passaggio di traffico fra varie reti VLAN senza intaccare l isolamento a livello 2 della pila ISO/OSI dei singoli domini. La centralizzazione delle configurazioni nel directory server permette di modificare facilmente ed in modo veloce qualunque impostazione dei servizi. Con la vecchia struttura se, ad esempio, dovevamo aggiungere un nuovo desktop alla rete di INFN, avremmo dovuto inserirlo all interno del file di configurazione del DHCP, poi aggiungerlo con un nome nel file di configurazione del DNS (avendo cura di modificare il seriale della zona modificata) ed infine riavviare tali servizi. Con la nuova struttura possiamo effettuare tutta questa configurazione in un colpo solo sul directory server, aggiungendo le dovute entry tramite l interfaccia da noi creata, come descritto nella sezione

20 20

21 Capitolo 3 Tecnologie Alcune delle tecnologie utilizzate in questo progetto sono datate e stabili, come il protocollo LDAP, altre più recenti come lo standard IEEE 802.1q. Sono state scelte quelle che garantiscono la maggiore interoperabilità e che forniscono interfacce e metodi di accesso consolidati e standardizzati. 3.1 Virtual LAN Una Virtual LAN o VLAN è un metodo di creazione di reti logiche indipendenti all interno della stessa rete fisica: permette di ridurre i broadcast domain 1 e facilita l amministratore di rete separando logicamente i segmenti di una LAN esistente. In sostanza le VLAN sono un concetto astratto di separazione delle reti a livello logico. Vantaggi: 1. Aumenta il numero dei broadcast domain, riducendo la dimensione di ciascuno, che quindi riduce il traffico di rete, aumentando la sicurezza della rete stessa 2. Riduce gli sforzi di gestione, soprattutto quelli connessi al mantenimento delle sottoreti 3. Riduce i requisiti hardware perché le reti sono separate logicamente e non fisicamente 4. Crea diversi switch logici all interno dello stesso switch fisico Il principale protocollo usato per configurare le VLAN è appunto l IEEE 802.1q, che descrive come possa essere partizionato il traffico su un singolo network fisico in più reti logiche, assegnando un TAG (cioè un etichetta) ad ogni frame con dei byte aggiuntivi che identifichino la rete virtuale alla quale il pacchetto appartiene. 1 concetto delle reti Ethernet che identifica l insieme dei dispositivi che ricevono il segnale trasmesso da uno qualunque dei nodi della rete, con una trasmissione detta appunto broadcast 21

22 3.1.1 Storia Prima dell introduzione dello standard IEEE 802.1q, esistevano diversi protocolli proprietari, come il Cisco ISL (Inter-Switch Link, una variante dell IEEE ) e il VLT (Virtual LAN Trunk) di 3Com. Lo standard 802.1q nasce storicamente con questi obiettivi 2 : le VLAN saranno implementabili su tutti i protocolli MAC dell architettura IEEE 802, su altri sistemi di comunicazione condivisi, ma anche su reti point-to-point le VLAN facilitano l amministrazione di gruppi logici di stazioni che comunicano come se fossero sulla stessa LAN. Facilitano anche la migrazione, l aggiunta e la modifica dei membri di un gruppo il traffico tra le VLAN è ristretto; gli switch spediscono traffico unicast, multicast e broadcast solo sui segmenti di LAN appartenenti ad una certa VLAN per quanto possibile verrà mantenuta la compatibilità con gli switch e le stazioni già esistenti Funzionamento e terminologia La separazione dei domini di collisione (o broadcast domain) lavora a livello 2 del modello ISO/OSI, cioè al livello Data-Link. Nella terminologia delle VLAN, il termine trunk denota una rete che trasporta diverse VLAN, identificate da etichette inserite all interno dei pacchetti. Come nel nostro caso esiste una rete comune che ospita tutte le VLAN. Questa rete è costituita da tutti gli switch di piano, dallo switch al centrostella e dal router di frontiera. Per motivi amministrativi il dominio principale ha come VLAN ID 3 il valore 1, che indica la rete che noi chiamiamo rete di controllo. Sopra questa vengono creati dei domini separati, ciascuno dei quali ha uno specifico VLAN ID. Per definire quali porte all interno di uno switch appartengono ad un dominio si usa il meccanismo dei TAG. Il TAG è un etichetta che viene associata ad una porta dello switch e che permette il passaggio di traffico per quel particolare dominio: il traffico per un dominio viene discriminato controllando il campo VLAN ID della trama Ethernet in arrivo. Figura 3.1: Trama Ethernet con IEEE 802.1q Come mostra l immagine 3.1, nella trama Ethernet esiste il campo VLAN ID, all interno del TAG, che contiene uno tra i possibili 4096 ID per dominio. Possiamo creare fino a 4094 diversi domini sulla stessa rete e non 4096, perché il 2 si veda il documento originale di standardizzazione dell IEEE [2] 3 Virtual LAN IDentifier, l identificatore della rete virtuale 22

23 VLAN-ID 0 identifica che un pacchetto non appartiene ad alcuna VLAN, mentre il VLAN-ID 4095 è riservato dal protocollo per motivi implementativi. I VLAN ID vengono decisi dall amministratore di sistema: dopo aver scelto un ID, questo deve essere configurato su tutti gli switch. Per aggiungere una porta di uno switch ad una VLAN basta configurare sullo switch stesso il TAG per quella particolare VLAN sulla porta. Una porta può far passare traffico per più VLAN contemporaneamente. Esistono 2 modalità di configurazione delle porte di uno switch per il passaggio delle VLAN: a modalità TAGGED: con questa modalità possiamo assegnare un numero arbitrario di TAG a ciascuna porta dello switch; lo switch controllerà il traffico in arrivo sulla porta e farà passare solo quello etichettato con uno dei TAG VLAN definiti per quella porta. In questo modo però i pacchetti in arrivo devono già contenere sull intestazione Ethernet, nel campo VLAN ID, il codice della VLAN a cui appartengono b modalità UNTAGGED: tutto il traffico in arrivo sulla porta, per il quale non è definito il campo VLAN ID, viene taggato cioè ad ogni pacchetto viene apposto il VLAN ID definito sulla porta in modalità UNTAGGED. Questo sistema serve per assegnare un VLAN ID ad uno stream di traffico, senza che i PC sappiano dell esistenza delle VLAN Le due modalità possono coesistere sulla stessa porta, definendo un VLAN ID in modalità UNTAGGED ed 1 o più VLAN ID in modalità TAGGED. Facciamo un breve esempio per esporre le due modalità. Modalità Tagged Come si vede in figura 3.2 una porta può essere configurata in modalità Tagged per far passare il traffico di una o più reti (nel nostro caso la rete Blu, Verde e Rossa); il client che è connesso a quella porta deve prendersi carico di apporre il giusto VLAN ID ai pacchetti in uscita, in modo tale che lo switch possa commutare il pacchetto verso le porte della VLAN di appartenenza. Modalità Untagged In figura 3.3 si vedeil comportamente della stessa porta vista nella figura precedente, definendo un VLAN ID in modalità Untagged (nello specifico il VLAN ID relativo alla rete Blu). Il client può anche non conoscere il meccanismo delle VLAN, nel qual caso tutti i pacchetti uscenti non avranno nessun TAG definito (nella figura sono i pacchetti di colore bianco): a questi pacchetti senza un TAG lo switch appone il codice della VLAN Untagged, cioè quello della rete Blu, come mostra l immagine. Se il client conosce le VLAN può apporre esso stesso un VLAN ID ai pacchetti (si noti il pacchetto verde nell immagine) che sarà distribuito dallo switch a tutte le porte appartenenti a quel segmento VLAN. 23

24 Figura 3.2: Esempio di comunicazione in modalità Tagged Figura 3.3: Esempio di comunicazione in modalità Untagged Configurazione di VLAN su un computer Dopo aver configurato le VLAN sugli switch, ci si chiede come associare un computer ad una Virtual LAN. Se colleghiamo il nostro computer ad una porta dello switch configurata in modalità UNTAGGED, non abbiamo bisogno di operare ulteriori configurazioni di sorta sul PC, perché la definizione del VLAN ID viene demandata allo switch: in questo modo il nostro computer può associarsi ad una sola rete. Per un server invece, che deve magari eseguire servizi per più di una rete, abbiamo necessità di definire a livello di interfacce di rete i VLAN ID. Per fare questo i sistemi operativi moderni, come ad esempio GNU/Linux, prevedono un meccanismo di interfacce di rete virtuali cioè delle astrazioni che permettano di definire dei wrapper 4 per le interfacce fisiche, ciascuno associato ad una VLAN diversa. 4 letteralmente rivestimento, in questo contesto identifica un pezzo di software che fornisce un interfaccia semplice all utente, nascondendo le specifiche dell applicazione che usa 24

25 Figura 3.4: Interfacce virtuali per l uso delle VLAN Come mostra la figura 3.4, in questo esempio abbiamo un computer con una sola interfaccia di rete reale, collegata ad una porta dello switch che fa passare in modalità TAGGED le VLAN 2 e 100. Ricordando che il meccanismo delle VLAN lavora a livello 2 della pila ISO/OSI, ci rendiamo velocemente conto che questo significa che dovremo avere un indirizzo IP per ognuna delle reti alle quali ci associamo 5. Per rappresentare questa situazione quindi si definiscono 3 interfacce virtuali, ciascuna delle quali è associata ad una VLAN diversa. Sui sistemi GNU/Linux possiamo usare il comando vconfig, che ci permette di creare una nuova interfaccia di rete virtuale associata ad un certo VLAN ID. La sintassi per la creazione di una interfaccia di rete virtuale per una VLAN è: vconfig <interfacciaretereale> <VLAN-ID> Eseguito il comando il sistema creerà una interfaccia virtuale con nome interfacciaretereale.vlan-id, per distinguere tra le interfacce create. A questo punto si può usare il nuovo dispositivo virtuale come se fosse una vera e propria scheda di rete indipendente dalle altre, con un suo indirizzo IP e un suo stack di rete separato. A basso livello succede che viene creato uno stack IPV4/IPV6 separato al quale associamo un indirizzo e dei dati diversi da quello dell interfaccia reale. Completate le fasi di analisi dei dati e di controllo il traffico viene taggato, cioè viene aggiunto il campo VLAN ID e viene passato all interfaccia reale che non fa altro che mandarlo sulla rete fisica. Sarà poi compito dello switch smistare questo traffico verso il resto della VLAN. 5 la rete descritta in questo progetto usa Ethernet come protocollo di basso livello e TCP/IP come protocolli di trasporto e di rete 25

26 Il meccanismo è simile a quello che sta alla base del networking per macchine virtuali. Infatti a ciascuna macchina virtuale possiamo far vedere solo le interfacce relative alle VLAN che la riguardano, così da aumentare la sicurezza per evitare che un intruso di una rete vada a bucare il server di un altra rete (altro vantaggio della separazione dei domini di collisione). 3.2 Wireless La tecnologia di connessione wireless ha cambiato il modo di pensare e di realizzare le reti di computer negli ultimi anni. Si parla oggi di Wireless Local Area Network, o WLAN, intendendo una rete locale realizzata con collegamenti senza fili, via etere principalmente. L etere ha permesso il cablaggio di aree dove finora era difficile realizzare cablaggi con cavi metallici o con altre tecnologie, pensiamo ai palazzi storici magari con mura in pietra. Questo mezzo permette soprattutto la copertura di vaste aree aperte, come quelle delle grandi fiere o di capannoni industriali a basso costo. Lo sviluppo delle reti wireless ha portato alla creazione di nuove tipologie di rete, vista la facilità di installazione e configurazione di un Access Point wireless, nello specifico parliamo oggi di: PAN: Personal Area Network, reti personali del raggio di qualche metro, che servono a collegare periferiche come macchine fotografiche digitali o stampanti ad un computer, ma anche per creare piccole reti di computer soprattutto per condividere file WLAN: Local Area Network wireless, sostitute senza fili delle reti locali, spesso impiegate per condividere l accesso alla rete Internet a portatili posizionati in un raggio di qualche decina di metri dal punto di accesso WAN: Wide Area Network, reti ad ampio raggio che servono a collegare computer dislocati su vaste aree geografiche, dell ordine anche di vari chilometri, spesso costituite da un insieme di punti d accesso sotto la stessa gestione Per ciascuna di queste tipologie di rete esistono tecnologie e standard di riferimento che ottimizzano in un caso la velocità di connessione, in altri la larghezza dell area di connettività, in altri ancora l affidabilità del servizio. Nel nostro caso la rete wireless non sostituisce la LAN tradizionale che rimane attiva per le postazioni fisse degli uffici, ma consente una connettività alternativa per i portatili, soprattutto per gli utenti ospiti, che partecipano ad un meeting e che vogliono potersi connettere ad Internet con il loro laptop. Le frequenze a cui lavorano questi strumenti (access point wireless, schede di rete wireless, ripetitori) sono solitamente 2.4GHz e 5GHz: questi valori vengono decisi a livello governativo e le due frequenze appena citate sono riservate appunto per trasmissioni di questo tipo. Nel nostro caso, diversamente da una rete composta da un singolo punto di accesso wireless (o Access Point) connesso ad Internet, abbiamo diversi Access Point dislocati sui piani dell edificio che devono annunciare tutti le stesse reti. Al contrario del cavo, sul quale passa il segnale di una rete, o comunque di reti conosciute, l etere è libera ed aperta (anche se ci sono delle restrizioni 26

27 di legge sulle bande di frequenza utilizzabili per le trasmissioni). Nasce perciò l esigenza di definire uno standard per l identificazione di una rete nell etere Extended Service Set Questo sistema è definito all interno dello standard (lo standard IEEE per le reti wireless): identifica un insieme di Access Point wireless connessi alla stessa rete fisica come un unico servizio. In pratica viene definito un nome per la rete wireless, detto SSID (Service Set IDentifier) definito su tutti i punti di accesso del palazzo. Grazie alla funzione del roaming, prevista dallo standard IEEE , un utente della LAN wireless così definita può passare da una cella, cioè dal raggio di azione di un Access Point, all altra senza risentire di alcuna interruzione del servizio in modo totalmente trasparente. Riassumendo, l SSID permette l identificazione di una rete wireless nell etere e il roaming tra due access point che appartengono alla stessa rete. L identificatore di una rete wireless si chiama ESSID, Extended Service Set Identifier, e permette l identificazione della rete, solitamente è una stringa che, anche semanticamente, rappresenta l utilizzo o il proprietario della rete Il progetto INFN/TRIP Il progetto INFN TRIP (The Roaming INFN Physicist) nasce all interno del Comitato Calcolo e Reti dell Istituto Nazionale di Fisica Nucleare e tenta di dare una risposta alla necessità dei dipendenti e dei ricercatori dell istituto di avere una connessione ad Internet anche quando questi si trovino in una sezione dell istituto diversa dalla propria, ad esempio per un convegno o una riunione. Come si legge nel documento di presentazione del progetto 6, le necessità alle quali tenta di rispondere sono: collegarsi alla rete locale e utilizzare da remoto i servizi della Struttura di appartenenza; utilizzare i servizi della Struttura ospitante (ad es. le stampanti) mettere le basi per una infrastruttura di Autenticazione ed Autorizzazione che possa essere sfruttata anche per altri servizi Fino a oggi, un ospite di una sezione INFN, anche se dipendente o associato all istituto 7, qualora si trovasse in una sezione diversa dalla sua, avrebbe dovuto contattare l amministratore di rete di quella struttura e fare una richiesta di accesso (fornendo quindi i propri dati personali). Con questa nuova infrastruttura, non ci sarà più bisogno di fare richieste, perché basterà autenticarsi sul server della sezione di provenienza, per essere autenticati anche sui server delle altre sezioni italiane, con il meccanismo del RADIUS proxying, che verrà spiegato nel paragrafo 3.3.4, qui riportato nella figura 3.5. In questo modo si snellisce sia il lavoro degli amministratori di sistema, che la burocrazia necessaria. Questa struttura potrebbe benissimo essere esportata si veda la guida all implementazione [3] 7 per una descrizione della struttura e dell organizzazione dell INFN si veda il paragrafo 27

28 Figura 3.5: Meccanismo di proxying del server RADIUS in qualunque ente organizzato in modo simile a INFN. I passaggi necessari per autenticarsi nella struttura ospitante sono: 1. richiesta dell utente; 2. trasmissione della richiesta alla Struttura di appartenenza per verificarne la legittimità; 3. trasmissione dell autorizzazione dalla Struttura di appartenenza a quella ospitante. Il progetto prevede 2 meccanismi principali di accesso che si basano entrambi sulla presenza di un servizio di autenticazione (il proxy RADIUS) che permette l autenticazione di un utente di qualsiasi sezione INFN. I meccanismi previsti da TRIP sono: IEEE 802.1x Captive Portal Il protocollo IEEE 802.1x Il protocollo IEEE 802.1x è uno standard per il controllo degli accessi ad una rete. Permette l autenticazione di dispositivi collegati ad una porta LAN, stabilendo una connessione point-to-point 8 con il client o impedendo l accesso qualora questi fallisca l autenticazione. Viene utilizzata anche sugli access point per reti wireless ed è basato su EAP 9. Il protocollo può essere localizzato a livello data-link della pila ISO/OSI; va ricordato che nasce come protocollo per reti cablate (infatti appartiene alla famiglia 802.1). L utilizzo in reti wireless permette di superare alcune vulnerabilità di WEP connessione diretta fra due postazioni 9 Extensible Authentication Protocol, protocollo di autenticazione spiegato nel prossimo paragrafo 10 Wired Equivant Privacy, protocolo di protezione delle comunicazioni wireless, definito dallo standard IEEE i 28

29 L autenticazione avviene tra il client (detto anche supplicant) e l Access Point (detto anche authenticator), ma il controllo delle credenziali, cioè l autenticazione vera e propria, viene effettuata da una terza entità, come un server RADIUS. Questo garantisce una autenticazione forte attraverso protocolli come l EAP-TLS. Questa commistione di accesso wireless e autenticazione 802.1x (nata per reti cablate) viene, impropriamente, definita come x (per alludere al protocollo per l accesso wireless). Vediamo il processo di autenticazione in 802.1x (sintetizzato nella figura 3.6): 1. quando uno switch (o un access point per il wireless) riconosce che un client (usiamo il termine supplicant, più appropriato) si è collegato ad una porta, o comunque sta tentando di accedere, lo switch abilita la porta e la mette in stato unauthorized (non autorizzato); in questo stato viene bloccato qualunque tipo di traffico, a livello data link, ad esempio DHCP o HTTP, ad eccezione del traffico 802.1x; 2. l authenticator (lo switch o l AP) manda una EAP-Request al client; 3. il supplicant risponde con una EAP-Response che l authenticator inoltrerà al server di autenticazione; 4. il server di autenticazione (nel nostro caso RADIUS) può accettare o rigettare la richiesta; 5. se accetta, l authenticator metterà la porta in stato authorized e quindi farà passare il traffico normale; quando il supplicant si disconnetterà, manderà un messaggio di EAP-logoff all authenticator che rimetterà la porta in stato unauthorized; 6. se la richiesta è stata rigettata, la porta rimane in stato unauthorized e il supplicant potrà tentare di nuovo l autenticazione. Figura 3.6: Schema di una sessione di autenticazione 802.1x Il protocollo garantisce un alto livello di sicurezza ed è flessibile, perché permette di usare vari algoritmi e meccanismi di autenticazione in EAP. 29

30 Il protocollo EAP Il protocollo EAP, Extensible Authentication Protocol, è un framework di autenticazione utilizzato nelle connessioni wireless e point-to-point, ma anche su LAN cablate. È definito nell RFC Si noti che EAP non è un meccanismo di autenticazione, ma un framework, che fornisce supporto per vari meccanismi di autenticazione (detti metodi EAP). Alcuni metodi come EAP-MD5, EAP-TLS ed EAP-TTLS utilizzano tecniche comuni, mentre si possono sviluppare meccanismi di autenticazione personalizzati sopra EAP. Quando viene avviata una sessione EAP, da un Access Point wireless ad esempio, vengono avviate le procedure necessarie alla creazione del tunnel di comunicazione per l autenticazione L EAP-TLS (EAP Transport Layer Security), definito nell RFC 2716 è uno standard molto buono per l autenticazione sicura; utilizza TLS che viene considerato il successore del famoso standard SSL 12. Usa la PKI 13 per instaurare comunicazioni sicure tra authenticator e server di autenticazione. Il suo svantaggio più grande è il forte overhead necessario per mettere in sicurezza le comunicazioni, è considerato infatti uno degli standard più sicuri ed è supportato dalle maggiori aziende del settore. La sua forza risiede principalmente nella necessità, da parte dell utente, di un certificato. Perciò non basta rubare una password per autenticarsi, ma bisogna avere un certificato valido per entrare, che quindi aumenta la sicurezza. Se infine i certificati fossero memorizzati su un supporto fisico come una smart card o una penna USB, sarebbe molto difficile, per un attaccante, accedere alla rete senza rubare anche la smart card o la penna USB. Lo standard EAP-MD5, definito nell RFC 3748, è un altro standard, aperto, ma che garantisce una sicurezza relativamente bassa; si basa infatti sulle funzioni hash MD5 che sono vulnerabili ad attacchi basati su dizionari e non garantiscono quindi una protezione ragionevole. Il progetto TRIP consiglia di utilizzare il protocollo EAP-TLS che garantisce una sicurezza molto alta; in futuro potrebbe essere prevista l autenticazione con smart card contenenti certificati X.509 che possono essere utilizzati anche per l accesso ad altre risorse oltre che alla connettività wireless. TRIP supporta numerosi metodi di autenticazione, in particolare via certificato X.509. Captive portal Il Captive Portal è un meccanismo molto user-friendly per controllare gli accessi su una rete wireless. Molti punti di accesso wireless, alberghi, stazioni ferroviarie, aereoporti o grandi città (ad esempio Roma) prevedono reti wireless ad ampio raggio con autenticazione su Captive Portal. L idea si basa sulla delega dell autenticazione ad un server di autenticazione; in questo contesto gli Access Point hanno una configurazione ed una conoscenza 11 Request For Comment, documenti di standardizzazione di formati e protocolli dell IETF, Internet Engineering Task Force 12 Secure Socket Layer, implementazione di un socket di comunicazione cifrato 13 Public Key Infrastructure, descritta nel paragrafo

31 delle informazioni di autenticazione molto ridotta (il che ne facilita il deployment); basti pensare a quanto man-power si guadagna in questo modo rispetto all elencazione di tutti i MAC-address 14 che hanno accesso alla rete. L autenticazione viene spostata dalla fase di associazione e assegnazione dell indirizzo IP alla fase di accesso alla rete pubblica. Vediamo in dettaglio la procedura che un client deve eseguire per accedere ad una rete di questo tipo (schematizzata in figura 3.7): 1. il client si associa al SSID della rete che prevede autenticazione con Captive Portal; 2. l AP lo associa e lo connette alla rete; il server DHCP prontamente gli fornisce un indirizzo IP, una maschera di rete, l indirizzo del gateway e tutte le altre informazioni necessarie alla navigazione (come server DNS ecc..); 3. il client ora ha accesso alla rete, ma l unica cosa visibile, appena connesso, è il gateway della rete stessa, che gli impedisce di uscire sulla rete esterna; 4. a questo punto deve aprire una finestra del suo web browser e connettersi al sito che preferisce (proprio qualunque sito): invece della solita pagina, la richiesta viene intercettata dal gateway della rete che propone una schermata di login per l autenticazione; 5. le credenziali da inserire possono essere varie: di solito si richiede accesso su nome utente/password; ma si può anche pensare di richiedere una onetime password 15 ad esempio per un convegno che dura un giorno; possiamo anche prevedere (come per la rete che stiamo implementando) l accesso tramite certificato digitale personale installato sul browser, che accetta la richiesta se riconosce valido il certificato; 6. la richiesta può essere gestita in svariati modi: tramite uno script CGI, uno script PERL, PHP e usare come server di autenticazione RADIUS, LDAP, Linux PAM ecc.; 7. se l utente inserisce le credenziali giuste, viene visualizzata una schermata di successo e finalmente è consentita la navigazione sulla rete esterna. Quello che succede nel gateway, se l autenticazione riesce, è che viene aggiunta una regola per far passare il traffico proveniente da quel particolare indirizzo IP La rete aperta per i convegni La rete aperta (con ESSID Open) è utilizzata in caso di convegni, seminari ed in generale eventi che prevedono l accesso wireless ad Internet ad utenti che non sono registrati. 14 MAC sta per Medium Access Control; il MAC address è un numero identificativo, composto da 6 coppie di cifre esadecimali che identifica un dispositivo sulla rete a livello Data Link 15 stringa di autenticazione valida per un tempo limitato che può essere usata una volta sola 31

32 Figura 3.7: Schema dell autenticazione via Captive Portal Il meccanismo di accesso è uguale a quello visto nella precedente sezione con Captive Portal. Perciò gli utenti che partecipano al meeting, dovranno associarsi alla rete wireless OPEN e nel loro browser apparirà la finestra di login. Per questa rete abbiamo scelto di non creare un nuovo account per ogni utente, cosa che comporterebbe un impegno di tempo e lavoro non indifferente; creiamo invece un numero sufficiente di account anonimi, del tipo USER001, ed assegniamo questi account ai partecipanti dopo una registrazione. In questo modo non dovremo registrare i dati personali di ogni partecipante, se non per quanto concerne le pratiche burocratiche necessarie all accesso, e non dovremo creare ogni volta account che poi verrebbero subito cancellati. Per implementare questa funzione basterà creare degli account statici che verranno autenticati tramite server RADIUS; il RADIUS verrà contattato dal Captive Portal della rete OPEN per l autenticazione. Il RADIUS, vista la staticità delle informazioni, potrebbe leggere i dati degli utenti anonimi anche da file; si prevede comunque la possibilità di registrare questi account sulla directory LDAP per mantenere eventualmente traccia dell associazione persona/account. 3.3 Sicurezza, autenticazione e controllo: RA- DIUS Dopo aver elogiato i numerosi vantaggi della connettività wireless, dobbiamo considerare l altro lato della medaglia, soprattutto analizziamo il tema della sicurezza. La tecnologia wireless introduce nelle reti dei problemi che finora potevano essere trascurati: con i cavi, potevamo essere quasi sicuri che i computer con- 32

33 nessi alla rete erano quelli che conoscevamo, perché i cavi, gli switch e le altre apparecchiature possono essere messe sotto controllo, con armadi chiusi e lucchetti. Con l avvento delle reti wireless, qualunque computer dotato di una scheda di rete wireless, che si trovi all interno della cella del nostro Access Point può potenzialmente accedere alla rete, senza chiedere autorizzazione a nessuno. Certamente l etere è meno controllabile di un cavo che noi stendiamo! Per considerazioni di questo tipo, non possiamo più fidarci del fatto che chi riesce ad accedere alla rete è anche autorizzato a farlo. Dobbiamo dotare la rete, e nello specifico gli Access Point, di meccanismi di controllo e di autenticazione. Vediamo alcuni meccanismi di protezione e limitazione degli accessi: limitare i MAC address che possono accedere: meccanismo veloce, facilmente implementabile, ma che può essere aggirato tramite MAC-spoofing, cioè modificando l indirizzo fisico della propria scheda di rete wireless con uno abilitato all accesso; chiave WEP: meccanismo buono di cifratura dei messaggi, che utilizza chiavi da 40 bit, ma che può essere aggirato in pochi minuti; cifratura forte: nome sotto il quale possiamo far rientrare quei meccanismi che prevedono l autenticazione dell utente su un tunnel cifrato di dati; questo meccanismo è molto difficile da aggirare, perché intervengono molti elementi nella fase di autenticazione, tra cui i dati dell account (nome utente e password) e i certificati digitali AAA e RADIUS Quello che serve ad una rete wireless che deve servire centinaia di utenti è di poter definire a livello centralizzato delle politiche e delle proprietà che possano essere assegnate ai client wireless (o supplicant) da tutti gli Access Point che costituiscono la rete. Quello che ci serve è una infrastruttura di AAA, cioè di Autenticazione, Autorizzazione e Accounting. Spieghiamo brevemente il significato di questi termini 16 : Autenticazione: si intende la conferma che un utente che richiede un servizio, nel nostro caso l accesso alla rete, sia un utente valido e conosciuto. Viene realizzata con la presentazione di una identità o di credenziali, che ad esempio possono essere una password, l indirizzo MAC della scheda wireless di un portatile o un certificato digitale. Autorizzazione: si intende l accesso a specifici servizi ad un utente, basandoci sulla sua autenticazione, su quale servizio ha richiesto e sullo stato corrente del sistema. Può basarsi su politiche che tengano in considerazione l orario di richiesta del servizio, la collocazione fisica del richiedente e informazioni simili. 16 dal sito di Wikipedia - The Free Encyclopedia [4] 33

34 Accounting: si intende il tracciamento del consumo delle risorse di rete di un utente. Queste informazioni possono essere utilizzate per la gestione futura, per motivi statistici, o magari per redigere un conto mensile (come viene fatto negli ISP). Vengono solitamente memorizzate informazioni sull identità dell utente, sulla natura del servizio fornito e sull orario di inizio e di fine della fruizione. Di queste tre A, noi utilizzeremo solo le prime due, visto che non dovendo far pagare la connessione agli utenti della rete non abbiamo bisogno di conteggiare i tempi di connessione. Per implementare queste politiche utilizziamo un server RADIUS. RADIUS sta per Remote Authentication Dial In User Service, è un protocollo che implementa politiche di AAA per l accesso alla rete. Il protocollo RADIUS prevede il controllo delle credenziali di un utente e la fornitura dei parametri di accesso e di altri valori necessari alla connessione. Per le nostre necessità il server RADIUS verrà usato solo per controllare le credenziali di accesso di un utente, a vari livelli. Il protocollo RADIUS è definito negli standard: RFC 2865 Remote Authentication Dial In User Service (RADIUS) RFC 2866 RADIUS Accounting Il protocollo RADIUS Come si legge nell RFC 17, le caratteristiche chiave del protocollo RADIUS sono: Modello Client/Server Un Network Access Server (NAS) opera come client per RADIUS. Il client è responsabile del passaggio delle informazioni dell utente al server RADIUS opportuno e deve poi agire in accordo alla risposta ricevuta. Il server RADIUS è responsabile della ricezione della richiesta di connessione dell utente, dell autenticazione dell utente e dell invio di tutte le informazioni di configurazione necessarie perché l utente possa usufruire del servizio tramite il client. Sicurezza di rete Le transazioni tra client e server RADIUS sono autenticate tramite un segreto 18 condiviso che non è mai trasmesso in rete. Inoltre, tutte le password utente vengono criptate tra i due attori per proteggere tali informazioni da intrusi che potrebbero attaccare la rete per trovare la password. Meccanismi di autenticazione flessibili RADIUS supporta una vasta gamma di metodi per autenticare un utente. Quando un server riceve nome utente e password, può eseguire un login PPP, PAP o CHAP o UNIX 19 o altri meccanismi di autenticazione. 17 si veda il documento originale [5] 18 stringa segreta condivisa tra il client e il server RADIUS per proteggere le comunicazioni 19 queste sigle rappresentano vari sistemi di autenticazione che non verranno approfonditi in questa sede e che non sono utilizzati in questo progetto 34

35 è un protocollo estendibile Tutte le transazioni comprendono tuple di lunghezza variabile del tipo (Attributo, Lunghezza, Valore). Perciò possono essere aggiunti nuovi attributi senza disturbare l implementazione già esistente. Un altra cosa importante da evidenziare del protocollo RADIUS è che lavora usando connessioni UDP 20, invece che TCP 21. UDP è stato scelto per ragioni prettamente tecniche: un server RADIUS intrattiene delle conversazioni di tipo transazionale, con caratteristiche particolari, tra cui: se una richiesta al server primario fallisce, si può interrogare il server di backup; le particolari necessità riguardo i tempi di risposta non vanno d accordo col TCP. Da un lato RADIUS non ha bisogno di tecniche di rilevazione delle perdite di dati immediate: l utente può attendere alcuni secondi perché l autenticazione sia completata senza troppi problemi; in questo contesto le ritrasmissioni aggressive del TCP e l ondata di acknowledgement tipiche di questo protocollo non sono necessari. Dall altro lato l utente non vuole aspettare dei minuti perché l autenticazione sia completata: non ci interessa che il TCP fornisca una connessione affidabile 2 minuti dopo aver fatto la richiesta... con UDP possiamo semplicemente provare a ri-autenticarci sul server di backup senza troppi problemi. il protocollo RADIUS è stateless: i client e i server vanno e vengono; UDP garantisce semplicità delle comunicazioni eliminando qualunque controllo ulteriore sullo stato delle connessioni e dei server. Infatti una sessione di autenticazione con UDP consiste nello scambio di alcuni pacchetti e... finiti i giochi. UDP semplifica l implementazione del server: le prime implementazioni di RADIUS consistevano in un server single threaded, cioè una sola richiesta alla volta era ricevuta ed evasa e le altre rimanevano in coda (con evidenti ritardi). Oggi tutte le implementazioni prevedono un thread separato per ogni nuova richiesta e il protocollo UDP facilita la spedizione di un messaggio di risposta ad un client con il suo formato snello e veloce e con evidenti vantaggi per il sistema e per l utente. Vediamo quali sono le operazioni che vengono eseguite per l autenticazione; si veda anche lo schema nell immagine 3.8. Quando un client è configurato per usare RADIUS, ogni utente del client 22 presenta delle informazioni di autenticazione, ad esempio con una schermata di login o con un protocollo come PPP che possiede pacchetti di autenticazione. Dopo aver ottenuto tali informazioni, il client sceglie di autenticare tramite RADIUS: prima di tutto crea una Access-Request che contiene tra gli altri, il nome utente e la password, l ID del client e l ID della porta alla quale accede 20 User Datagram Protocol, protocollo che permette di spedire messaggi detti datagram su una rete di computer 21 Trasmission Control Protocol, protocollo di trasporto dei dati a livello 4 della pila ISO/OSI 22 nel protocollo RADIUS quando si parla di client, si intende un NAS, cioè un punto di accesso alla rete, come un Access Point wireless 35

36 l utente. La password viene nascosta usando l RSA Message Digest Algorithm MD5 23. Il pacchetto di Access-Request viene inviato al server RADIUS, se non si riceve risposta dopo un certo tempo, la richiesta viene riinviata per un numero determinato di volte; possiamo anche scegliere di mandarla ad un server secondario. Ricevuta la richiesta dal server, viene validato il client (che deve essere tra quelli riconosciuti ed elencati nel file clients.conf ) tramite il segreto condiviso (anch esso scritto nel file client.conf ); se non viene riconosciuto, la richiesta viene subito scartata. Se viene accettata, il server RADIUS consulta il database per cercare l utente e per controllare anche altri parametri che possono essere presenti; se è necessario, la richiesta può essere rigirata ad altri server (cioè il primo server agisce come client per un altro). Se uno di questi test non viene superato, allora viene restituito un pacchetto di Access-Request che indica che la richiesta è stata rifiutata. Opzionalmente può essere incluso un messaggio testuale di rifiuto. Se sono soddisfatte le condizioni suddette allora il server RADIUS restituisce un pacchetto di Access- Challenge; successivamente il client che riceve un Access-Challenge risponde rispedendo il messaggio di Access-Request originale con un nuovo request-id. Il server che riceve questo messaggio può rispondere con un Access-Accept, un Access-Reject o un altro Access-Challenge. Se il client riceve un pacchetto di Access-Challenge, fornisce all utente un prompt per fornire una risposta. Il client quindi rispedisce la domanda con un nuovo request ID con, al posto del campo User-Password, la risposta dell utente. Il server può rispondere con un Access-Accept, Access-Reject o un altro Access- Challenge. Se tutti i requisiti sono soddisfatti, allora i valori di configurazione per l accesso vengono inseriti nella risposta di Access-Request. Nel nostro caso non verrà usato il meccanismo di challenge/response, ma se i requisiti sono soddisfatti già alla prima richiesta, viene subito spedito un pacchetto di Access-Accept Il nostro server RADIUS Il nostro server RADIUS è sostanzialmente un deposito di dati di autenticazione che possono essere interrogati dagli access point per controllare le credenziali di accesso di un computer. I dati che memorizziamo comprendono gli indirizzi MAC delle schede di rete registrate che useranno la rete wireless e lo username e password per i portatili che intendono usare sistemi di autenticazione wireless più sicuri. Quest ultimo sistema verrà utilizzato anche per il controllo delle credenziali di accesso per i Captive Portal come vedremo più avanti. Come già anticipato all inizio sulla presentazione del progetto, uno dei punti forti della struttura è la sua centralizzazione. Quindi, come ci possiamo aspettare, le credenziali di accesso, cioè sia i MAC address che gli account (username & password) autorizzati, sono memorizzati sul servizio informativo 23 algoritmo di hash molto usato in crittografia 36

37 Figura 3.8: Processo di autenticazione RADIUS standard (LDAP) centrale della rete, come mostrato nella figura 3.9. Con questo meccanismo il server RADIUS non contiene alcuna informazione di sicurezza, tranne quelle che mantiene in cache per velocizzare l evasione delle richieste. Così facendo possiamo realizzare anche più server RADIUS special purpose, ciascuno specializzato per servire una particolare rete e per assolvere ad un compito, installandoli su macchine virtuali separate. Ciascuno di questi server, come infatti prevede il progetto, ha un compito ben specifico. Le categorie di server RADIUS che abbiamo implementato nel progetto sono principalmente 2: RADIUS per l autenticazione dei MAC ADDRESS: questo sistema autorizza o meno il MAC address di una scheda wireless se questa è registrata nell elenco delle schede autorizzate. Il meccanismo di autorizzazione abusa del protocollo RADIUS perché per scambiare queste informazioni (riguardanti gli indirizzi fisici) utilizza i campi Username e User-Password del protocollo RADIUS (si notare che questo comportamente è quello standard in tutti gli AP che supportano RADIUS) RADIUS per l autenticazione su nome utente e password: questo sistema autorizza o meno un account se le credenziali di accesso sono corrette e se si appartiene al gruppo a cui afferisce il server RADIUS. Infatti sul server delle configurazioni (LDAP) risiedono le informazioni di accesso per la rete wireless. Per bilanciare meglio il carico tra i server RADIUS, e per separare bene i punti di accesso delle varie reti si è deciso di creare un server RADIUS per ognuna delle reti wireless e nello specifico esistono i server: RADIUS per WL-common (sia Fisica che INFN): questo server evade tutte le richieste dalla VLAN che comprende gli host della rete WL-common 37

38 Figura 3.9: Schematizzazione dei servizi RADIUS centralizzati su LDAP (la rete wireless con controllo sui MAC address); le richieste che riceverà riguarderanno informazioni di autenticazione sui MAC address. La query verrà fatta al server LDAP sulla cartella dei MAC address. RADIUS per STUD: similmente alla prima, autentica gli studenti del dipartimento di Fisica, che si connettono sulla rete STUD, sempre con il proprio MAC address registrato su LDAP. Inoltre, la politica di routing di questa rete prevede che tutte le connessioni vengano filtrate da un server PROXY ad accesso con nome utente e password sempre registrate su LDAP. RADIUS per le credeziali INFN (sia per Captive Portal, INFN-web, che per INFN-dot1x): questo server, che come gli altri risponde con le informazioni memorizzate su server LDAP, autentica gli utenti delle reti INFN; inoltre l autenticazione su nome utente e password può essere usata anche per altri servizi, come il login remoto su macchine dedicate, o l accesso a pagine web riservate ai dipendenti o agli associati INFN. Questo server RADIUS, diversamente dagli altri, entra a far parte di una gerarchia di server AAA 24, che tramite il meccanismo del proxying 25 permette di autenticare anche utenti afferenti alle altre sezioni italiane di INFN. RADIUS per le credeziali del Dipartimento di Fisica (sia per Captive portal, FISICA-web, che per FISICA-priv): come il precedente autentica gli afferenti al Dipartimento di Fisica sempre con utente e password; anche 24 si parla si AAA nel paragrafo si parla del proxying nel paragrafo

39 per questa autenticazione è previsto per il futuro un meccanismo di proxying quando esisterà uno standard condiviso tra tutte le università per l autenticazione degli studenti e dei dipendenti. RADIUS per l accesso ai convegni: questo RADIUS verrà utilizzato solo durante meeting, convegni o eventi che richiedano l accesso wireless di persone esterne al Dipartimento e ad INFN; l accesso sarà basato su Captive Portal, per tracciare le connessioni; si prevede di definire delle utenze anonime, del tipo USER001, che verranno fornite ai partecipanti all evento e saranno cancellate alla fine dello stesso, sempre memorizzate su back-end LDAP FreeRADIUS Tra le varie possibili alternative è stato scelto FreeRADIUS per la gestione del protocollo RADIUS, versione FreeRADIUS è il software libero per protocollo RADIUS più diffuso 26 ; ci sono più di installazioni documentate, tra cui piccoli siti con decine di utenti, aziende su larga scala con decine di centinaia di utenti, fino a installazioni di grandi Carrier internazionali con decine di milioni di utenti. I dati che leggiamo nel sito del progetto ci parlano di 100 milioni di utenti serviti attraverso il software FreeRADIUS. Questo ci dà una stima della forte scalabilità dell implementazione che passa senza troppi problemi da sistemi embedded con poca memoria fino a sistemi con milioni di utenti. Supporta i protocolli di autenticazione PAP, CHAP, MS- CHAP, EAP-MD5, EAP-GTC, EAP-TLS, EAP-TTLS, PEAPv0, LEAP, EAP- SIM e Digest. FreeRADIUS è una suite di applicazioni per il protocollo RADIUS modulare, ad alte prestazioni e ricca di funzionalità; comprende un RADIUS server, un client (utilizzato soprattutto per i test), delle librerie di sviluppo (per utilizzare le chiamate RADIUS nelle proprie applicazione e/o per creare moduli aggiuntivi) e numerose utilities. Tra le varie caratteristiche che hanno decretato il successo e il largo impiego di FreeRADIUS citiamo: supporto al request proxying, cioè la possibilità di rispedire una richiesta ad un server autoritario di più alto livello, secondo un meccanismo a PROXY (lo stesso meccanismo impiegato nell infrastruttura AAI di INFN) fail-over e load balancing delle richieste tra diversi server possibilità di utilizzare come back-end, cioè come deposito delle informazioni di autenticazione e autorizzazione vari tipi di database (nel nostro caso usiamo LDAP, ma si possono utilizzare database su file, ad esempio possiamo utilizzare il file /etc/passwd di GNU/Linux, database SQL, password da domini SMB ecc.) anche le informazioni di accounting possono essere memorizzate su vari backend tra cui appunto LDAP e database SQL (ma questa caratteristica come già detto non è stata utilizzata nel nostro progetto). 26 queste notizie sono riprese dal sito ufficiale di FreeRADIUS [6] 39

40 Configurazione di un server RADIUS con backend LDAP Questa configurazione merita di essere anticipata in questo capitolo dedicato alle Tecnologie. FreeRADIUS presenta un architettura modulare, nella quale possiamo definire da quali fonti devono essere lette le informazioni di autenticazione e autorizzazione per evadere le richieste. Di solito, per le realtà piccole, viene usato il file di configurazione users, nel quale sono memorizzati staticamente i parametri di accesso. Nel nostro caso dobbiamo dire al server RADIUS di recuperare le informazioni dalla directory LDAP centrale. La configurazione è molto semplice: definiamo all interno del modulo ldap gli attributi necessari; in particolare troviamo: server = authserver.fisica.unipg.it: il server LDAP dal quale leggere gli attributi (si noti che il nome punta ad un alias nel DNS che opera load balancing sulle varie repliche del server centrale) identity = cn=manager,dc=priv e password = ********: le credenziali di accesso al server LDAP (naturalmente il server non è protetto solo con password, sono ristetti anche gli host che possono accedervi) basedn = ou=radiusmac,dc=priv: come si vedrà più avanti il base DN è la cartella della directory LDAP alla quale vogliamo accedere; nel nostro caso si vuole accedere alla cartella contenente i MAC address autorizzati; filter = (&(uid=%user-name)(perugiagroups=radius-wlcommon)): con questo filtro cerchiamo una entry LDAP che abbia come uid proprio il MAC address o l username che si sta cercando; il resto del confronto viene fatto sul campo standard userpassword, sempre usando come valore o il MAC address, se il server prevede accesso con MAC address, oppure la password inserita dall utente. ldap { server = "authserver.fisica.unipg.it" identity = "cn=manager,dc=priv" password = ******** basedn = "ou=radiusmac,dc=priv" filter = "(&(uid=%{user-name})(perugiagroups=radius-wlcommon))" start_tls = no dictionary_mapping = ${raddbdir}/ldap.attrmap ldap_connections_number = 5 timeout = 4 timelimit = 3 net_timeout = 1 } Gli altri campi hanno poco interesse a questo livello di analisi. Molte delle cose lasciate in sospeso saranno analizzate più approfonditamente nel paragrafo dedicato ad LDAP. 40

41 RADIUS proxying Con il meccanismo dei proxy RADIUS, un server che riceve una richiesta di autenticazione, rispedisce la richiesta ad un server RADIUS remoto; riceve la risposta da questo server remoto e rispedisce la risposta indietro al client, possibilmente modificando il pacchetto per riflettere le necessità del sito locale. La scelta di quale server interrogare per evadere una richiesta viene fatto attraverso il realm. Il realm può far parte del Network Access Identifier (l identità dell utente per la rete). L idea del realm è quella di separare vari domini di lavoro; un concetto simile al dominio DNS. Un server RADIUS può funzionare sia come forwarding server, cioè come proxy per altri server, che come server remoto, cioè come server terminale per una richiesta. Un singolo RADIUS può avere un numero arbitrario di server a cui spedire richieste. Possono essere create anche delle catene di proxy, ad esempio per rispecchiare le suddivisioni amministrative di una azienda (evitando di creare dei loop). Nel nostro caso il server RADIUS di INFN implementerà la funzione di proxying. Il server al quale demanderà le richieste sarà quello della sede centrale nazionale di INFN, che può autenticare gli utenti di qualunque sezione italiana (si veda l immagine 3.5 per uno schema del proxying RADIUS). Uno schema della gerarchia dei server INFN è riportato in figura Figura 3.10: Struttura gerarchica dei server RADIUS INFN 41

42 Il meccanismo di gestione e configurazione dei REALM verrà analizzato più avanti nel paragrafo Certificati digitali X.509: sicurezza garantita X.509 è uno standard ITU-T 27 per l infrastruttura a chiave pubblica (PKI) Crittografia La crittografia è quella scienza che studia i meccanismi per nascondere il contenuto di un messaggio a chi non è autorizzato a leggerlo. Storicamente le tecniche usate si basavano sulla conoscenza di un segreto da parte di tutti gli interlocutori della comunicazione privata: il segreto poteva consistere in una tabella di corrispondenze di simboli a lettere dell alfabeto, o magari in un numero che permettesse l interpretazione del messaggio; il segreto era protetto e non doveva essere rivelato ad altri. Questo meccanismo della chiave condivisa va sotto il nome di crittografia a chiave privata o simmetrica. In informatica, questo meccanismo viene implementato utilizzando la chiave di cifratura, solitamente un numero o un insieme di numeri: il messaggio viene sottoposto ad alcuni passaggi matematici che utilizzano la chiave come valore di riferimento per perturbare il messaggio e renderlo incomprensibile, cioè cifrarlo. Per riottenere il messaggio originale il ricevente, che conosce la chiave con cui il messaggio è stato cifrato, applica un procedimento analogo ma contrario che permette di riottenere il messaggio originale, detto anche messaggio in chiaro (come mostrato in figura 3.11). Figura 3.11: Meccanismo di cifratura simmetrica La crittografia a chiave pubblica, o asimmetrica, è una forma di crittografia nella quale un utente possiede, invece di una singola chiave condivisa con l altro utente, una coppia di chiavi, pubblica e privata. La chiave privata viene tenuta segreta, mentre quella pubblica può essere diffusa liberamente. Le chiave vengono generate attraverso dei procedimenti matematici che garantiscono una buona sicurezza verso eventuali attaccanti - la loro forza si basa sulla difficoltà di fattorizzare numeri molto grandi. 27 Internation Telecommunication Union - Telecommunication Standardization Sector, ovvero il Dipartimento di standardizzazione delle telecomunicazioni dell Unione Internazionale delle Telecomunicazioni 42

43 Sebbene le chiavi siano in una certa relazione matematica, è praticamente impossibile derivare la chiave privata da quella pubblica. La crittografia a chiave pubblica nasce come soluzione ai molti problemi della crittografia a chiave privata. Figura 3.12: Meccanismo di cifratura asimmetrica La crittografia a chiave pubblica permette di eseguire due importanti operazioni sui messaggi: Cifratura messaggi cifriamo il messaggio con la chiave pubblica dell utente al quale lo vogliamo spedire; il destinatario potrà leggere il messaggio originale, decifrandolo con la sua chiave privata ed è l unico che può farlo perché nessuno possiede la sua chiave privata (si veda la figura 3.12); Firma digitale per assicurare il destinatario sull identità del mittente, questi firma il messaggio con la sua chiave privata: in questo modo chiunque può verificare l identità del mittente attraverso la sua chiave pubblica (che viene diffusa liberamente, in elenchi disponibili sul web); inoltre il destinatario può anche controllare, attraverso la firma, che il messaggio non sia stato alterato durante la trasmissione. Il problema centrale di questo meccanismo è avere la certezza che una certa chiave pubblica sia autentica, cioè che corrisponde all utente che l ha creata. Una soluzione a questo problema viene data dalla Public Key Infrastructure: ci si appoggia su una terza parte, la Certification Authority, che garantisce l autenticità delle chiavi. Un altro approccio è quello del web of trust, che delega il controllo dell autenticità di una chiave alla comunità, basando la fiducia di una chiave sul numero di persone che hanno avuto fiducia su di essa in precedenza - questo meccanismo è poco usato dalle aziende perché non può dare garanzie documentate. Sebbene questo meccanismo sia più complesso computazionalmente ed organizzativamente rispetto alla cifratura a chiave simmetrica, in cui le due parti della comunicazione condividono una chiave singola per cifrare i messaggi, garantisce una sicurezza molto forte. Per approfittare dei lati positivi di entrambi i sistemi, la velocità del simmetrico e la sicurezza dell asimmetrico, si è soliti proteggere le comunicazioni usando la cifratura asimmetrica per scambiarsi in modo protetto una chiave simmetrica e poi solo questa viene usata per cifrare i messaggi di una stessa sessione. 43

44 3.4.2 Public Key Infrastructure Nel campo della crittografia, l infrastruttura a chiave pubblica è un sistema che collega le chiavi pubbliche di cifratura all identità dei rispettivi proprietari, attraverso un autorità di certificazione (Certification Authority). In questo contesto quindi si delega la fiducia sull identità associata ad una chiave, ad una terza parte, la CA 28, della quale gli appartenenti al sistema si fidano, che garantisce con la sua firma digitale l identità degli utenti. Quando voglio comunicare in modo sicuro con una persona devo quindi ottenere la sua chiave pubblica, ad esempio per spedire un messaggio cifrato. I passaggi che devo eseguire per essere sicuro della sua identità sono: 1. ottenere il certificato digitale dell utente, attraverso il suo sito Internet oppure richiedendolo direttamente all interessato tramite una ; 2. controllare la firma della CA che ha rilasciato il certificato: questo lo posso fare controllando, con il certificato dell autorità, la firma sul certificato dell utente; qualora questa procedura fallisse, dovrei richiedere il certificato o trovare una fonte diversa dalla quale scaricare il certificato (il sito della CA potrebbe mettere a disposizione i certificati che ha firmato); 3. controllata la validità del certificato posso estrarre da esso la chiave pubblica e spedire messaggi cifrati all utente associato con la sicurezza che la CA garantisce per lui. Le CA sono quindi il perno su cui si basa tutta la struttura. Queste devono garantire delle procedure di riconoscimento adeguate ad assicurare l identità della persona che richiede i servizi della CA. Visto il grande lavoro necessario a gestire una CA, solo grandi enti o aziende possono possederne una. Ad esempio l INFN si è organizzato con una Certification Authority propria a livello nazionale. Per snellire il lavoro, come prevede la PKI, sono state create delle Registration Authority, cioè dei punti di fiducia distribuiti che si pongono come intermediari tra i richiedenti del certificato e la CA. Il loro compito principale è il controllo delle identità dei richiedenti per il rilascio di un nuovo certificato. Altro compito molto importante è quello di comunicare tempestivamente alla CA lo smarrimento o il furto della chiave privata di un utente, che quindi mette a rischio la validità della sua chiave pubblica firmata dalla CA: la RA provvede a comunicare l evento alla CA che prenderà le opportune contromisure. Queste contromisure prevedono l inserimento del certificato manomesso all interno delle liste di revoca dei certificati (CRL 29 ) che vengono pubblicate dalla CA per informare tutti gli utenti dei certificati ritenuti non più validi e che quindi non devono essere usati Certificato digitale Un certificato digitale può essere visto come una carta di identità elettronica che definisce le credenziali del proprietario e può essere utilizzata per lavoro o ad 28 Certification Authority, autorità di certificazione 29 Certificate Revocation List, appunto la Lista dei certificati revocati 44

45 esempio per effettuare transazioni sul web. In generale è usata per riconoscere ed autenticare un utente. Viene rilasciato, come già detto, da una autorità di certificazione che garantisce sulla coppia chiave pubblica/identità dell utente. Contiene nome dell utente, numero seriale del certificato, data di scadenza, copia della chiave pubblica del possessore del certificato e firma digitale dell autorità di certificazione che in questo modo garantisce il documento Il formato X.509 per certificati digitali Lo standard X.509, come ci suggerisce il nome, nasce insieme allo standard X.500 e prevede un sistema fortemente gerarchico di autorità di certificazione per il rilascio di un certificato. Nasce nel 1988 e si propone come meccanismo completo per l implementazione della PKI. Una CA rilascia un certificato che collega una chiave pubblica ad un particolare Distinguished Name (concetto che ritroveremo anche in LDAP, retaggio dello standard X.500) o ad un nome alternativo come ad esempio un indirizzo o un nome DNS. Il Distinguished Name è, come dice la parola stessa, un nome distintivo che permette di individuare una persona, un host o qualunque cosa all interno di un ente o di un paese, in modo gerachico, similmente ai nomi a dominio. I certificati rilasciati dalle CA possono essere usati su browser come Microsoft Internet Explorer, Mozilla Firefox o Safari, per farsi riconoscere sul web, ad esempio per aprire una sessione SSL. Ogni CA ha anche il proprio certificato digitale, che può essere firmato da un altra CA (per creare così una gerarchia di fiducia). Altro elemento dello standard X.509 sono le liste di revoca dei certificati (CRL), che permettono ad una CA di far conoscere, a tutti, i certificati che non sono più validi, ad esempio perché un utente ha perso la chiave privata, oppure perché questa gli è stata rubata. Struttura di un certificato X.509 Vediamo i valori contenuti all interno di un certificato X.509: Version: versione di X.509 utilizzata (attualmente siamo alla 3.0) Serial Number: numero seriale che identifica il certificato all interno della CA Algorithm ID: identificativo dell algoritmo di cifratura utilizzato; Issuer: nome distintivo della CA che ha rilasciato il certificato; Validity: periodo di validità del certificato, come data di inizio (campo Not Before) e data di fine (campo Not After); Subject: nome distintivo della persona o dell identità da associare al certificato; Subject Public Key Info: informazioni sulla chiave pubblica del soggetto, composto da Public Key Algorithm, cioè l algoritmo per l utilizzo della chiave pubblica, e Subject Public Key, la chiave pubblica associata all identità; 45

46 Issuer Unique Identifier: codice identificativo univoco dell emittente (facoltativo); Subject Unique Identifier: codice identificativo univoco del soggetto (facoltativo); Extensions: facoltativo, può contenere varie informazioni come il nome alternativo (di solito l ), l URL della lista dei certificati revocati ecc.; Certificate Signature Algorithm: l algoritmo di firma del certificato; Certificate Signature: la firma digitale vera e propria del certificato, fatta con la chiave privata della CA. Vediamo ad esempio il file di certificato del candidato: Certificate: Data: Version: 3 (0x2) Serial Number: 6967 (0x1b37) Signature Algorithm: sha1withrsaencryption Issuer: C=IT, O=INFN, CN=INFN CA Validity Not Before: May 23 10:33: GMT Not After : May 22 10:33: GMT Subject: C=IT, O=INFN, OU=Personal Certificate, L=Perugia, CN=Simone Pascarosa Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:bf:38:6a:06:94:06:b3:8a:30:d0:3a:f0:28:b7: f4:6b:70:af:22:1b:58:09:68:0e:55:19:33:ec:8f: 94:35:62:be:0e:bb:ab:bf:25:21:0a:65:53:cf:f2: 94:ba:85:1e:09:44:f6:7f:10:f2:b2:46:3f:f8:fe: da:64:55:8f:f8:c6:6d:e1:bb:a1:c0:f4:4f:9b:29: cf:30:3a:1b:4c:ec:77:2c:ae:c7:1b:85:d0:1c:a5: b2:d9:b8:f8:1b:7d:b3:21:c5:75:3a:1a:7e:2d:84: 32:10:29:82:2a:77:f4:3f:e3:9b:bb:2b:19:c1:aa: 6e:85:ef:5a:4a:01:95:6c:8c:f7:ea:ef:45:c8:58: ef:dc:db:6a:87:6e:9a:31:71:76:c6:2a:c8:b5:91: 08:07:a6:36:e7:e6:36:56:64:c9:c3:88:fa:53:6c: 11:3b:68:a2:56:94:f7:1c:5c:73:86:51:81:9d:0a: 3f:d0:4f:f7:9a:db:f1:49:02:d6:25:e3:1f:de:38: d0:e5:65:6e:03:cb:d0:60:79:e5:f0:50:39:40:44: e9:f9:f8:51:84:e9:30:ae:43:90:fc:a9:26:4d:f8: ae:30:22:61:b6:ca:8b:6f:a3:d0:85:be:0c:61:8f: 0c:3d:4f:67:d6:29:99:55:85:e9:b8:ff:e5:55:5e: 2b:cb Exponent: (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: critical Digital Signature, Key Encipherment, Data Encipherment X509v3 Extended Key Usage: 46

47 TLS Web Client Authentication, Protection X509v3 CRL Distribution Points: URI: X509v3 Certificate Policies: Policy: X509v3 Subject Key Identifier: 77:B4:32:9D:FB:E1:3F:CB:2B:BE:E4:60:37:C5:AD:1C:50:2D:72:86 X509v3 Authority Key Identifier: keyid:d1:62:f3:b3:77:72:c8:2e:fb:f2:79:1a:6f:37:4e:27:9f:13:d5:20 DirName:/C=IT/O=INFN/CN=INFN CA serial:00 X509v3 Subject Alternative Name: Signature Algorithm: sha1withrsaencryption 1d:e7:00:a4:0a:06:a2:21:2f:72:6d:b5:05:f7:85:6e:30:77: 7e:65:32:c1:4d:fc:41:60:00:c3:89:c8:27:91:5d:a0:65:e0: 9a:2a:89:72:2a:d5:68:b7:15:46:ce:61:41:3e:33:33:58:f1: e9:9f:54:a2:06:bf:23:a5:06:54:3d:e3:e8:28:9f:6e:05:f6: 80:e3:b7:56:63:d0:f1:bb:27:c6:db:c1:95:01:fb:a6:b5:01: 31:7d:7b:43:de:a3:f4:b5:b4:5e:24:f4:38:d3:fd:16:66:7a: 60:4c:b3:7e:03:e3:a6:ff:29:11:ab:ab:2f:90:b0:aa:14:2e: 88:0b:35:e6:fb:80:3d:12:f7:8b:a4:13:41:fc:64:09:e3:6a: 27:8e:2a:75:81:52:0a:4c:6a:25:83:2d:3f:f0:a0:17:6c:e6: 3a:1a:fd:c5:1a:b0:6a:31:8f:2c:90:9f:9e:7d:8c:32:bc:5d: 18:fd:6c:b1:b4:16:fa:f4:e1:f3:94:5c:07:1d:3e:b7:ad:70: 47:1a:35:ed:54:1f:1a:9f:82:60:6a:b3:a9:3e:db:a8:cf:11: 2d:0c:42:67:4a:ee:58:c4:01:3c:f1:b7:6d:79:72:f2:4a:ed: 1d:35:b4:ff:a8:68:26:19:ef:a3:44:5c:10:e5:22:c2:82:07: 72:27:3e: BEGIN CERTIFICATE----- MIIETDCCAzSgAwIBAgICGzcwDQYJKoZIhvcNAQEFBQAwLjELMAkGA1UEBhMCSVQx DTALBgNVBAoTBElORk4xEDAOBgNVBAMTB0lORk4gQ0EwHhcNMDcwNTIzMTAzMzIz WhcNMDgwNTIyMTAzMzIzWjBoMQswCQYDVQQGEwJJVDENMAsGA1UEChMESU5GTjEd MBsGA1UECxMUUGVyc29uYWwgQ2VydGlmaWNhdGUxEDAOBgNVBAcTB1BlcnVnaWEx GTAXBgNVBAMTEFNpbW9uZSBQYXNjYXJvc2EwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQC/OGoGlAazijDQOvAot/RrcK8iG1gJaA5VGTPsj5Q1Yr4Ou6u/ JSEKZVPP8pS6hR4JRPZ/EPKyRj/4/tpkVY/4xm3hu6HA9E+bKc8wOhtM7Hcsrscb hdacpblzupgbfbmhxxu6gn4thdiqkyiqd/q/45u7kxnbqm6f71pkazvsjpfq70xi WO/c22qHbpoxcXbGKsi1kQgHpjbn5jZWZMnDiPpTbBE7aKJWlPccXHOGUYGdCj/Q T/ea2/FJAtYl4x/eONDlZW4Dy9BgeeXwUDlAROn5+FGE6TCuQ5D8qSZN+K4wImG2 yotvo9cfvgxhjww9t2fwkzlvhem4/+vvxivlagmbaagjgge4miibndambgnvhrmb Af8EAjAAMA4GA1UdDwEB/wQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB BQUHAwQwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL3NlY3VyaXR5LmZpLmluZm4u axqvq0evsu5gtknbx2nybc5kzxiwfwydvr0gbbawdjambgorbgeeadejcgefmb0g A1UdDgQWBBR3tDKd++E/yyu+5GA3xa0cUC1yhjBWBgNVHSMETzBNgBTRYvOzd3LI LvvyeRpvN04nnxPVIKEypDAwLjELMAkGA1UEBhMCSVQxDTALBgNVBAoTBElORk4x EDAOBgNVBAMTB0lORk4gQ0GCAQAwJgYDVR0RBB8wHYEbU2ltb25lLlBhc2Nhcm9z YUBwZy5pbmZuLml0MA0GCSqGSIb3DQEBBQUAA4IBAQAd5wCkCgaiIS9ybbUF94Vu MHd+ZTLBTfxBYADDicgnkV2gZeCaKolyKtVotxVGzmFBPjMzWPHpn1SiBr8jpQZU PePoKJ9uBfaA47dWY9DxuyfG28GVAfumtQExfXtD3qP0tbReJPQ40/0WZnpgTLN+ A+Om/ykRq6svkLCqFC6ICzXm+4A9EveLpBNB/GQJ42onjip1gVIKTGolgy0/8KAX 47

48 boy6gv3fgrbqmy8skj+efywyvf0y/wyxtbb69ohzlfwhht63rxbhgjxtvb8an4jg aropptuozxetdejnsu5yxae88bdtexlysu0dnbt/qggmge+jrfwq5slcggdyjz5l -----END CERTIFICATE----- Ambienti di utilizzo del certificato digitale I certificati digitali vengono utilizzati largamente su Internet e su intranet aziendali per svariati servizi: Autenticazione per sito web: molte aziende per l accesso ad alcune sezioni del proprio sito (magari quelle dedicate ai fornitori o ai dipendenti) richiedono che venga riconosciuto valido il certificato digitale installato nel browser dell utente: in questo modo viene eliminata la necessità di ricordarsi username/password; Autenticazione per accesso wireless: nel progetto diamo la possibilità a tutti i possessori di certificato digitale valido emesso dalla Certification Authority di INFN 30 di accedere ad Internet dalla rete della Sezione di Perugia, senza bisogno di registrazione; Firma digitale: firmando le proprie si dà sicurezza al ricevente che non ci sono state alterazioni durante la trasmissione e sappiamo che l utente ha ricevuto proprio il messaggio che intendevamo spedire; Cifratura della posta elettronica: è buona pratica allegare a tutti i messaggi di posta elettronica che si spediscono il proprio certificato digitale, così che se qualcuno vuole spedirci dei messaggi sicuri, può farlo attraverso la chiave pubblica contenuta nel certificato. 3.5 Directory service con LDAP Il protocollo Lightweight Directory Access Protocol o LDAP è un protocollo applicativo (livello 7 della pila ISO/OSI) che permette di interrogare e modificare le informazioni contenute in un directory service 31. Una directory è un insieme di oggetti con attributi simili, organizzati in modo logico e gerarchico. L esempio più comune è quello dell elenco telefonico, che consiste in una serie di nomi in ordine alfabetico, con indirizzo e numero di telefono associati. Di solito le gerarchie LDAP riflettono situazioni politiche, geografiche o organizzative: per questo motivo sovente si utilizzano i nomi a dominio per la strutturazione delle gerarchie. Quindi possiamo immaginare che una ipotetica directory che contenga le informazioni per gli utenti della Sezione di Perugia di INFN sia contraddistinta da un nome simile utenti.pg.infn.it. Uno degli impieghi più comuni dei directory service è quello della memorizzazione di informazioni di autenticazione e contatti personali; basta notare come le ultime versioni dei più popolari client di posta permettano di esportare i contatti della propria rubrica in un formato pronto per un server LDAP. Esistono diversi moduli per le più diffuse applicazioni che richiedono autenticazione, che permettono di utilizzare l autenticazione con LDAP: tra queste possiamo citare il sistema PAM (Pluggable Authentication Module) di autenticazione per sistemi GNU/Linux, il server web Apache e il server FreeRADIUS. La versione corrente del protocollo è la LDAPv3 che viene definita in alcuni RFC, come si legge nell RFC 4510 (si legga [8]). 30 il sui sito istituzionale è 31 questa descrizione è tratta da [7] 48

49 3.5.1 Storia La storia del protocollo LDAP ha radici lontane, già quando le prime compagnie di telecomunicazioni avevano bisogno di directory service efficienti per mantenere le informazioni di milioni di utenti. Negli anni 80 l International Telecommunication Union (ITU) definì la specifica X.500. Le directory X.500 venivano interrogate con il protocollo DAP (Directory Access Protocol), pensato per lavorare con lo stack di protocolli ISO/OSI. Quando poi la suite TCP/IP prese il sopravvento, nacque il protocollo LDAP che si proponeva come un alternativa snella di accesso a directory service per reti TCP/IP. Pian piano quindi tutti i directory service supportarono LDAP. Oggi il protocollo X.500 e DAP possono essere utilizzati anche su TCP/IP. Il protocollo LDAP fu progettato da Tim Howes (University of Michigan), Steve Kille (ISODE) e Wengyik Yeong (Performance Systems International) nel Ulteriori aggiornamenti vennero decisi dagli RFC. All inizio il protocollo era conosciuto anche come LDBP, ovvero Lightweight Directory Browsing Protocol; successivamente venne corredato anche delle funzioni di modifica ed aggiornamento e quindi si preferì access invece di browsing. Altri protocolli e standard che riguardano i directory service sono il già citato X.500, l XML Enabled Directory (XED), il Directory Service Markup Language (DSML), il Service Provisioning Markup Language (SPML) e il Service Location Protocol (SLP) Perché non usare un database relazionale? Ci sono alcune differenze sostanziali tra una directory e un database relazionale. Andiamo a vedere le differenze per poi fare alcune considerazioni: generalmente le informazioni sono lette più spesso di quanto sono scritte; per questo motivo difficilmente troviamo implementate funzioni riguardanti transazioni (come rollback o abort) i dati possono essere ridondati (ed è bene farlo) anche se di solito solo per ridurre i tempi di ricerca i dati sono organizzati in modo gerarchico non esistono relazioni (come nei database) molti-a-molti, anche se possono essere implementate attraverso liste di distinguished name (vedremo più avanti di cosa si tratta) uno schema, cioè la struttura di una entry della directory, è definito come attributi che un oggetto può avere; questi si dividono in attributi obbligatori (che ogni istanza deve avere) ed opzionali (che possono essere omessi quando un oggetto viene creato), cosa che nei database comuni troviamo implementata con il valore NULL gli attributi di una entry sono spesso multivalore, al contrario di quanto avviene nei database convenzionali (ricordiamo la Prima Forma Normale dei database relazionali) gli attributi e le objectclass sono standardizzate e registrate dallo IANA 32 attraverso un Object ID; si cerca quindi di riutilizzare le classi già esistenti per massimizzare la compatibilità e ridurre i problemi di aggiornamento legati a nuove versioni del software del directory server 32 Internet Assigned Numbers Authority, l ente che governa l allocazione globale degli indirizzi IP, la gestione delle zone DNS e di altre funzioni fondamentali di Internet 49

50 le classi di oggetti sono inserite in una gerarchia in cui una eredita dall altra, partendo dalla radice della gerarchia per individuare un informazione, non devo conoscere la tabella nella quale è memorizzata; mi basta conoscere il suo namespace A differenza dei database, che permettono di modellizzare su computer una situazione reale, una directory costituisce un supporto per le informazioni di autenticazione e autorizzazione; perciò sono pensate per svolgere un compito diverso da quello dei database relazionali. La differenza più evidente quindi è che i database relazionali sono usati per automatizzare un sistema con un modello di dati dedicato, mentre una directory è usata per mantenere oggetti identificabili che possono essere usati da diverse applicazioni nei modi più svariati. Le directory sono molto apprezzate in contesti in cui ci sono varie organizzazioni e varie applicazioni che devono accedere alle stesse informazioni per utenti e oggetti diversi. In un contesto di integrazione dei servizi agli utenti, le directory danno un valore aggiunto rispetto ai database perché le informazioni contenute sono schematizzate in un formato consolidato, che permette di modificarle e di arricchirle, aggiungendo nuove classi di oggetto, senza necessità di drastiche modifiche alla struttura dei dati. Ultimo vantaggio è la scalabilità: visto che le directory nascono per memorizzare le informazioni degli utenti telefonici, possiamo immaginare facilmente che non abbiamo problemi ad inserire milioni di entry nella directory, strutturate in centinaia di livelli diversi senza troppi problemi Struttura directory e formato delle entry Lo standard per la definizione e la strutturazione delle directory è rimasto quello di X.500 del 1993 e cioè: una directory è un albero di entry una entry è un insieme di attributi un attributo ha una nome e uno o più valori; gli attributi sono definiti negli schema LDAP non definisce alcun ordinamento, perciò sia i valori degli attributi, che gli attributi di una entry, che i risultati di una interrogazione, possono essere restituiti in qualunque ordine. Ogni entry della directory ha un identificatore univoco, detto Distinguished Name (DN). Il DN è costituito da due parti: il Relative Distinguished Name, costruito tramite alcuni attributi dell entry, che possiamo vedere come il nome proprio dell entry il Distinguished Name dell entry padre dell entry corrente In questo modo il nome dell entry rappresenta oltre che il suo nome, anche il percorso per trovarla all interno dell albero LDAP. Vediamo l esempio di definizione di una entry LDAP: dn: cn=simone Pascarosa,ou=people,dc=fisica,dc=unipg,dc=it givenname: Simone sn: Pascarosa cn: Simone Pascarosa mail: simone.pascarosa@gmail.com telephonenumber: objectclass: inetorgperson objectclass: top 50

51 La definizione di una entry consiste nell assegnare ad ogni attributo un valore; solo alcuni di questi sono obbligatori, molti sono stati omessi (la inetorgperson è una classe molto diffusa per la memorizzazione dei dati personali); si noti la sintassi dell esempio visualizzato, descritta dal formato LDIF (LDAP Data Interchange Format), che descrive una entry elencando prima di tutto il suo DN (nome distintivo) e successivamente tutti i suoi attributi. La sintassi per ogni attributo è: nome attributo: valore L attributo dn è il nome dell entry: non è né un attributo, né parte dell entry stessa, ma il suo identificatore: cn=simone Pascarosa è il Relative Distinguished Name ou=people,dc=fisica,dc=unipg,dc=it si riferisce all entry padre cn significa Common Name, mentre dc sta per Domain Component, invece ou sta per Organizational Unit. Le righe successive definiscono i restanti attributi dell entry, come nome e cognome del contatto, l indirizzo , il numero di telefono ecc. Un server contiene un sottoalbero che parte da una specifica entry: il server del Dipartimento di Fisica potrebbe contenere ad esempio tutto il sottoalbero con radice in dc=fisica,dc=unipg,dc=it e sotto di questo avere informazioni sui dipendenti nel sottoalbero ou=people,dc=fisica,dc=unipg,dc=it, sugli account degli utenti in ou=account,dc=fisica,dc=unipg,dc=it e via dicendo. In questo caso, il nome della radice rispetta il nome a dominio dell ente, ma siamo liberi di usare qualunque nome si voglia Referrals e chaining Altra caratteristica fondamentale, naturale conseguenza della forte strutturazione delle directory X.500 è la possibilità di delegare alcuni sottoalberi ad altri server. Se ad esempio il nostro server gestisce l albero dc=fisica,dc=unipg,dc=it, ma abbiamo creato un server che gestisce autonomamente il sottoalbero ou=people,dc=fisica,dc=unipg,dc=it, allora il server principale può rimandare le interrogazioni a questo server. Esistono due meccanismi per implementare questa feature in LDAP (si vedano rispettivamente gli schemi nelle figure 3.13 e 3.14): Referrals: un server A viene interrogato per un sottoalbero di cui non contiene informazioni (punto 1 nell immagine), ma sa che sono memorizzate nel server B; allora manda al client che ha fatto la richiesta un referral o continuation reference (punto 2) che contenga l indirizzo del server B che può evadere quella richiesta Chaining un server A viene interrogato per un sottoalbero di cui non contiene informazioni, ma sa che sono memorizzate nel server B; in modo trasparente il server A interroga il server B con le informazioni richieste al client (punto 2 nell immagine), quando ha ottenuto la risposta (punto 3), la rispedisce al client (punto 4) Entrambi i metodi presentano delle caratteristiche peculiari che fanno preferire l uno rispetto all altro in certi casi: il meccanismo del Chaining sposta l onere della richiesta al server autoritativo per una certa sottodirectory dal client al server a cui questo fa richiesta, viene quindi snellito il lavoro del client; questa soluzione è da preferire se vogliamo fornire un servizio completo e trasparente al client 51

52 Figura 3.13: Meccanismo di Referral di LDAP Figura 3.14: Meccanismo di Chaining di LDAP il Referral invece lascia al client l onere di replicare la richiesta al server autoritativo, cosi che il primo server viene alleggerito; questa soluzione è da preferire se vogliamo alleggerire il carico dei server e distribuire i compiti in modo stretto Schema: attributi e classi di oggetto Uno schema è la definizione formale del contenuto delle entry in un sottoalbero. Lo schema definisce i tipi di attributi che le entry possono contenere. Gli attributi possono avere come valori una stringa UTF-8 (ad esempio per un indirizzo ), una stringa binaria in formato JPEG (per memorizzare la foto di una persona) oppure il DN di altre entry della directory (ad esempio per memorizzare il direttore di un dipartimento). Oltre a questo lo schema definisce le classi di oggetto generate attraverso composizioni degli attributi definiti. Per gli attributi, lo schema definisce: se l attributo è multivalore o a valore singolo le modalità di ricerca consentite (case sensitive o meno, ricerca su sottostringhe ecc.) le modalità di confronto consentite la descrizione dell attributo Per le classi di oggetti, lo schema definisce: il codice 52

53 il nome e la descrizione l object class dalla quale eredita il tipo gli attributi obbligatori e quelli opzionali Vediamo un esempio di schema che ci permette di descrivere meglio le caratteristiche e le potenzialità di questo strumento. # Estratto dello schema inetorgperson.schema # attributetype ( NAME preferredlanguage DESC RFC2798: preferred written or spoken language for a person EQUALITY caseignorematch SUBSTR caseignoresubstringsmatch SYNTAX SINGLE-VALUE ) # [...] Altre definizioni di attributi objectclass ( NAME inetorgperson DESC RFC2798: Internet Organizational Person SUP organizationalperson STRUCTURAL MAY ( audio $ businesscategory $ carlicense $ departmentnumber $ displayname $ employeenumber $ employeetype $ givenname $ homephone $ homepostaladdress $ initials $ jpegphoto $ labeleduri $ mail $ manager $ mobile $ o $ pager $ photo $ roomnumber $ secretary $ uid $ usercertificate $ x500uniqueidentifier $ preferredlanguage $ usersmimecertificate $ userpkcs12 ) ) Senza dilungarci sulla specifica della sintassi della definizione degli schemi LDAP, possiamo vedere come viene definito un attributo e come questo viene usato subito all interno della definizione di una nuova classe di oggetti (appunto objectclass). È importante notare come le classi siano strutturate in una gerarchia attraverso l ereditarietà: in modo simile ai linguaggi di programmazione ad oggetti, si ha la possibilità di ereditare gli attributi di una classe già definita. La radice di questa gerarchia è la classe top che definisce come unico attributo obbligatorio proprio l attributo objectclass, cioè quello attraverso il quale si definisce la classe di appartenenza di una entry. Per completezza ecco la definizione della classe top: objectclass ( NAME top DESC RFC2256: top of the superclass chain ABSTRACT MUST objectclass ) Siccome non è specificato altrimenti, si deduce che l attributo objectclass è multivalore, quindi una entry può appartenere a più object class contemporaneamente, definendo almeno tutti gli attributi obbligatori delle classi usate. Bisogna fare attenzione alle collisioni tra nomi di attributi uguali all interno di due differenti classi. 53

54 Gli elementi di uno schema vengono identificati, oltre che dal loro nome, anche da un identificatore globale detto Object Identifier (OID), che attraverso una notazione numerica puntata, identifica gerarchicamente un oggetto. Gli OID vengono largamente usati in molte altre applicazioni e sono standardizzati a livello internazione dallo ASN.1 33 di ITU-T per evitare collisioni e per avere un database aggiornato e centralizzato con tutte le definizioni. Oltre agli schema standard ogni amministratore può definire i propri personalizzati, anche partendo da quelli già fatti, per rappresentare meglio la propria realtà aggiungendo gli attributi e le classi di oggetto che ritiene necessari Server LDAP slave Vista la criticità dei dati contenuti nelle directory LDAP e la necessità di avere questi dati sempre disponibili, si possono creare delle repliche (server slave) della directory (server master) contente i dati. Queste repliche hanno due principali funzioni: garantire la disponibilità di una copia sempre funzionante della directory, anche nel caso in cui il server principale smettesse di funzionare; bilanciare il carico delle richieste su più copie dello stesso server, in modo da ottimizzare l utilizzo delle risorse e velocizzare i tempi di risposta. La replica di una directory LDAP prevede che il server con la copia principale (master) sia a conoscenza di tutti i server secondari presenti nella rete e che propaghi tutte le modifiche che vengono effettuate alla directory verso ciascuna copia, per mantenere omogeneità nei dati tra master e slave, come vediamo nella figura Figura 3.15: Meccanismo di replica di LDAP La nostra directory La directory LDAP che utilizzeremo in questo progetto conterrà informazioni di diversa natura, dettate principalmente dalla necessità di centralizzare le configurazioni dei servizi di rete e di riconoscere l utente associato a ciascun host della rete. In particolare verranno memorizzate sulla directory: le configurazioni dei servizi DHCP e DNS le informazioni di autenticazione degli utenti, sia per INFN/TRIP, che per il proxy del Dipartimento di Fisica, che per usi futuri 33 Abstract Syntax Notation One, notazione standard e flessibile per la trasmissione e la codifica di dati 54

55 le identità dei dipendenti degli enti coinvolti (informazioni molto utili per creare liste di utenti divise per enti, gruppi di ricerca, tipologie ecc.); possiamo usare queste informazioni direttamente da un client di posta per trovare l indirizzo di un utente le configurazioni del server RADIUS (in particolare gli indirizzi MAC dei portatili che accedono senza ulteriore autenticazione) 3.6 Virtualizzazione per alta affidabilità Per virtualizzazione si intende l astrazione delle risorse dei computer. Potremmo definire la virtualizzazione come una tecnica per nascondere le caratteristiche fisiche di una risorsa (informatica) al sistema operativo, alle applicazioni e all utente finale. Ad esempio, potremmo far sembrare che una singola risorsa fisica (come un server, un sistema operativo o un disco) funzioni come se fosse un insieme di varie risorse logiche, oppure, al contrario, far vedere più risorse logiche come se fossero una sola risorsa. Il concetto di virtualizzazione è molto ampio, e nel passato ha assunto varie declinazioni nei vari ambiti dell informatica: il concetto di stampante virtuale, per esempio, nasconde lo stato della stampante all utente facendola sembrare sempre disponibile, oppure il concetto di disco virtuale, che permette di creare dispositivi virtuali a partire da partizioni, insiemi di partizioni, file o aree disco. Il fattore comune è quello del mascheramento dei dettagli fisici di una risorsa, a favore della flessibilità di utilizzo e d interfacciamento verso l utente. Puntualizziamo anche la differenza tra trasparenza e virtualizzazione: per trasparenza di intende una risorsa che esiste nel mondo reale, ma non viene vista al lavoro; per virtualizzazione si intende qualcosa che è visibile, che percepiamo, ma che non esiste nella forma in cui lo percepiamo (perché frammentato o combinato), ad esempio un disco virtuale. Seguendo una classificazione consolidata possiamo suddividere la virtualizzazione in due ambiti di applicazione diversi: virtualizzazione di piattaforme, che riguarda la simulazione di computer; virtualizzazione di risorse Virtualizzazione di piattaforma con Xen Xen è un monitor di macchine virtuali (o Hypervisor) per architetture IA-32, x86-64, IA-64 e PowerPC. Permette di far girare un sistema operativo host e sopra di esso eseguire diversi sistemi operativi ospiti che utilizzano lo stesso hardware contemporaneamente. Una macchina virtuale è un ambiente virtuale che si pone come interfaccia tra l hardware del computer e il sistema operativo così che l utente abbia la sensazione di usare un ambiente a lui dedicato. Come sistemi operativi host possiamo usare versioni modificate di GNU/Linux e NetBSD. Come sistemi ospiti possiamo usare diversi sistemi Unix-like e, su certi hardware, anche versioni originali di Microsoft Windows. Xen opera una paravirtualizzazione, cioè l hypervisor non deve necessariamente simulare l hardware, ma mette a disposizione delle speciali API 34 che possono essere usate dai sistemi operativi ospite, opportunamente modificati. Queste chiamate di sistema all hypervisor vengono appunto chiamate hypercall in Xen e offrono la possibilità di controllare l allocazione delle risorse harware alle macchine virtuali tramite il monitor. 34 Application Program Interface 55

56 Xen nasce come progetto di ricerca all Università di Cambridge, diretto da Ian Pratt, fondatore della XenSource Inc. La prima versione pubblica di Xen risale al È stato scelto il software Xen perché permette di creare macchine virtuali in modo veloce ed efficiente, garantisce un basso overhead di calcolo (dovuto al monitoraggio e al controllo delle macchine virtuali) e alla disponibilità di documentazione e supporto su Internet. Vediamo alcuni esempi dei benefici della creazione di macchine virtuali: creazione di server virtuali dedicati da parte degli Internet Hosting Service, per fornire all utente un ambiente di lavoro indipendente e personalizzato frammentazione dei servizi su server ad alte prestazioni, per aumentarne l efficienza e la sicurezza Le macchine virtuali vengono usate ad esempio dagli Internet Hosting Service per fornire ai clienti server virtuali a loro dedicati. Su grandi mainframe o server ad alte prestazioni, la virtualizzazione dei server aumenta la solidità, lo sfruttamento delle risorse e dà la capacità di creare velocemente una nuova macchina virtuale, ad esempio per rispondere dinamicamente ad un crash di sistema; in caso di problemi hardware si potrebbe trasferire la macchina virtuale su un nuovo server fisico in modo da mantenere attivo il servizio anche in caso di malfunzionamenti fisici senza tempi di down del servizio (Xen permette il trasferimento di una macchina virtuale a run-time, tramite la virtual machine live migration). Per quanto ci riguarda, useremo Xen per realizzare delle piccole macchine virtuali dedicate a particolari servizi, in modo da suddividere i problemi di ogni server nel proprio ambiente e per confinare il down di una macchina al singolo servizio che ospita; moltiplicheremo quindi il numero di server a disposizione che, anche se virtuali, mantengono funzionalità soddisfacienti. Con lo stesso meccanismo possiamo creare delle repliche dei server più critici, in modo tale da mantenere alti livelli di affidabilità dei servizi, sia attraverso un bilanciamento continuo del carico, sia mantenendo una macchina secondaria silente che prenda il posto della copia originale quando questa si ferma. Ecco gli elementi chiave dell architettura di Xen: Hypervisor: è il monitor delle macchine virtuali, che gira come servizio sul sistema operativo host; Sistema operativo host con supporto per l Hypervisor; Kernel dei sistemi operativi client con supporto per le chiamate Xen; Immagine dei filesystem dei sistemi client; Strumenti di amministrazione; File di configurazione delle macchine virtuali. Introduciamo alcuni termini dell architettura Xen: Domain 0 (o Dom0) è il primo dominio 35 avviato dall hypervisor all avvio. Ha dei privilegi speciali, ad esempio può avviare nuovi domini guest e può accedere direttamente all hardware. È responsabile di eseguire i driver per tutti i dispositivi presenti e, per l hardware condiviso con gli altri domini, ad esempio schede di rete e dischi, carica i backend driver che multiplexano e instradano all hardware le richieste provenienti dai driver frontend di ciascun DomU. Solo Linux e NetBSD possono essere eseguiti come Dom0, perché Xen prevede patch per il kernel e strumenti per il Dom0 solo per questi kernel. 35 in questo contesto il termine dominio sta ad indicare un ambiente operativo creato da Xen che simula una piattaforma, sulla quale eseguire un sistema operativo 56

57 Domain U (o DomU) è la controparte del Dom0; è un dominio ospite che non ha accesso diretto all hardware. Deve eseguire dei driver frontend per l hardware che vuole usare, che è condiviso con gli altri DomU. Il DomU è avviato dal demone xend sul Dom0, tramite il comando xm. Il kernel del DomU da avviare è memorizzato nel Dom0, non nel filesystem esportato al DomU. Xen Hypervisor è il cuore di Xen: si situa tra l hardware e il sistema operativo dei vari domini. È responsabile del controllo dell allocazione delle risorse, dello scheduling e di altre operazioni a basso livello. Presenta al sistema operativo una macchina virtuale, del tutto simile all architettura reale sottostante. I domini comunicano con l hypervisor attraverso delle hypercall (chiamate hardware opportunamente modificare per usare le API di Xen); dal canto suo l hypervisor risponde con un evento, che simula il funzionamento degli IRQ 36 dell hardware reale. Xend è il demone che si occupa del controllo delle macchine virtuali; viene eseguito all avvio, all interno del Dom0. Si veda lo schema in figura 3.16 che riassume la struttura dell architettura di Xen. Figura 3.16: Schema semplificato dell architettura di XEN Nella nostra struttura le macchine virtuali Xen verranno usate per ospitare i server RADIUS e le repliche del master server LDAP; usiamo macchine virtuali perché permettono di creare dei server molto snelli e veloci, che contengono solo il software strettamente necessario. Avendo delle macchine virtuali, sarà facile replicare un server se questo andasse in crash: infatti basta copiare il filesystem della macchina virtuale difettosa su una macchina funzionante, copiarne la configurazione e mandarla in esecuzione. Le due macchine devono avere delle configurazioni simili. Si prevede perciò di riservare alcuni server per ospitare macchine virtuali, proprio per assolvere a questo compito. 36 Interrupt ReQuest 57

58 3.6.2 EVMS: virtualizzazione dei dischi L Enterprise Volume Management System (EVMS) è un software di gestione di volumi logici molto potente e flessibile, che permette di configurare sistemi complessi di storage sotto Linux. Volumi logici I volumi logici sono un astrazione delle partizioni disco create da un gestore di volumi. Un volume logico può nascere da un insieme di partizioni, spazio libero su partizioni ed altre risorse, e viene mostrato al sistema come se fosse un normale dispositivo a blocchi. In questo modo possiamo gestire in modo flessibile le partizioni del disco, modificare la dimensione di un volume, aggiungendo nuove risorse, eliminando così il problema dei limiti fisici di un disco: potremmo ad esempio creare un volume logico che contenga spazio preso da una Storage Area Network 37 e, aggiungendo ad essa nuovo spazio disco, si può incrementare di continuo lo spazio del volume logico associato. La flessibilità di EVMS, come gestore di volumi logici, permette di creare volumi che fisicamente corrispondono a file su una partizione fisica. Si possono creare delle macchine virtuali su un computer ed usare come filesystem per queste macchine dei file su disco che EVMS mostra come partizioni. 37 un architettura che prevede di collegare unità di memorizzazione (come dischi o supporti ottici) in remoto ad un server, in modo tale che il sistema operativo veda quell unità come se fosse collegata localmente, rendendo trasparente la rete; si contrappone ai NAS (Networkattached storage) che usano un protocollo basato su file, come NFS o SMB, per collegare in remoto delle unità disco, che vengono riconosciute come collegate via rete. 58

59 Capitolo 4 Realizzazione Le fasi di ideazione del progetto, definizione dei requisiti e analisi delle tecnologie sono avvenute fra primavera e autunno 2007, periodo in cui il candidato ha lavorato al progetto nel periodo di stage La rete è stata installata e configurata ed è correntemente in uso presso il dipartimento, anche se ancora in fase di completamento. Il lavoro è stato svolto su una infrastruttura già esistente, che non può essere fermata per un certo periodo per l aggiornamento, quindi la fase di migrazione degli utenti ancora non è stata completata. A questo proposito si sta procedendo al passaggio graduale degli utenti, delle aule e dei laboratori a questa nuova infrastruttura, modificando, in modo progressivo, i metodi di accesso alla rete. Ecco, in breve, le fasi necessarie a completare l installazione della nuova rete: progettazione: questa fase riguarda lo studio delle necessità degli utenti e l individuazione delle tecnologie migliori per realizzare gli obiettivi della nuova rete; soprattutto si è dovuto tenere conto della coesistenza dei due enti, Dipartimento di Fisica ed INFN, all interno dello stesso edificio definizione delle reti: in questa fase si è dovuto decidere quante e quali reti 1 dovessero essere previste per la fase iniziale dell implementazione (alcune di esse servono solo per la fase di migrazione) configurazione dei dispositivi: prese le decisioni più importanti, è stato necessario configurare gli switch per riconoscere e distribuire in modo corretto il traffico delle nuove reti; inoltre è stato necessario configurare il router di frontiera tra le reti, che richiede particolari attenzioni. Lo stesso lavoro è stato svolto per gli access point wireless configurazione dei servizi: questa fase, avvenuta in concomitanza alla precedente, ha permesso di configurare i servizi critici della rete, quali LDAP e RADIUS e, solo successivamente, DHCP e DNS migrazione degli utenti: fase ancora in esecuzione, che prevede di passare sulla nuova rete tutti i computer, fissi o portatili, degli utenti, tutti gli account e le configurazioni dei servizi principali. Questa fase richiede sicuramente il tempo maggiore, poiché necessita di ripetute interazioni con gli utenti per l inserimento dei dati nella directory LDAP smantellamento delle vecchie strutture: questa fase consisterà nella rimozione delle vecchie reti wireless e dei vecchi account degli utenti, e la definitiva messa in produzione della nuova struttura 1 in questo contesto il termine rete sta ad indicare ciascuna rete VLAN 59

60 4.1 Struttura generale della rete La rete del dipartimento sarà composta di varie reti che coesistono all interno della stessa infrastruttura di rete (cavi, switch, router). Verranno create 16 reti separate che saranno utilizzate sia per modalità di accesso diverse, che per servizi diversi, come vediamo nella tabella 4.1. La struttura è flessibile ed estendibile: questo permetterà in futuro di aggiungere nuovi domini, senza troppa difficoltà. Interventi come lo spostamento di un laboratorio o la distribuzione di una rete privata tra i vari piani non saranno un problema visto che gli switch della dorsale dell edificio, opportunamente configurati, conoscono tutte le reti. Le reti appena elencate saranno divise logicamente, formando ciascuna un dominio di collisione Ethernet separato. Questo concetto di separazione dei domini che interviene a livello Data Link (il secondo della pila ISO/OSI), ci porta alle seguenti considerazioni sull indirizzamento IP di tali reti Indirizzamento IP La scelta fatta per l indirizzamento delle varie reti tiene in considerazione alcuni fattori: non stravolgimento, nei limiti del possibile, degli indirizzamenti già esistenti possibilità di vedere le varie reti come un unica rete ad un certo livello di astrazione Per rispondere alla prima necessità, è stata fatta la scelta di mantenere gli indirizzamenti IP originale per le reti del laboratorio di Informatica, del laboratorio di Acquisizione e della Farm di calcolo. Soprattutto per la Farm di calcolo, non era pensabile stravolgere l indirizzamento visto anche il recente upgrade della rete e il fatto che alcuni indirizzi sono hard-coded nel codice distribuito tra i vari nodi di calcolo. Per rispondere alla seconda necessità si è scelto di utilizzare una classe con capacità di indirizzamento molto grande e possibilità di suddividere la rete in porzioni con la stessa cardinalità, di dimensioni ragionevoli (con almeno indirizzi IP disponibili). Abbiamo quindi la rete di classe A che è stata suddivisa nelle sue componenti di classe B, reti , Le Virtual LAN avranno quindi un indirizzamento del tipo con maschera di rete In questo modo ciascuna rete può contenere fino ad un massimo di = indirizzi IP, che possono sicuramente soddisfare tutte le necessità presenti e future del dipartimento. Per completezza, viene riportato l assegnamento degli indirizzi alle reti, la VLAN ad esse associate e il loro utilizzo nella tabella Implementazione VLAN Dopo aver definito le reti di cui abbiamo bisogno, si devono far conoscere tali reti agli switch del dipartimento. Verranno usati switch managed, cioè switch ai quali si può assegnare un indirizzo IP e che forniscono una interfaccia per configurare le porte e altri parametri di commutazione. Altro requisito degli switch è, naturalmente, il supporto alle VLAN. Gli switch utilizzati sono quelli della serie 3Com 3300Tm e HP Procurve Entrambi forniscono sia un interfaccia web, che un piccolo interprete a linea di comando per impostare le configurazioni dello switch Aggiunta dei VLAN ID Per realizzare una Virtual LAN c è bisogno che tutti gli switch conoscano il suo identificatore (il VLAN ID). 60

61 Rete di controllo Wired INFN-dot1x FISICA-priv INFN-web FISICA-web STUD WL-common OPEN FISICA INFN INFOLAB ACQLAB FARM rete utilizzata dagli amministratori: ad essa saranno collegati tutti gli switch (per il controllo remoto), gli access point (per lo stesso motivo), i dom0 per le macchine virtuali e le postazioni degli amministratori per accedere ai suddetti dispositivi sostituirà la rete cablata sia del Dipartimento di Fisica, che dell INFN: ad essa saranno collegate tutte le postazioni fisse degli utenti e le interfacce di rete cablata dei portatili; rete wireless protetta, con autenticazione 802.1x, dedicata agli utenti INFN in possesso del proprio certificato personale e delle credenziali di accesso wireless del progetto INFN/TRIP; rete wireless protetta, con autenticazione 802.1x, dedicata agli utenti universitari, per permettere un accesso sicuro agli utenti del dipartimento; rete wireless protetta da Captive Portal, dedicata agli utenti INFN in possesso o del proprio certificato personale o delle credenziali di accesso wireless del progetto INFN/TRIP; rete wireless protetta da Captive Portal dedicata agli utenti universitari, per permettere un accesso sicuro agli utenti del dipartimento, per supportare eventuali meccanismi futuri di autenticazione a livello internazionale tra Università rete wireless dedicata agli studenti dei Corsi Triennali e Specialistici di Fisica, che verrà gestita dal Dipartimento di Fisica per implementare politiche restrittive che permettano di garantire l accesso a certe porzioni della rete, in base, ad esempio, all anno di iscrizione di uno studente rete wireless dedicata a tutti gli utenti sia del dipartimento di fisica che della sezione dell INFN; sostituisce la rete INFN-web per gli utenti locali che non devono inserire username/password per accedere alla rete, ma vengono riconosciuti in seguito alla registrazione del loro portatile sul database di autenticazione rete wireless dedicata ai convegni; viene attivata solo per convegni, seminari, workshop nei quali si prevede una grande affluenza di persone, che non afferiscono né al dipartimento di Fisica, né a INFN rete dedicata a distribuire il tronco pubblico della rete del Dipartimento di Fisica; conterrà tutti i server pubblici del Dipartimento (web, posta ecc.) come la precedente, distribuisce il tronco pubblico della rete INFN, nella quale vengono inseriti tutti i servizi pubblici della sezione INFN di Perugia rete del laboratorio di informatica come la precedente ma riguarda il laboratorio di Acquisizione Dati situato al piano terra rete della farm di calcolo del dipartimento; ospita sia i calcolatori della griglia di calcolo INFN (INFN Grid), sia quelli di singoli esperimenti, che sono stati integrati nella stessa struttura: con le VLAN possiamo ad esempio associare un qualsiasi computer dell edificio alla griglia di calcolo, aumentando la sua capacità elaborativa Tabella 4.1: Reti nascoste 61 del progetti

62 Rete di controllo / Wired Fisica: / , INFN: / INFN-dot1x / FISICA-priv / INFN-web / FISICA-web / STUD / WL-common Fisica: / , INFN: / OPEN / FISICA / (pubblica) INFN / (pubblica) INFOLAB / ACQLAB / FARM / Tabella 4.2: Indirizzamento delle reti Il primo passo è quindi quello di memorizzare in ogni switch (quelli di dorsale almeno) il codice delle VLAN usate (si veda la figura 4.1); i dati da fornire in configurazione sono: VLAN ID : il codice della VLAN (compreso tra 1 e 4094); VLAN Name : il nome della VLAN, opzionale, utilizzato solo per facilitare l utente; Local ID : codice usato internamente su vecchi switch che permettono di configurare fino ad un massimo di 16 VLAN; Figura 4.1: Schermata di aggiunta di una VLAN sullo switch 3Com Tagging delle porte La fase successiva consiste nel definire quali porte appartengono a ciascuna VLAN: ciascuna VLAN può essere annunciata su zero o più porte e ciascuna porta può appartenere ad una o più VLAN. L appartenenza di una porta ad una VLAN può avvenire in due modi: Tagged : i pacchetti Ethernet che contengono al loro interno quel particolare VLAN ID (che si dicono quindi tagged) vengono fatti passare e possono essere inoltrati solo su porte che appartengono alla stessa VLAN eseguendo quindi una segmentazione dello switch; nell immagine 4.2 aggiungiamo porte Tagged alla lista della VLAN 2 (WIRED). 62

63 Figura 4.2: Aggiunta di porte in modalità Tagged ad una VLAN Untagged : i pacchetti Ethernet che passano per quella porta e non contengono un VLAN ID vengono colorati (o meglio Taggati) per quella VLAN, cioè viene inserita l intestazione 802.1q con quel VLAN ID e sono quindi inoltrati verso altre porte di quella VLAN; nell immagine 4.3 si noti la parte evidenziata nella quale specifichiamo la rete 2 (WIRED) come Untagged VLAN per la porta 1 dello switch. Figura 4.3: Definizione della VLAN Untagged per una porta dello switch Da ciò consegue che ogni porta può appartenere a molte VLAN in modalità Tagged, ma ad una sola in modalità Untagged, che quindi inserisce nella VLAN Untagged tutto il traffico non 802.1q proveniente da quella porta. 63

64 Figura 4.4: Esempio di separazione dei domini VLAN Si possono creare delle configurazioni complesse che distribuiscono le varie VLAN per tutti gli switch presenti nella rete, come mostra la figura Configurazione VLAN con SSID multipli su AP wireless Gli access point usati nella nostra struttura sono i Cisco Aironet 1100 e Come si è visto nel progetto della rete nel paragrafo 2.3, ad ogni rete wireless corrisponde una particolare VLAN. Per configurare gli access point (AP) wireless ad operare in questa struttura si deve procedere in questo modo: 1. far conoscere agli AP la presenza e gli identificatori delle VLAN associate 2. creare degli SSID per ciascuna rete 3. impostare le politiche di sicurezza per ciascuna rete Configurazione delle VLAN negli access point Per aggiungere una VLAN negli access point, basta selezionare la voce VLAN nella sezione Service dell interfaccia web di configurazione. Figura 4.5: Configurazione delle VLAN sugli Access Point Cisco Come si vede nell immagine 4.5, per aggiungere una VLAN basta inserire il suo VLAN ID e un nome, opzionale, per riconoscere la rete più facilmente. Si può scegliere quale VLAN deve essere nativa, cioè alla quale associare i pacchetti che non hanno un VLAN ID definito. 64

65 Creazione degli SSID per ogni rete A questo punto gli access point conoscono la struttura della rete, e quindi possono comunicare con le VLAN inserite nella fase precedente. Quello che manca perché un computer si possa connettere alla rete senza fili è definire gli SSID, o meglio gli ESSID 2. Come mostra l immagine 4.6, per definire un SSID, cioè una nuova rete 3 wireless, basta digitare il suo nome, la VLAN associata a questa rete e l interfaccia di rete wireless da usare (se ve ne fosse più di una). Figura 4.6: Configurazione degli SSID sugli Access Point Cisco In questo momento si possono definire le politiche di sicurezza della rete: per esempio, per la rete WL-common verrà impostato l accesso con autenticazione su indirizzo MAC che sarà controllato sul server RADIUS. Un altra impostazione riguarda l annuncio della rete ai client: spesso questa opzione, che va sotto il nome di Broadcast SSID in Beacon 4, viene attivata per fare in modo che un client veda la rete wireless alla quale associarsi e la selezioni. Se invece la rete non venisse annunciata con il Beacon, un client dovrebbe conoscere a priori l SSID della rete alla quale associarsi e tentare la connessione: questa impostazione è consigliata per reti nascoste alle quali deve accedere un ristretto numero di persone che conoscono il nome della rete. Definire le politiche di accesso Dopo aver creato gli SSID, si può fare un riepilogo delle reti create e, soprattuto, definire con esattezza le restrizioni di accesso e le impostazioni di autenticazione per ciascuna rete. Prima di tutto si devono fornire all access point gli indirizzi dei server RADIUS per le varie reti. Ad esempio per la rete WL-common la politica di autenticazione è Open with MAC authentication, cioè con controllo del MAC address; questi MAC address saranno controllati sul server radius-wlcommon.priv, creato appositamente su una macchina virtuale, per autenticare gli indirizzi fisici delle schede wireless registrate. La rete wireless INFN-web ha un autenticazione Open che non richiede altri controlli: l autenticazione degli utenti per questa rete avviene tramite Captive Portal; quindi il problema dell autenticazione viene demandato dall access point al Captive Portal. Al contrario delle precedenti, la rete INFN-dot1x prevede autenticazione EAP, con il meccanismo di cifratura AES CCMP con TKIP. Il server RADIUS che autentica gli utenti di questa rete è radius.pg.infn.it. 2 si legga il paragrafo per maggiori informazioni 3 questo termine è usato impropriamente, perché si dovrebbe parlare non di rete, ma di identificatore per un insieme di servizi, che consistono nell accesso alla VLAN associata 4 un pacchetto spedito dagli Access Point per far conoscere ai client gli SSID che forniscono 65

66 Terminata la fase di configurazione dei dispositivi, occorre configurare i servizi della rete. 4.3 Implementazione del progetto TRIP Per realizzare in concreto il progetto TRIP bisogna installare e configurare alcuni servizi: 1. Accesso wireless con autenticazione 802.1x 2. server RADIUS con proxying 3. Captive Portal con autenticazione su username/password o certificato digitale X.509 L installazione del progetto TRIP deve avvenire dopo aver configurato sia gli switch della rete cablata che gli Access Point della rete wireless con la struttura a VLAN. INFN/TRIP presuppone una infrastruttura wireless preesistente che riservi almeno due VLAN per l accesso dei dipendenti/associati INFN: INFN-web: per l accesso tramite Captive Portal con certificato digitale o username/password INFN-dot1x: per l accesso cifrato con certificato digitale e username/password (per una maggiore sicurezza con 802.1x) Il progetto TRIP prevedeva inizialmente 3 metodi di autenticazione, aggiungendo a quelli appena descritti le VPN 5. Questi 3 metodi sono stati scelti vista l esperienza dei progettisti e dei sistemisti INFN con tali tecnologie. Il meccanismo delle VPN non è stato sviluppato nel progetto. In tutti i casi il server di autorizzazione sarà un server RADIUS, che attualmente lo standard di fatto nel settore Configurazione Access point per 802.1x La configurazione degli access point per la rete INFN-dot1x è abbastanza laboriosa, perché garantisce un buon livello di sicurezza mettendo in gioco vari elementi come l autenticazione e i certificati digitali. Come visto nei paragrafi precendeti, abbiamo degli access point configurati per lavorare con le VLAN, ma non sono state definite ancora le politiche di accesso per la rete INFN-dot1x che richiede una particolare configurazione. Configurazione della procedura di autenticazione Per configurare l autenticazione con 802.1x per l SSID INFN-dot1x si deve scegliere tra i metodi di autenticazione possibili nel Cisco 1100, quello che va sotto il nome di Open Authentication with EAP 6, come si vede nell immagine 4.7. Senza dimenticarsi di specificare il server RADIUS al quale delegare l autenticazione. Ora bisogna andare nella sezione relativa all Encryption Manager, che permette di impostare il metodo di cifratura, cioè AES-CCMP+TKIP 7, come mostrato nell immagine Virtual Private Network, meccanismo di tunnelling di una comunicazione da una rete verso un altra 6 per una descrizione del protocollo EAP si veda la sezione relativa nel paragrafo un meccanismo di cifratura che usa l algoritmo AES, Advanced Encryption Standard, insieme ai protocolli CCMP, Counter Mode with Cipher Block Chaining Message Authentication Code, e TKIP, Temporal Key Integrity Protocol, che si ripropongono insieme di sostituire il vecchio metodo WEP, Wired Equivalent Privacy. 66

67 Figura 4.7: Configurazione dell autenticazione sugli Access Point Cisco Figura 4.8: Dettaglio della configurazione dei metodi di cifratura Configurate queste opzioni basta abilitare la rotazione delle chiavi WPA 8 con l opzione Broadcast Key Rotation Interval. Ora è finalmente conclusa la configurazione della procedura di autenticazione 802.1x per la rete INFN-dot1x Configurazione Captive portal In questa fase si deve creare il Captive Portal per l autenticazione degli utenti della rete wireless. Si noti che questa procedura è comune alle reti INFN-web, OPEN e FISICA-web. Configurazione server web Il computer sul quale è installato il server web che fa girare i Captive Portal è privgw.priv che svolge anche il compito di router tra le reti. Il server ha un interfaccia di rete per ogni VLAN, visto che deve gestire il routing. Per questo motivo si può configurare il server web per rispondere in modo diverso in base alla rete dalla quale riceve richieste di accesso. Tramite il DNS vengono definiti vari alias per il server, uno per ogni rete: quindi avremo privgw.infnweb.priv, privgw.fisicaweb.priv e privgw.open.priv. Queste scelta è guidata dal fatto che al primo accesso di un utente, vogliamo che la sua connessione sia bloccata dal Captive Portal; dopo aver effettuato l accesso, le connessioni da quel client saranno fatte passare verso Internet, attraverso il firewall. Come server web verrà usato Apache 2, versione ; questo software permette di definire varie istanze del server web, detti Virtual Host 9, diversificandoli in base al nome DNS o all indirizzo IP. Vengono definiti quindi 3 virtual host, relativi ai Captive 8 Wi-Fi Protected Access, un insieme di metodi di sicurezza per le reti wireless nato per risolvere alcune mancanze di WEP, Wired Equivalent Privacy 9 sistema implementato nei webserver, che permette di ospitare su uno stesso server più di un sito o servizio 67

68 portal per le suddette reti. Per configurare un virtual host basta includere la sua configurazione all interno del file di configurazione di Apache /etc/apache2/httpd.conf. Ecco la configurazione del virtual host per il Captive Portal della rete INFN-web: <VirtualHost :443> ServerName tino.infnweb.priv ServerAdmin ServerSignature On # General setup for the virtual host, inherited from global configuration DocumentRoot "/opt/tino/infnweb/tino-www" # tino config ScriptAlias /tino.cgi "/opt/tino/infnweb/tino/tino.cgi" <Location /tino.cgi> SSLVerifyClient optional SSLOptions +StdEnvVars SSLOptions +ExportCertData SSLVerifyDepth 2 </Location> CustomLog ErrorLog LogLevel warn /var/log/apache2/tino-infnweb.ssl combined /var/log/apache2/tino-infnweb.ssl.error-log SSLEngine On SSLCertificateFile /opt/tino/infnweb/self-signedcertificate/infnweb.crt SSLCertificateKeyFile /opt/tino/infnweb/self-signedcertificate/infnweb.key SSLCACertificateFile /etc/apache2/ssl/infnca.crt RewriteEngine on RewriteCond %{HTTP_HOST}!^tino\.infnweb\.priv [NC] RewriteCond %{HTTP_HOST}!^$ RewriteRule ^(.*) [R=301,QSA,L] </VirtualHost> Senza soffermarsi troppo sulla sintassi, si può notare subito come venga definito un virtual host che sta in ascolto sull interfaccia , sulla rete INFN-web, sulla porta 443, cioè quella di http su tunnel cifrato (https 10 ). Viene definito il nome del server, tino.infnweb.priv che sarà un alias sul DNS per privgw.infnweb.priv, l indirizzo dell amministratore, e viene attivata la cifratura. Come si vedrà nel paragrafo successivo, il software per il Captive Portal che è stato scelto è TINO NoCat, ed è implementato tramite uno script CGI 11 in linguaggio Perl. La cartella di partenza del server web è quella di TINO, in modo che appaia proprio il Captive Portal come prima pagina a chi accede al server. A questo punto vanno configurate alcune opzioni che riguardano il controllo del certificato dell utente: queste funzioni servono per realizzare l autenticazione tramite 10 porta speciale che fa passare il solito traffico HTTP su un livello di autenticazione e cifratura che si interpone tra HTTP e TCP 11 Common Gateway Interface, un protocollo standard per interfacciare applicazioni esterne con un webserver 68

69 certificato INFN installato sul browser del client. Il server web chiederà al browser dell utente se possiede un certificato digitale: se la risposta è affermativa, il certificato viene trasmesso al server web che lo passerà al Captive Portal perché ne verifichi la validità (le direttive coinvolte sono SSLVerifyClient, SSLOptions e SSLVerifyDepth). Dopo aver configurato i file di log del virtual host, va completata la configurazione di SSL 12 per la cifratura della connessione dal client al server: SLEngine On: attiva la cifratura sulla connessione; SSLCertificateFile /opt/tino/infnweb/self-signedcertificate/infnweb.crt: imposta il certificato digitale del server che viene usato per la cifratura del tunnel; SSLCACertificateFile /etc/apache2/ssl/infnca.crt: imposta il certificato della Certification Authority INFN ed è usato per identificare la CA che ha firmato il certificato del server. Con questo la configurazione è quasi terminata; rimane da impostare un ultima opzione, che è anche la più importante per un Captive Portal e cioè la Rewrite Rule. Sotto questo nome va quel meccanismo implementato nei server web che permette la modifica dell URL 13 inserito dall utente: nel nostro caso si deve fare in modo che l utente, qualsiasi indirizzo digiti sul suo browser, venga rediretto sulla pagina di login del Captive Portal. Per fare questo deve essere attivato il motore di riscrittura, RewriteEngine on, e, dopo aver imposto alcuni casi in cui non deve essere eseguita alcuna riscrittura con la direttiva RewriteCond, specificare l indirizzo che va a sostituire quello digitato dall utente, con: RewriteRule ^(.*) [R=301,QSA,L] È bene analizzare più a fondo le parti di quest ultima direttiva: RewriteRule: è il nome della direttiva; ^(.*): questa è un espressione regolare che corrisponde a tutte le stringhe possibili, cioè quelle che iniziano con zero o più caratteri; questo è l URL che viene sostituito a quello digitato dall utente e corrisponde alla pagina di login del Captive Portal; [R=301,QSA,L]: queste ultime istruzioni permettono di passare delle opzioni allo script CGI per ricordarsi dell URL digitato dall utente. Al termine della configurazione di Apache abbiamo il server web funzionante, che visualizza la pagina di login di TINO al primo accesso dell utente. Agli accessi successivi la connessione dell utente non sarà più bloccata dal Captive Portal. Configurazione Tino TINO NoCat è stato sviluppato come componente di accesso e autenticazione per la rete wireless del Campus universitario di Palosaari, Finlandia. È scritto come CGI in Perl. Ecco, in alcuni passi, il suo funzionamento: 1. le connessioni vengono redirette alla pagina di login di Tino; 12 Secure Socket Layer, un protocollo di crittografia che fornisce comunicazioni sicure per i trasferimenti dati di qualunque tipo su Internet 13 Uniform Resource Locator, un identificatore glovale che permette di riconoscere e recuperare un documento all interno di Internet; è uno dei concetti chiave del World Wide Web 69

70 2. il MAC address dell utente che accede alla pagina viene ricercato all interno dei lease del server DHCP; 3. all utente viene richiesto il nome utente e la password, oppure, se lo possiede, il suo certificato digitale; 4. se il login è andato a buon fine, l indirizzo IP, il MAC address, la data di login e il nome dell utente (eventualmente estratto dal certificato) vengono memorizzati in un file all interno della directory di spool di Tino; 5. Tino invoca uno script di shell esterno per aprire il firewall alle connessioni entranti da quell indirizzo IP e MAC address. Come parte del pacchetto di Tino viene fornito anche un programma da linea di comando che controlla la scadenza dei lease DHCP degli utenti connessi ed eventualmente li cancella dalla directory di spool e dal firewall. La configurazione del software avviene impostando alcune variabili nel file tino.pm che contiene le funzioni principali dello script CGI. Vediamo alcuni frammenti della configurazione: our $spooldir = "/opt/tino/infnweb/spool"; our $logfile = "/opt/tino/infnweb/log"; my $fw_script = "sudo /opt/tino/infnweb/tino/firewall.sh"; Queste variabili impostano: 1. la directory di spool che conterrà i file con le specifiche degli utenti che hanno effettuato il login 2. il file di log 3. lo script che modifica il firewall per far passare il traffico del client che si è autenticato our $ca_match = "/C=IT/O=INFN/CN=INFN Certification Authority"; our $new_ca_match = "/C=IT/O=INFN/CN=INFN CA"; Successivamente va detto a Tino quale CA dovrà riconoscere come valida per autenticare gli utenti tramite certificati digitali. In questo caso si specifica il Distinguished Name della CA di INFN. Le stringhe sono due, perché la CA di INFN ha di recente cambiato nome, perciò va garantito il funzionamento anche dei certificati emessi dalla vecchia CA. my $dhcpd_leases = "/var/lib/dhcp/dhcpd.leases"; my $radius_host = "radius.pg.infn.it"; my $radius_secret = "********************"; our $default_realm = "\@pg.infn.it"; In questo frammento viene detto a Tino dove trovare le informazioni per autenticare i client che chiedono l accesso. Prima di tutti va impostato il percorso del file di lease del DHCP, che contiene le informazioni dell assegnamento degli indirizzi del DHCP che vengono dati agli utenti, con l indicazione dell indirizzo IP assegnato. Poi va detto a Tino dove si trova il server di autenticazione e come interagire con esso: perciò viene indicato il nome del server RADIUS, radius.pg.infn.it, la password di accesso e il realm di default che sarà appeso al nome utente inserito se non viene specificato alcun realm (se per esempio tenta l accesso l utente mario.rossi@mi.infn.it, non verrà appesa questa stringa, ma se tentasse l accesso l utente simone.pascarosa, allora, prima di essere autenticato dal server RADIUS, la stringa sarebbe trasformata in simone.pascarosa@pg.infn.it). 70

71 Configurazione firewall iptables per NAT e redirezione connessioni Per effettuare il controllo delle connessioni è stato usato lo strumento iptables 14. Non sarà commentata tutta la configurazione del firewall del server, ma solo la parte relativa al Captive Portal, e in particolare sarà analizzata solo quella della rete INFN-web, visto che quella delle altre reti con Captive Portal è simile. Il firewall segue la politica di specificare quali sono le connessioni accettate e di negare tutte le altre nella maggioranza dei casi. Quello che verrà configurate sul firewall riguarda: accettazione del traffico in ingresso dalla rete INFN-web; accettazione del forward del traffico tra le interfacce interne e quelle su rete pubblica; mascheramento con NAT 15 degli IP interni. Per organizzare i filtri, è stata creata una catena (Iptables Chain) che permette di raggruppare varie connessioni sotto lo stesso nome, per applicare regole a ciascuna di queste. /sbin/iptables -t filter -N filter_tino_infnweb /sbin/iptables -t filter -F filter_tino_infnweb Con queste istruzioni viene creata la catena filter tino infnweb. /sbin/iptables -t filter -A INPUT -p tcp -m state \ --state NEW -d dport 443 -j ACCEPT /sbin/iptables -t filter -A INPUT -p tcp -m state \ --state NEW -d dport 80 -j ACCEPT /sbin/iptables -t filter -A INPUT -j DROP Qui viene detto al firewall di accettare in ingresso tutte le nuove connessioni verso il server web, sia in chiaro (porta 80) che cifrate (porta 443). L ultima istruzione nega tutte le altre connessioni in ingresso. /sbin/iptables -t filter -A FORWARD -s /16 \ -d! /16 -j filter_tino_infnweb Questa istruzione inserisce tutto il traffico che passa attraverso il server, dalla rete INFN-web verso un altra rete, quindi anche Internet, nella catena filter tino infnweb. /sbin/iptables -t nat -N nat_tino_infnweb /sbin/iptables -t nat -F nat_tino_infnweb /sbin/iptables -t nat -A PREROUTING -s /16 \ -d! /16 -j nat_tino_infnweb /sbin/iptables -t nat -A PREROUTING -p tcp -s /16 \ -d! /16 --dport 80 -j DNAT --to-destination uno strumento molto potente sotto GNU/Linux per intercettare e manipolare i pacchetti di rete 15 Network Address Translation, tecnica che permette di riscrivere l indirizzo IP sorgente e di destinazione di un pacchetto che attraversa un router per la sua trasmissione su un altra rete 71

72 Impostate le regole di passaggio del traffico, viene definita la traduzione degli indirizzi della rete INFN-web per andare su Internet. Infatti tutti i portatili di questa rete usciranno su Internet con l indirizzo Le due istruzioni creano la catena nat tino infnweb e la puliscono. La terza istruzione inserisce il traffico in passaggio nel server nella catena appena creata. La quarta istruzione merita un approfondimento: /sbin/iptables -t nat -A PREROUTING -p tcp -s /16 \ -d! /16 --dport 80 -j DNAT --to-destination Questa regola viene applicata ai pacchetti nella fase di PREROUTING, cioè quando ancora non è stata presa la decisione di routing sul pacchetto: quello che si vuole fare infatti è bloccare la prima volta tutte le connessioni in uscita verso Internet, per obbligarle a passare dall autenticazione del Captive Portal. Il filtro intercetta i pacchetti provenienti dalla rete INFN-web ( /16), destinati ad un altra rete (! /16) ed effettua un DNAT, cioè un Destination NAT: in pratica viene cambiato nell intestazione IP l indirizzo dell host di destinazione, impostando come destinatario il Captive Portal, che risponde all indirizzo sulla porta 80 (http). /sbin/iptables -t nat -A POSTROUTING -s /8 \ -d! /8 -o eth1 -j SNAT --to-source Sistemata la rete interna, si deve specificare quale sarà l indirizzo col quale i portatili verranno identificati su Internet ed usiamo perciò l indirizzo dell interfaccia pubblica sulla rete INFN del server ( ). La regola infatti effettua il SNAT, Source NAT, che, dopo che è stata decisa la destinazione del pacchetto e prima che questo venga effettivamente trasmesso sull interfaccia di rete giusta (la eth1), modifica l indirizzo del mittente inserendo quello del server. In questo modo le risposte ai messaggi trasmessi verranno rispedite al nostro server, che saprà come rispedire il messaggio al giusto computer della rete interna Configurazioni RADIUS Il server RADIUS utilizzato è FreeRADIUS, erede del più vecchio Cistron RADIUS server. La configurazione del server RADIUS è molto lunga, perché prevede decine e decine di moduli, plugin, driver per diversi back-end dai quali leggere i dati di autenticazione. I file di configurazione si trovano, di default, sotto la directory /etc/raddb (retaggio del vecchio Cistron): alcuni dei file contenuti in questa cartella sono inutili, ma vengono mantenuti per retrocompatibilità. I file più importanti, che verranno commentati sono: radiusd.conf: configurazione generale del server, imposta le opzioni di logging, di sicurezza, il numero di processi da avviare, i driver backend da utilizzare e i filtri; infine vengono decisi i moduli da utilizzare nelle fasi di Autenticazione, Autorizzazione e Accounting; clients.conf: definisce i client (authenticator) che possono fare richiesta di autenticazione al RADIUS server; viene associato ad ogni client un nome e un segreto per evitare che un attaccante si spacci per un client autorizzato; eap.conf: configurazione delle opzioni EAP, definisce i tipi di autenticazione ammessi e le loro opzioni; proxy.conf: definisce i server che dovranno essere interrogati per i possibili REALM (domini) che ci aspettiamo di gestire (ad esempio infn.it) 72

73 users: definisce le autenticazioni da usare per i vari tipi di utenti e le risposte da fornire; questo file può essere usato anche per contenere i dati di autenticazione (username/password) in mancanza di un backend più organizzato come MySQL 16 o LDAP. radiusd.conf Una prima sezione del file imposta le cartelle dove trovare gli eseguibili e le altre configurazioni, il file e le opzioni di logging. Tra le altre ci sono le opzioni di sicurezza e quelle riguardanti il numero di processi da avviare per servire le richieste. La parte più importante è quella dei modules: i moduli sono delle parti di server che possono essere caricate o meno e che forniscono supporto per un certo backend dal quale leggere le configurazione, per un metodo di autenticazione (come ad esempio EAP) e per altre funzioni. Ecco la configurazione del modulo LDAP: ldap { server = "authserver.fisica.unipg.it" identity = "cn=manager,dc=priv" password = ************ basedn = "ou=users,dc=priv" filter = "(&(uid=%{stripped-user-name:-%{user-name}})(perugiagroups=radius-infn))" start_tls = no dictionary_mapping = ${raddbdir}/ldap.attrmap ldap_connections_number = 5 timeout = 4 timelimit = 3 net_timeout = 1 } Come già visto precedentemente, viene detto a RADIUS dove si trova il sever LDAP con i dati di autenticazione, quale parte della directory LDAP considerare e come filtrare i dati che ci riguardano. L accesso al backend è protetto da password ed avviene con le credenziali di amministratore. Il filtro (&(uid=%stripped-user-name:-%user-name) (PerugiaGroups=radius-infn)) fa selezionare solo l entry riguardante l utente che sta richiedendo l accesso; l attributo PerugiaGroups fa parte dello schema personalizzato che è stato creato e definisce a quale gruppo di utenti appartiene l utenza: in questo caso il server RADIUS risponde per gli utenti di INFN. Nella stessa directory ci sono anche gli utenti del Dipartimento di Fisica e gli studenti. Notare la clausola %Stripped-User-Name:... che permette di eliminare dal nome utente eventuali parti relative al dominio: gli utenti che si vogliono connettere alla rete tramite TRIP, possono specificare il loro nome utente con una stringa del tipo nome.cognome@pg.infn.it. La parte di dominio, quella che segue il viene usata per delegare l autenticazione ad un server autoritativo per quel dominio. Per i nostri utenti locali non c è bisogno del dominio, quindi questa clausola ci permette di eliminarlo quando si va a cercare l account all interno della directory LDAP. 16 famoso gestore di database, snello e disponibile con una licenza di software libero 73

74 clients.conf In questo file vengono elencati tutti i client che possono interrogare il server RADIUS: in questo contesto per client si intende quello che nel protocollo 802.1x viene chiamato authenticator e cioè i NAS (nel nostro caso gli Access Point) che vogliono autenticare i supplicant (i portatili) che tentano l accesso. Ecco un estratto del file, con una sintassi facilmente comprensibile: client { secret = ********** shortname = privgw nastype = other } client { secret = ************* shortname = radiushub } Per ogni client viene definito un nome e il segreto che dovrà essere fornito per essere riconosciuti e per poter sottomettere richieste al server RADIUS. In questo caso gli unici computer ai quali viene dato accesso sono il router di frontiera, nel quale è ospitato il Captive Portal ( ), e il server proxy RADIUS centrale di INFN dal quale si riceveranno le riguardanti utenti della Sezione di Perugia che tentano di autenticarsi su reti wireless di altre sezioni INFN. eap.conf Questo file imposta le opzioni EAP: configura i metodi di cifratura ammessi (nel nostro caso TTLS) e il tunnelling (EAP-TTLS). In questo file vanno inseriti i percorsi del certificato digitale del server e del certificato della CA (Certification Authority) per instaurare il tunnel cifrato EAP. eap { default_eap_type = ttls timer_expire = 60 ignore_unknown_eap_types = no cisco_accounting_username_bug = no # Tipi EAP supportati ## EAP-TLS tls { private_key_password = *************** private_key_file = ${raddbdir}/certs/radiuspg/key.pem certificate_file = ${raddbdir}/certs/radiuspg/radius.crt # Lista delle CA di cui ci fidiamo CA_file = ${raddbdir}/certs/infnca.pem dh_file = ${raddbdir}/certs/dh random_file = ${raddbdir}/certs/random fragment_size = 1024 check_cert_cn = %{User-Name} } ttls { 74

75 } # default_eap_type = md5 copy_request_to_tunnel = no use_tunneled_reply = no } Semplicemente viene impostato il metodo TTLS come tipo di cifratura di default per EAP che crea un tunnel cifrato nel quale eseguire le operazioni di autenticazione. proxy.conf In questo file vengono impostate le opzioni per la comunicazione con il server RADIUS proxy e si fanno conoscere al server tutti i realm, cioè i domini conosciuti. proxy server { synchronous = no retry_delay = 5 retry_count = 3 dead_time = 120 default_fallback = yes post_proxy_authorize = no } realm LOCAL { type = radius authhost = LOCAL accthost = LOCAL } realm pg.infn.it { type = radius authhost = LOCAL accthost = LOCAL } realm DEFAULT { type = radius authhost = radius.garr.net:1812 accthost = radius.garr.net:1813 secret = ************** nostrip } Oltre al dominio pg.infn.it vengono impostati i domini LOCAL, in cui ricadono tutti gli utenti che non specificano la parte di dominio, e DEFAULT, in cui ricadono tutti gli altri utenti. In questo modo il server riconosce gli utenti che non specificano parte di dominio e quelli che specificano nome.cognome@pg.infn.it come utenti propri e li autentica usando le informazioni contenute nella directory LDAP. L autenticazione degli altri viene delegata al server proxy radius.garr.net. Possiamo anche autenticare utenti che non appartengono ad INFN, ma che sono da esso riconosciuti e autorizzati ad entrare, con l uso del server proxy. 75

76 users Questo file contiene i profili degli utenti, che consistono nelle informazioni di autenticazione ed autorizzazione. DEFAULT EAP-Type == EAP-TLS, Auth-Type := Reject DEFAULT Auth-Type := LDAP DEFAULT Auth-Type = System Fall-Through = 1 Nel nostro caso vengono definiti i comportamenti di default del server per vari tipi di autenticazione. La seconda riga, in particolare, definisce il backend sul quale cercare le informazioni effettive di autenticazione ed autorizzazione; demanda quindi alla directory LDAP la memorizzazione dei dati 4.4 Configurazione directory LDAP L implementazione utilizzata per il server LDAP è OpenLDAP, versione Configurare una directory LDAP non è un compito banale, perché bisogna avere bene in testa l uso che se ne vuole fare, la quantità di dati che dovrà essere contenuta nella directory e la mole di traffico prevista. OpenLDAP è stato installato con lo strumento emerge 17 con il comando: emerge openldap L installazione dei binari non richiede quindi particolari opzioni Configurazione servizio slapd A questo punto va configurata la directory: il server LDAP si chiama slapd e va quindi modificato il file /etc/openldap/slapd.conf. Verrà commentata ogni sezione del file di configurazione. Inclusione schemi La prima parte include gli schemi riconosciuti dal server. In questo modo slapd conosce la struttura delle entry che conterrà la directory; se si tenta di inserire una entry che appartiene ad una objectclass 18 sconosciuta, LDAP negherà l inserimento. include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/dhcp.schema include /etc/openldap/schema/authldap.schema include /etc/openldap/schema/perugia.schema include /etc/openldap/schema/dlz.schema 17 comando che permette di interagire con Portage, il sistema di gestione di pacchetti della distribuzione GNU/Linux Gentoo 18 una objectclass definisce la classe di una entry, cioè gli attributi obbligatori e facoltativi che può contenere 76

77 Oltre agli schemi standard largamente utilizzati per memorizzare informazioni personali, sono stati aggiunti anche degli schemi che serviranno a memorizzare le configurazioni per i servizi di rete e per rispecchiare meglio le necessità del dipartimento e di INFN: dhcp.schema: contiene le classi per le entry riguardanti le configurazioni del server DHCP, l associazione MAC-address/IP-address, le configurazioni per le varie reti servite ed altre opzioni; dlz.schema: contiene le classi per il driver DLZ 19 del DNS, che riguarda la configurazione del server DNS; perugia.schema: schema personalizzato realizzato per alcune funzionalità interne; authldap.schema: contiene le classi per le entry degli account degli utenti. Schema PerugiaObject Andiamo ad analizzare più in dettaglio lo schema personalizzato, per comprenderne la necessità e i vantaggi: attributetype ( NAME PerugiaGroups EQUALITY caseignorematch SUBSTR caseignoresubstringsmatch SYNTAX {1024} ) attributetype ( NAME PerugiaOwner EQUALITY caseignorematch SUBSTR caseignoresubstringsmatch SYNTAX {1024} ) objectclass ( NAME PerugiaObject SUP top AUXILIARY MUST ( cn $ PerugiaGroups $ PerugiaOwner) ) L attributo PerugiaGroups permette di impostare l appartenenza di una entry ad un certo gruppo. Con questo gruppo, ad esempio, si riesce a discriminare, all interno del sottoalbero dei contatti degli utenti, quelli appartenenti al Dipartimento di Fisica, da quelli di INFN. L attributo è multivalore, infatti spesso una entry appartiene ad uno o più gruppi: può succedere, ad esempio, che un account debba poter essere utilizzato sia per accedere al proxy web, sia per l autenticazione wireless, sia per la posta; questo attributo viene letto da ciascuno di questi servizi e permette di inserirlo o meno nelle configurazioni di quel particolare servizio. L attributo PerugiaOwner permette di specificare la persona a cui è associata una certa entry: ad esempio per una entry del DHCP si può specificare chi è il possessore del computer con quell indirizzo. Altro utilizzo è quello di memorizzare il responsabile di una persona, ad esempio un ospite o un laureando. Questo attributo ci permette anche di fare delle ricerche, per sapere quali computer, quali account e in generale quali configurazioni riguardano una certa persona. 19 Dynamic Loadable Zones, si legga il paragrafo per maggiori informazioni 77

78 Se ad esempio vediamo sui log di un servizio un problema di un computer del quale conosciamo il MAC-address o l indirizzo IP, con questo sistema si può facilmente risalire al proprietario per avvertirlo. Opzioni del server Successivamente vanno configurate le opzioni del server che riguardano i certificati, per stabilire sessioni cifrate (TLS, Transport Layer Security), il formato di Hash delle password e altri parametri di sistema, come si vede sempre nel file slapd.conf : allow bind_v2 pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args loglevel 1 password-hash {md5} TLSCertificateFile /etc/ssl/ldap.pem TLSCertificateKeyFile /etc/openldap/ssl/ldap.pem TLSCACertificateFile /etc/ssl/ldap.pem Configurazione della directory In questa sezione viene configurata, finalmente, la directory, dicendo al server quale albero conterrà e come dovrà essere gestito. database bdb suffix "dc=priv" checkpoint rootdn "cn=manager,dc=priv" rootpw {SSHA}******************* directory /var/lib/openldap-data index objectclass eq index dhcphwaddress eq index dhcpclassdata eq replogfile /var/openldap/slapd.replog replica uri=ldap://authserver2.fisica.unipg.it:389 binddn="cn=manager,dc=priv" bindmethod=simple credentials="***********!" Andiamo ad analizzare le direttive una ad una: database bdb : questa opzione imposta il database di backend da utilizzare per memorizzare su disco le informazioni: OpenLDAP permette di usare come backend molti tipi di database, alcuni di questi sono riportati nella tabella 4.3 suffix dc=priv : questa opzione imposta la radice dell albero contenuto nella directory; è stato scelto il DN dc=priv, proprio ad identificare la rete come un dominio privato. Si noti che la radice è anch essa una entry della directory e per questo dovrà essere inserita nell albero checkpoint : questa opzione permette di impostare le scadenze per il salvataggio del checkpoint del database (usato dai DB transazionali per recuperare 78

79 Tipi bdb dnssrv hdb ldap ldbm meta monitor passwd perl shell sql Descrizione Database transazionale Berkeley Record SRV del sistema DNS Variante gerarchica di bdb Proxy LDAP Versione leggera di DBM Meta Directory Monitor Usa il passwd in modalità read-only Interfaccia Perl programmabile Programma esterno (via Shell) Interfaccia SQL programmabile Tabella 4.3: Backend disponibili per LDAP i dati modificati dalle transazioni in seguito ad un guasto); il primo valore indica il limite di dati in kilobyte modificati prima del quale eseguire il checkpoint, mentre il secondo indica i minuti di ritardo. In questo modo il checkpoint verrà effettuato ogni 32Kb inseriti nel database e comunque almeno una volta ogni 30 minuti (per avere una buona tolleranza) rootdn cn=manager,dc=priv rootpw SSHA************** : queste opzioni impostano il DN dell utente root e la sua password specificata tramite l Hash SSHA 20 ; questo utente potrà accedere alla directory e modificare qualunque entry. Si noti che l account dell utente è una entry della directory, che deve esistere nell albero directory /var/lib/openldap-data : questa opzione imposta il percorso nel quale saranno memorizzati i file della directory, nel formato specifico del backend database scelto. index objectclass eq index dhcphwaddress eq index dhcpclassdata eq : queste opzioni creano degli indici per velocizzare la ricerca dei dati secondo alcuni attributi; si è scelto di inserire la ricerca sul campo objectclass perché spesso questo viene inserito tra i parametri; inoltre i campi dhcphwaddress e dhcpclassdata permettono di velocizzare la ricerca dei dati di un computer in base al suo MAC-address. La clausola eq specifica che si creano indici per ricerche di uguaglianza e non di verosimiglianza o di similitudine (verrà velocizzata quindi la ricerca di un particolare MAC-address ma non, ad esempio, la ricerca dei MAC-address che contengono al loro interno la stringa c5 ) replogfile /var/openldap/slapd.replog : questa opzione specifica il file di replication log utilizzato dal demone slurpd per comunicare ai server secondari le modifiche avvenute sulla copia originale replica uri=ldap://authserver2.fisica.unipg.it:389 binddn=cn=manager,dc=priv bindmethod=simple credentials=******* : questa opzione specifica un server secondario sul quale eseguire la replica: questo server sarà una copia aggiornata 20 versione potenziata del Secure Hash Algorithm 79

80 del server originale, ma verrà utilizzata solo per la lettura; le modifiche verranno effettuate sempre sul master, che avrà cura, tramite questa direttiva, di avvertire gli altri server, delle modifiche Inserimento entry per lo startup Dopo aver configurato la directory LDAP va avviato il servizio. Prima di farlo però devono essere inserite le entry relative alla radice della directory, dc=priv, e all utente amministratore, cn=manager,dc=priv. Per inserirle basta creare un file LDIF con la specifica delle due entry (ad esempio in /home/simone/primo.ldif ): dn: dc=priv objectclass: dcobject objectclass: organization dc: priv o: Department of Physics - University of Perugia - INFN dn: cn=manager,dc=priv objectclass: organizationalrole cn: Manager Creato il file con queste righe, va inserito nella directory con il comando: ldapadd -h localhost -D "cn=manager,dc=priv" -W -f /home/simone/primo.ldif Da questo momento puèssere utilizzata appieno la directory LDAP. 4.5 Configurazione repliche LDAP I server di replica LDAP sono dei server slapd secondari il cui scopo è quello di replicare le informazioni del server centrale e di rispondere alle sole operazioni di interrogazione in sua vece. La replicazione della directory avviene tramite il server slurpd, che gira sul server centrale. Slurpd propaga le modifiche avvenute su un database LDAP verso altri server. Se slapd è configurato per tenere un log di replicazione, slurpd legge questo log e spedisce le modifiche ai server slave sempre con il protocollo LDAP, come mostrato in figura 4.9. Figura 4.9: Meccanismo di replica in LDAP Il funzionamento è molto semplice: 80

81 all avvio slurpd controlla se esiste il file di replica e se ci sono state modifiche che devono essere propagate ai server secondari (se non ci fossero, slurpd si mette in riposo e si riattiva ad intervalli regolari per controllare il file); se ci sono state modifiche, slurpd mette un lock sul file di replica, se ne fa una copia privata, rilascia il lock sul file originale e crea tante copie del suo processo, quanti sono i server slave su cui replicare; ogni processo creato si collega e si autentica sul server secondario e spedisce le modifiche. Configurazione slapd secondari Ecco una sezione del file di configurazione di slapd per un qualunque server secondario: database bdb suffix "dc=priv" checkpoint rootdn "cn=manager,dc=priv" rootpw {SSHA}******************** directory /var/lib/openldap-data index objectclass eq index dhcphwaddress eq index dhcpclassdata eq updatedn "cn=manager,dc=priv" La configurazione è simile a quella del server centrale, visto che i dati che devono essere memorizzati sono gli stessi. Si può comunque selezionare un backend diverso, visto che la consistenza dei dati deve essere mantenuta solo a livello semantico, non serve che i formati fisici di memorizzazione siano gli stessi tra i server. La clausola updatedn specifica l utente che può entrare dal server centrale per effettuare gli aggiornamenti necessari a mantenere la copia locale coerente. Nel server centrale si dovrà semplicemente avviare il demone slurpd, che leggerà la configurazione dal file /etc/openldap/slapd.conf, soprattutto la sezione riguardante le repliche: replogfile /var/openldap/slapd.replog replica uri=ldap://authserver2.fisica.unipg.it:389 binddn="cn=manager,dc=priv" bindmethod=simple credentials="**********" Qui vengono specificati il file di replica nel quale leggere le modifiche alla directory e l elenco dei server secondari, in questo caso uno solo, che si aggiorneranno da questa copia centrale. 4.6 Configurazione DNS e DHCP Completato il server LDAP, dobbiamo configurare le macchine su cui sono in esecuzione i servizi base della rete per leggere le proprie configurazione dalla directory LDAP. Si noti che alcuni degli strumenti usati sono molto nuovi e la documentazione disponibile su Internet è scarna, eccetto alcuni sporadici esempi. I servizi che vanno configurati con l accesso alla directory LDAP sono: 81

82 DHCP per la distribuzione dei parametri di accesso alla rete (indirizzo IP, maschera di rete, router IP, server DNS) DNS per la risoluzione dei nomi degli host sulla rete, che avrà come dominio.priv, per distinguerla dalle reti pubbliche; questo DNS servirà solo ai computer interni alla rete privata e permetterà l interrogazione dei DNS di Internet RADIUS per l autenticazione degli utenti della rete wireless su MAC-address (questa configurazione è stata analizzata nel paragrafo per l accesso su nome utente/password) Configurazione DHCP Il server DHCP che è stato utilizzato è il diffusissimo ISC 21 DHCP versione Purtroppo la versione base del software non supporta la lettura delle configurazioni su server LDAP, perciò è stato necessario applicare una patch e ricompilare il pacchetto. La configurazione di un server DHCP è abbastanza semplice, poiché basta elencare le reti disponibili e le associazioni MAC-address / indirizzo IP per ogni client che deve essere servito, assieme ad altri parametri che vanno passati ai client come maschera di rete, router IP, server DNS ecc. Nel nostro caso le configurazioni sono contenute nella directory LDAP, perciò il file di configurazione è molto scarno, in quanto contiene solamente i parametri necessari a collegarsi alla directory e a leggere le entry che interessano. Andiamo ad analizzare il file di configurazione dhcpd.conf : ldap-server "authserver.fisica.unipg.it"; ldap-port 636; ldap-username "cn=manager,dc=priv"; ldap-password "***********"; ldap-base-dn "ou=dhcp,dc=priv"; ldap-method dynamic; ldap-debug-file "/var/log/dhcp-ldap-startup.log"; ldap-ssl on; Il significato è spiegato dalla sintassi stessa: prima di tutto viene specificato l indirizzo del server LDAP e la porta sulla quale sta in ascolta cioè la porta 636 del server authserver.fisica.unipg.it deve essere specificato poi l utente col quale collegarsi alla directory, nel nostro caso è l amministratore con relativa password successivamente viene indicato il sottoalbero; sotto ou=dhcp,dc=priv si troveranno tutte le entry relative alla configurazione del DHCP la direttiva ldap-method ammette due valori: static forza il server a leggere le configurazioni da LDAP all avvio e in seguito il server LDAP non verrà più contattato; dinamic non vengono caricate le configurazioni all inizio, il server contatta LDAP per una certa entry solo quando ne ha bisogno (permette di modificare le configurazioni del DHCP a runtime senza doverlo riavviare ad ogni modifica); il file specificato nella direttiva ldap-debug-file permette di controllare la correttezza delle configurazioni lette da LDAP, infatti su questo file il server DHCP scrive le configurazioni base che legge allo startup dopo il primo avvio, nello stesso formato della configurazione stardard dhcpd.conf. l ultima direttiva attiva il tunnel cifrato SSL, per proteggere le comunicazioni tra server DHCP e LDAP. 21 Internet Systems Consortium, ente senza fini di lucro che sviluppa software e protocolli fondamentali per il funzionamento della rete Internet 82

83 Formato configurazioni DHCP nella directory Le configurazioni del DHCP vengono memorizzate nella directory nel sottoalbero - ou=dhcp,dc=priv. La struttura è rappresentata in figura Figura 4.10: Gerarchia delle configurazioni del DHCP su LDAP Come si vede nella figura, le configurazioni sono separate in due parti: la prima contiene i dati delle reti servite, con gli indirizzi IP dei client registrati; l altra contiene le eventuali opzioni del server. Le classi di oggetto delle entry che riguardano le configurazioni sono contenute nel file dhcp.schema: dhcpservice contiene le opzioni generali del servizio, come ad esempio la durata del lease time 22, il nome del server DHCP e se il server è autoritativo per le reti che serve dhcpsubnet contiene la specifica di una rete servita dal DHCP, il suo indirizzo, la maschera di rete ecc. dhcpoptions classe che permette di aggiungere espressività alle entry del DHCP: al suo interno si possono inserire le stesse direttive che vengono usate dal formato standard del file dhcpd.conf, come quelle per definire il router di default e i server DNS dhcphost contiene i dati riguardanti un computer, che sono l indirizzo Ethernet della scheda di rete (il MAC-address) e l indirizzo IP assegnato dhcpserver crea istanze del server DHCP e permette di far condividere la stessa configurazione a più server: nel nostro caso c è un solo server DHCP, perciò una sola entry per questa classe Andiamo ad analizzare un frammento della directory riguardante le configurazioni del DHCP: #Entry radice del sottoalbero del DHCP dn: ou=dhcp,dc=priv ou: dhcp objectclass: organizationalunit objectclass: top #Opzioni di default del servizio dn: cn=dhcp Config,ou=dhcp,dc=priv cn: DHCP Config objectclass: top objectclass: dhcpservice 22 il periodo di validità dei dati di configurazione, scaduto il quale il client dovrà rinnovare la richiesta al DHCP 83

84 dhcpprimarydn: cn=privgw,ou=dhcp,dc=priv dhcpstatements: ddns-update-style interim dhcpstatements: authoritative dhcpstatements: default-lease-time 3600 dhcpstatements: max-lease-time #Server che utilizzeranno queste configurazioni dn: cn=privgw,ou=dhcp,dc=priv cn: privgw objectclass: top objectclass: dhcpserver dhcpservicedn: cn=dhcp Config,ou=dhcp,dc=priv #Opzioni di default per la sottorete /16 dn: cn= ,cn=dhcp Config,ou=dhcp,dc=priv cn: objectclass: top objectclass: dhcpsubnet objectclass: dhcpoptions dhcpnetmask: 16 dhcpoption: domain-name-servers , , , , dhcpoption: routers #Computer della rete /16 dn: cn=pascarosa-pc0,cn= ,cn=dhcp Config,ou=dhcp,dc=priv objectclass: dhcphost objectclass: top objectclass: PerugiaObject dhcphwaddress: ethernet AA:BB:CC:DD:EE:FF dhcpstatements: fixed-address PerugiaGroups: dhcp PerugiaOwner: Simone Pascarosa cn: pascarosa-pc0 Da rilevare il valore del campo PerugiaOwner dell ultima entry del listato, che permette di specificare il proprietario del computer. Il valore contenuto corrisponde al CN (common name) dell utente, come registrato nella sezione dedicata agli utenti della directory LDAP; esiste infatti una entry con distinguished name cn=simone Pascarosa,ou=people,dc=priv. In questo modo si può risalire in modo veloce al proprietario di un certo computer Configurazione DNS Il server DNS utilizzato è ISC Bind, versione Anche questo server, come per il DHCP, ha bisogno di una patch per leggere le configurazioni da directory LDAP. Fortunatamente la distribuzione GNU/Linux Gentoo permette di selezionare, tra le varie opzioni di installazione, il supporto per gli schemi LDAP, perciò l installazione può essere eseguita con il solo comando: USE="dlz" emerge bind 84

85 Il progetto DLZ 23 (Dynamically Loadable Zones) ha creato dei moduli per il server Bind, che permettono di leggere le configurazioni da un qualunque database allo stesse modo già visto per DHCP su LDAP. Viene fornito come patch ai sorgenti di Bind. DLZ permette di leggere le configurazioni da database MySQL, PostgreSQL, Berkeley DB, ODBC e naturalmente LDAP. La configurazione usuale di un server DNS prevede la creazione di file di zona, che contengano le configurazioni per i domini serviti dal DNS e al loro interno vengono specificate le associazioni nome-a-dominio/indirizzo-ip ed altri nomi di servizio. La struttura che verrà realizzata a livello di domini è riportata nella figura Figura 4.11: Domini della rete privata Il file di configurazione principale del server dns è /etc/bind/named.conf : options { directory "/var/bind"; listen-on-v6 { none; }; listen-on { ; ; ; ; ; ; ; ; ; ; }; allow-transfer { none; }; // to allow only specific hosts to use the DNS server: allow-query { ; /8; }; pid-file "/var/run/named/named.pid"; }; Questa sezione imposta alcune opzioni generali del server: la directory dove sono contenute le zone statiche (quelle che non sono inserite in LDAP perché cambiano raramente, cioè i root server di Internet) gli indirizzi sui quali il server sta in ascolto: va specificata una interfaccia per ogni sottorete diversa (per ogni VLAN) le reti dalle quali accettare richieste Successivamente viene fatto l elenco delle zone statiche del DNS: zone "." IN { type hint; 23 si veda il sito di riferimento del software [9] 85

86 file "named.ca"; }; zone "localhost" IN { type master; file "pri/localhost.zone"; allow-update { none; }; notify no; }; zone "127.in-addr.arpa" IN { type master; file "pri/127.zone"; allow-update { none; }; notify no; }; Queste riguardano i root server di Internet, elencati appunto nel file /var/bind/named.ca, la zona locale e la zona locale inversa, quella che risolve i nomi per gli indirizzi del tipo 127.X.Y.Z. Infine va detto a Bind di caricare le zone e le configurazioni dei vari host da LDAP: dlz "ldap zone" { database "ldap 1 v3 simple {cn=manager,dc=priv} {*********} {X.Y.Z.K} ldap:///dlzzonename=%zone%,ou=dns,dc=priv???objectclass=dlzzone ldap:///dlzhostname=%record%,dlzzonename=%zone%,ou=dns,dc=priv? dlzttl,dlztype,dlzpreference,dlzdata,dlzipaddr? sub?(&(objectclass=dlzabstractrecord)(!(dlztype=soa))) ldap:///dlzhostname=@,dlzzonename=%zone%,ou=dns,o=bind-dlz? dlzttl,dlztype,dlzdata,dlzprimaryns,dlzadmin ,dlzserial, dlzrefresh,dlzretry,dlzexpire,dlzminimum?sub? (&(objectclass=dlzabstractrecord)(dlztype=soa)) ldap:///dlzzonename=%zone%,ou=dns,o=bind-dlz?dlzttl,dlztype, dlzhostname,dlzpreference,dlzdata,dlzipaddr,dlzprimaryns, dlzadmin ,dlzserial,dlzrefresh,dlzretry,dlzexpire, dlzminimum?sub?(&(objectclass=dlzabstractrecord)(!(dlztype=soa))) "; }; La configurazione LDAP del DNS, sebbene gerarchica, similmente a quella del DHCP, rispetta il vecchio meccanismo dei record delle configurazioni canoniche del DNS. Si avrà sempre la suddivisione in zone e all interno delle zone i record che descrivono i dati dei nomi registrati (per maggiori dettagli si rimanda al prossimo paragrafo). La parola chiave dlz apre la dichiarazione delle zone LDAP. Andiamo a vedere il significato delle righe contenute in questa sezione, notando che la specifica consiste nella sola direttiva database, seguita da una lunga serie di opzioni: la prima riga contiene la specifica del database utilizzato (LDAP), il numero di connessioni parallele che il driver mantiene con il server LDAP (1), la versione del protocollo LDAP (versione 3), le credenziali di accesso alla directory (le stesse incontrate anche nelle altre configurazioni) e l indirizzo IP del server LDAP; la seconda riga è la query LDAP che seleziona le entry delle zone DNS all interno della directory (infatti le zone si trovano sul sottoalbero con radice in ou=dns,dc=priv) che appartengono appunto alla classe dlzzone; 86

87 la riga successiva è la query che seleziona le entry che contengono le informazioni sui nomi a dominio: si noti che vengono scartate le entry riguardanti il record SOA 24 (Start Of Authority) in quanto questa query viene invocata proprio per fornire una risposta ad una interrogazione, mentre il record SOA è utilizzato per descrivere le impostazioni generali della zona; la quarta riga risponde alla richieste del record SOA e permette al server DNS di leggere le opzioni necessarie alla sincronizzazione delle zone; l ultima riga è di supporto alla precedente per l utilizzo del record SOA. Il server DNS quando riceve la richiesta per la risoluzione di un nome a dominio, inserisce il nome richiesto nel campo %record%, la parte di dominio nel campo %zone% e manda una interrogazione al server LDAP; se esiste l entry cercata, viene restituito tutto il sottoalbero ad essa associato, che contiene le configurazioni nel formato classico dei record DNS, con indirizzo IP e nome a dominio. Formato configurazioni DNS nella directory Le configurazioni del DHCP vengono memorizzate nella directory nel sottoalbero - ou=dns,dc=priv. La struttura è rappresentata in figura Figura 4.12: Gerarchia delle configurazioni del DNS su LDAP Come si vede nella figura, le configurazioni sono fortemente gerarchiche e vi si trovano: entry per la memorizzazione delle zone, che identificano la zona e si pongono come radice del sottoalbero contenente i dati di quella zona DNS (appartengono alla classe dlzzone) entry per la memorizzazione degli host: identificano un host e lo pongono come radice del sottoalbero contenente i dati di quell host (appartengono alla classe dlzhost); anche il SOA, identificato con il viene visto come un host; entry per la memorizzazione effettiva dei dati, relativi ai record della zona: contengono l indirizzo IP del computer e il suo nome a dominio, ma possono contenere in generale tutti i record tipici del DNS, quali il record A, CNAME e SOA, che corrispondono rispettivamente alle classi dlzarecord, dlzsoarecord e dlzcnamerecord. Come si vedrà nel listato successivo, la gerarchia proposta da DLZ permette di strutturare la directory in zone, host e record relativi agli host; ma un DNS contiene anche altri record, come quelli per definire degli alias (CNAME) che non si inseriscono bene in questa struttura. 24 record che specifica il server DNS che contiene le informazioni autoritative per un dominio, l dell amministratore, il numero seriale della zona e alcune tempificazioni per gli aggiornamenti delle zone 87

88 L artificio introdotto da DLZ è di considerare ogni cosa come un host (anche il record SOA e un nome CNAME) e al suo interno inserire l entry con la configurazione corretta. Vediamo appunto un estratto del sottoalbero del DNS nella directory LDAP: #Radice del sottoalbero del DNS dn: ou=dns,dc=priv ou: dns objectclass: organizationalunit objectclass: top #Radice della zona relativa al dominio wired.priv dn: dlzzonename=wired.priv,ou=dns,dc=priv dlzzonename: wired.priv objectclass: dlzzone #Radice della configurazione del SOA della zona wired.priv dn: dlzhostname=@,dlzzonename=wired.priv,ou=dns,dc=priv objectclass: dlzhost #Configurazione del SOA della zona wired.priv dn: dlzrecordid=1,dlzhostname=@,dlzzonename=wired.priv,ou=dns,dc=priv dlzadmin root.fisica.unipg.it. dlzexpire: dlzminimum: dlzprimaryns: privgw.priv. dlzrecordid: 1 dlzrefresh: 2800 dlzretry: 7200 dlzserial: dlzttl: 10 dlztype: soa objectclass: dlzsoarecord #Host della zona wired.priv dn: dlzhostname=pascarosa-pc0,dlzzonename=wired.priv,ou=dns,dc=priv objectclass: dlzhost objectclass: PerugiaObject PerugiaGroups: dns dlzhostname: pascarosa-pc0 PerugiaOwner: Simone Pascarosa cn: pascarosa-pc0 #Configurazione dell host pascarosa-pc0.wired.priv dn: dlzrecordid=12,dlzhostname=pascarosa-pc0, dlzzonename=wired.priv,ou=dns,dc=priv objectclass: dlzarecord objectclass: PerugiaObject PerugiaGroups: dns PerugiaOwner: Simone Pascarosa dlzhostname: pascarosa-pc0 dlztype: a dlzipaddr: dlzttl: 10 88

89 dlzrecordid: 12 cn: pascarosa-pc0 # [...] #Configurazione della zona infnweb.priv dn: dlzhostname=tino,dlzzonename=infnweb.priv,ou=dns,dc=priv PerugiaGroups: dns PerugiaOwner: Simone Pascarosa cn: privgw dlzhostname: tino objectclass: dlzhost objectclass: PerugiaObject #Host fittizio per il CNAME tino.infnweb.priv dn: dlzhostname=tino,dlzzonename=infnweb.priv,ou=dns,dc=priv PerugiaGroups: dns PerugiaOwner: Simone Pascarosa cn: privgw dlzhostname: tino objectclass: dlzhost objectclass: PerugiaObject #Configurazione dell alias tino.infnweb.priv #per l host privgw.infnweb.priv dn: dlzrecordid=66890,dlzhostname=tino, dlzzonename=infnweb.priv,ou=dns,dc=priv dlzdata: privgw dlzhostname: tino dlzrecordid: dlzttl: 10 dlztype: CNAME objectclass: dlzcnamerecord Si noti l ID del record, quello identificato dal campo dlzrecordid. Questo codice rappresenta la sequenza del record come se ci trovassimo all interno di un file sequenziale: tale concetto stride con quello delle directory in cui si predilige la gerarchia rispetto alla sequenza. Ebbene DLZ concilia i due concetti creando una gerarchia come mostrato nella figura 4.12, mantenendo la sequenzialità con il campo ID. Per assegnare gli ID abbiamo usato parte dell indirizzo IP per ricavare un identificatore unico all interno della zona: dato che le zone contengono indirizzi IP all interno della classe 10.X.0.0/16, utilizziamo gli ultimi due byte dell indirizzo per calcolare l ID. Siano a 3 e a 4 gli ultimi due byte dell indirizzo IP, allora ID = a a 4 Quindi ad esempio il record che riguarda l indirizzo IP avrà come ID = = 839. Il record 1 di ogni zona è riservato al SOA. I record di CNAME che quindi non hanno associato direttamente un indirizzo IP, avranno come ID un numero maggiore di 65536, limite massimo degli ID per record A (quelli che associano un nome ad un indirizzo IP). 89

90 4.7 Configurazione delle macchine virtuali Xen, come già descritto nel paragrafo 3.6.1, è un monitor di macchine virtuali (o hypervisor) che realizza paravirtualizzazione su architetture x86. Permette di eseguire più macchine virtuali sullo stesso sistema fisico con performance molto buone. Ecco alcune delle caratteristiche che contraddistinguono Xen dagli altri monitor di macchine virtuali: performance molto simili a quelle dell accesso diretto all hardware; migrazione live delle macchine virtuali a run-time tra host fisici diversi; supporto fino a 32 CPU virtuali per sistema ospite; supporto per le piattaforme x86 a 32 e 64 bit; Installazione di Xen L installazione di Xen su piattaforma Gentoo GNU/Linux è abbastanza lunga, soprattuto la fase di ricompilazione del kernel richiede spesso il riavvio del sistema se non si ha esperienza. Ecco in breve le fasi dell installazione: Compilazione dell hypervisor (Xen) Installazione delle patch di Xen per il kernel del dom0 Installazione degli strumenti di controllo (xm, xend...) Compilazione del kernel del dom0 per Xen Configurazione del bootloader per avviare Xen (l hypervisor) che poi avvierà il dom0 Preparazione del sistema Questa fase prepara il sistema alla compilazione dei sorgenti di Xen e delle librerie di sistema. Gentoo propone la ricompilazione di tutti i pacchetti che si vogliono installare, per personalizzare al massimo le caratteristiche di ogni applicazione. Questo comporta naturalmente una fase di tuning del proprio sistema e Xen è ancora più specifico sulle configurazioni da impostare per la sua installazione. Prima di tutto dobbiamo selezionare l ultimo profilo di sistema disponibile per Portage, il sistema di pacchettizzazione e compilazione di Gentoo, tramite il comando: eselect profile list Questo ci garantisce che nel sistema siano presenti le versioni più recenti della libreria C standard (glibc) con NPTL 25. In seguito dobbiamo correggere un problema riguardante la libreria glibc: infatti la libreria TLS di glibc è implementata in un modo che va in conflitto con il meccanismo con cui Xen usa i registri di segmento per superare un limite delle piattaforme x86 a 32 bit, che causa una perdita di performance su certe operazioni di Xen, stimabile intorno al 50% in meno su applicazioni multi-threaded. Naturalmente il problema non si presenta su architetture a 64 bit, sulle quali possiamo saltare questo passaggio. Per risolvere il problema dobbiamo aggiungere il flag di compilazione -mno-tlsdirect-seg-refs al sistema in /etc/make.conf tra i flag di compilazione C: 25 Native POSIX Thread Library (NPTL) è una componente software che abilita il kernel Linux a far girare in modo efficiente programmi scritti usando la libreria per thread POSIX. 90

91 CFLAGS="-O2 -march=i686 -pipe -mno-tls-direct-seg-refs" CXXFLAGS="${CFLAGS}" CHOST="i686-pc-linux-gnu" GENTOO_MIRRORS=" ftp://mirror.ing.unibo.it/gentoo" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" MAKEOPTS="-j3" FEATURES="parallel-fetch ccache" USE="nptlonly screen ncurses" A questo punto sarebbe necessaria la ricompilazione di tutti i pacchetti di sistema per compilarli con il flag -mno-tls-direct-seg-refs; su Gentoo possiamo eseguire il comando: emerge -evat world Compilazione Hypervisor e strumenti di gestione In questa fase dobbiamo installare l hypervisor e le applicazioni di gestione delle macchine virtuali, con il comando: emerge -av app-emulation/xen app-emulation/xen-tools L hypervisor consiste in un binario (/boot/xen.gz) che verrà avviato dal boot loader prima del kernel del dom0. Compilazione del kernel del dom0 In questa fase dobbiamo scaricare un kernel per il dom0 con le patch necessarie per Xen; si può installare il pacchetto relativo con il comando: emerge sys-kernel/xen-sources Installate queste patches vanno mantenute inalterate le opzioni del il kernel in funzione, ma devono essere aggiunte alcune caratteristiche che impostino, ad esempio, il funzionamento dei driver come backend driver. Le opzioni più importanti da includere nel kernel, in modo statico e non come moduli, sono: Enable Xen compatible kernel: abilita il kernel all uso delle API Xen Privileged Guest (domain 0): dice al kernel di funzionare come dom0 Block-device backend driver: fa funzionare i driver dei dispositivi a blocchi come backend driver per i domu Network-device backend driver: come il precedente ma per i dispositivi di rete Avvio del nuovo kernel A questo punto va configurato il bootloader 26 perché faccia partire il sistema con il nuovo kernel del dom0. Il nostro sistema usa Grub come bootloader. Per farlo partire con il kernel appena creato basta aggiungere queste righe al file di configurazione /boot/grub/grub.conf : 26 il software che si occupa di inizializzare il sistema ed avviare il sistema operativo, dopo il BIOS 91

92 title Xen 3.0 / Linux root (hd0,0) kernel /xen.gz dom0_mem=98m module /vmlinuz xen0 root=/dev/sda1 Il kernel che deve essere avviato non è quello appena creato, ma è l hypervisor di Xen che si sostituisce al kernel del dom0 nelle fasi di inizializzazione dell ambiente per Xen. L hypervisor procederà poi ad avviare il kernel del dom0 specificato nella direttiva module. Terminata questa fase, va soltanto riavviato il sistema Configurazione dei domu Dopo il riavvio del sistema, bisogna entrare nel dom0 di Xen, dal quale si possono gestire tutte le macchine virtuali. Per creare una macchina virtuale bisogna: compilare il suo kernel preparare il filesystem configurare la macchina virtuale Compilazione del kernel dei domu I kernel dei domu devono contenere i frontend driver di Xen, visto che non interagiscono direttamente con l hardware. Si può usare la stessa configurazione del dom0, cambiando solo le opzioni specifiche di Xen e in particolare: Enable Xen compatible kernel: abilita il kernel all uso delle API Xen Block-device frontend driver: fa funzionare i driver dei dispositivi a blocchi come frontend driver, attraverso le API di Xen Network-device frontend driver: come il precedente ma per i dispositivi di rete Preparazione del filesystem Ora che abbiamo un kernel, va creata un immagine per il filesystem del sistema operativo del domu. Fortunatamente esistono su Internet dei siti 27 che mettono a disposizione dei file contenenti l immagine di un filesystem con installata una distribuzione GNU/Linux funzionante, nel nostro caso Debian GNU/Linux. Questo file verrà usato come filesystem di riferimento per il domu che andiamo a creare. Configurazione della macchina virtuale La configurazione di un domu va scritta su un file che verrà usato dal comando xm. Ecco il file di configurazione della macchina virtuale: kernel = "/boot/vmlinuz xenu" memory = 128 name = "log" vif = [ bridge=xenbr0 ] disk = [ phy:/dev/evms/log,sda1,w, file:/xen/debian.swap,sda2,w ] root = "/dev/sda1 ro" La sintassi è molto comprensibile. Le opzioni da configurare sono: kernel: il percorso del kernel da usare per questo domu; 27 noi abbiamo scelto 92

93 memory: il quantitativo di memoria RAM da riservare per la macchina virtuale; name: il nome identificativo; vif: l interfaccia di rete da esportare al domu come eth0, in questo caso viene usato un bridge 28 ; disk: la specifica dei filesystem esportati alla macchina virtual, nel formato percorso filesystem, nome filesystem nel domu, diritti di accesso ; si noti che come percorso del filesystem si può specificare una partizione disco reale, una partizione logica (come nel primo caso, con EVMS) o un file su disco (come nel secondo caso come partizione di swap); root: il filesystem da avviare come root filesystem per il domu (uno di quelli appena definiti). Terminata la configurazione della macchina virtuale, non resta che avviarla con il comando: xm create /xen/virtual1.conf -c Questo comando manda in esecuzione la macchina virtuale descritta nel file /xen/virtual1.conf, che contiene la configurazione riportata in precedenza. L opzione -c attiva una console sulla macchina virtuale e permette di seguire le fasi di boot, di fare login e di eseguire comandi su di essa. A questo punto basta configurare l interfaccia di rete della nuova macchina ed installare il software necessario ai servizi che deve ospitare. 4.8 Configurazione router e firewall Il router di frontiera costituisce uno dei punti più critici della rete, perché deve provvedere sia allo smistamento del traffico della rete interna verso Internet (tramite due link separati del Dipartimento di Fisica e di INFN, come mostrato nella figura 1.1) che alla gestione dell autenticazione degli utenti delle reti wireless con il Captive Portal, nonché al filtraggio dei pacchetti (firewalling). Il router è stato messo in forte sicurezza per evitare intrusioni di malintenzionati che potrebbero manometterlo e compromettere di conseguenza tutto il funzionamento della rete. È stato utilizzato un server con una sola interfaccia di rete fisica, configurata per avere una interfaccia di rete logica per ogni rete VLAN definita nella struttura. In questo modo si riesce a simulare un router professionale con diverse interfacce di rete. Il computer in questione è privgw.priv. La struttura logica dei collegamenti è mostrata in figura 4.13 (in verde sono rappresentate le reti di Fisica, in blu quelle di INFN). Per implementare le politiche di firewalling e di routing verranno usati rispettivamente iptables e iproute2. All interno della configurazione del firewall viene usato il supporto di iptables al tracciamento dei pacchetti appartenenti ad una stessa connessione: quando arriva il pacchetto iniziale di inizio di una nuova connessione (indicato dal flag NEW dell intestazione TCP) si decide se accettare o meno quel traffico. Successivamente tutti i pacchetti relativi a quella connessione subiranno lo stesso destino del pacchetto iniziale; in sostanza, se il firewall decide di far passare il pacchetto iniziale di una connessione, tutto lo stream di dati appartenente a quella connessione viene fatto passare. Ecco la configurazione: 28 un ponte virtuale, che mette in comunicazione l interfaccia virtuale collegata al domu con l interfaccia di rete reale sul dom0 93

94 Figura 4.13: Router di frontiera con le reti servite /sbin/iptables -t filter -N keep_state /sbin/iptables -t filter -F keep_state /sbin/iptables -t filter -A keep_state -m state --state INVALID -j DROP /sbin/iptables -t filter -A keep_state -m state --state ESTABLISHED,RELATED -j ACCEPT Queste istruzioni definiscono una catena, keep state, che accetta i pacchetti relativi ad una connessione già iniziata. In questo modo, nelle altre regole del firewall dovremo preoccuparci di far passare solo il pacchetto iniziale di una connessione. Passaggio di traffico tra le reti Come detto più volte, le reti VLAN della nostra struttura non hanno comunicazione diretta tra loro. Il router ha delle regole che impediscono il passaggio del traffico tra reti diverse, ma accetta quello che deve transitare verso Internet. Il DHCP e il DNS sono implementati su questo stesso server: per questo motivo i nodi delle reti nascoste non hanno necessità di contattare altri computer per avere accesso alla rete. I server RADIUS ed LDAP, che devono essere trasparenti agli utenti, hanno un interfaccia di rete sulla rete VLAN di controllo, quella con VLAN ID 1, alla quale non si può associare nessun client. Questa rete permette agli amministratori di creare una sorta di limite invalicabile al quale nessun computer può accedere: l unico nodo che ha il permesso di interrogare i servizi su questa rete, oltre alle postazioni degli amministratori, è proprio il router privgw.priv che implementa i metodi di autenticazione verso gli utenti e che legge dal server LDAP le configurazioni di DHCP e DNS. All interno di iptables quindi vanno specificate alcune regole: Accetta le connessioni DNS in ingresso: /sbin/iptables -t filter -A INPUT -p udp -m state \ --state NEW -d dport 53 -j ACCEPT Accetta le connessioni DHCP in ingresso: /sbin/iptables -t filter -A INPUT -p udp -m state \ --state NEW -s /8 --dport 67 -j ACCEPT /sbin/iptables -t filter -A INPUT -p udp -m state \ --state NEW -s /8 --dport 68 -j ACCEPT 94

95 In questa sezione non verrà riportata la configurazione del firewall riguardante il Captive Portal, perché questa è stata già analizzata nel paragrafo Passaggio del traffico verso Internet Il traffico verso Internet ha la caratteristica di avere come indirizzo IP di destinazione un indirizzo non appartente alla rete Prima di tutto va aggiunta la catena keep state per il tracciamento delle connessioni alla tabella di forward di iptables, quella che riguarda i pacchetti in trasito nel computer, dicendo al firewall di far passare il traffico in transito: /sbin/iptables -t filter -P FORWARD ACCEPT /sbin/iptables -t filter -F FORWARD /sbin/iptables -t filter -A FORWARD -j keep_state /sbin/iptables -A FORWARD -j LOG L ultima istruzione memorizza nel log la registrazione del traffico in transito sulla rete. Network Address Translation Prima di far passare il traffico dei nodi della rete nascosta su Internet, si deve provvedere a modificare il loro indirizzo IP: non si può spedire sul Internet un pacchetto con un indirizzo come , perché non si riceverà risposta, visto che la classe è riservata alle reti private. Per questo vanno tradotti gli indirizzi dei client con l indirizzo dell interfaccia pubblica su Internet del router. In questo caso ci sono due interfacce di rete pubbliche su Internet e vanno specificate le traduzioni degli indirizzi per entrambe: /sbin/iptables -t nat -A POSTROUTING -s /8 \ -d! /8 -o eth0 -j SNAT --to-source /sbin/iptables -t nat -A POSTROUTING -s /8 \ -d! /8 -o eth1 -j SNAT --to-source Queste due regole ci dicono che a tutti i pacchetti che devono essere trasmessi dalla scheda di rete eth0, quella relativa alla rete del Dipartimento di Fisica, dovrà essere modificato l indirizzo del mittente in ; ai pacchetti che devono essere per la scheda eth1, quella sulla rete di INFN, dovrà essere modificato l indirizzo del mittente in Iproute per smistare il traffico Grazie allo strumento iproute 29, sempre incluso in GNU/Linux, si possono definire delle tabelle di routing per smistare il traffico verso le due reti di Fisica e di INFN. Prima di tutto vanno definite le tabelle di routing: ip route add table 3 default via ip route add table 4 default via ip route add table 5 default nexthop via dev eth1 \ weight 1 nexthop via dev eth0 weight 1 29 una collezione di strumenti molto potenti per il controllo del traffico delle reti TCP/IP per il kernel Linux 95

96 La tabella contraddistinta dal numero 3 riguarda la rete di INFN, che ha come router di default , mentre la tabella 4 riguarda la rete del Dipartimento di Fisica con router La tabella 5 permette di bilanciare il carico tra le due reti e sommare quindi le velocità dei due link: in questo modo si potrebbe decidere di mandare alcuni flussi di traffico su entrambi i link per massimizzare la velocità di comunicazione, evitando di intasare uno dei due collegamenti (questa funzione è stata prevista per eventualità future). Con queste tabelle, si può decidere, per ogni rete nascosta definita nella struttura, verso quale delle due reti deve passare il traffico per andare su Internet. ip rule add from /17 table 4 ip rule add from /17 table 3 ip rule add from /16 table 3 ip rule add from /16 table 4 ip rule add from /16 table 3 ip rule add from /16 table 4 ip rule add from /16 table 4 ip rule add from /17 table 4 ip rule add from /17 table 3 ip rule add from /16 table 4 Questi comandi definiscono la tabella di routing da usare per ogni rete, il che definisce di conseguenza l interfaccia di rete dalla quale il pacchetto sarà trasmesso verso Internet (si veda l immagine 4.13 per la struttura dei link). 4.9 Uso di interfacce grafiche per la gestione del sistema La centralizzazione delle configurazioni sulla directory LDAP permette di interagire in modo veloce ed integrato con tutti i servizi critici della rete. La forza della struttura risiede principalmente nell integrazione dei servizi e nelle relazioni che si riescono a stabilire all interno della directory tra le varie entry. Per manipolare questa mole di dati, si è resa necessaria la ricerca di strumenti, anche grafici, che permettessero di inserire, cancellare e modificare i dati relativi a tutti i servizi di rete. phpldapadmin La ricerca è approdata sul software phpldapadmin, un interfaccia web scritta in linguaggio PHP 30 che interagisce con il server LDAP. L interfaccia di phpldapadmin facilita la manipolazione dei dati, grazie alla possibilità di visualizzare i dati in modo gerarchico e di poter modificare ogni singolo valore con delle schermate intuitive ed immediate. Il collegamento dell interfaccia web alla directory LDAP è molto facile e richiede la semplice modifica di un file di configurazione. Vediamo alcune schermate per spiegare il funzionamento dell interfaccia. Nell immagine 4.14 viene visualizzata l interfaccia del programma phpldapadmin all interno del browser, dopo il login. 30 PHP Hypertext Preprocessor, un linguaggio di scripting per il web molto versatile, simile come sintassi al linguaggio Java 96

97 Figura 4.14: Schermata principale di phpldapadmin Figura 4.15: Gerarchia di una directory LDAP con phpldapadmin In dettaglio, nella figura 4.15 si vede la strutturazione della directory in sottoalberi: si possono riconoscere le sezioni relative al DNS, al DHCP, alle informazioni sui MAC address registrati (ou=radiusmac) e via di seguito. 97

98 Figura 4.16: Definizione degli attributi di una entry con phpldapadmin Nell immagine 4.16 si vede come si può modificare la homedirectory dell utente o altre informazioni che lo riguardano semplicemente inserendo il nuovo valore all interno dei campi della pagina HTML 31. Con questa interfaccia si possono quindi gestire tutte le entry della directory, creare nuovi sottoalberi e gestire i backup. 31 HyperText Markup Language, linguaggio di marcatura per ipertesti largamente usato nel World Wide Web 98

Laboratorio di reti Relazione N 5 Gruppo 9. Vettorato Mattia Mesin Alberto

Laboratorio di reti Relazione N 5 Gruppo 9. Vettorato Mattia Mesin Alberto Laboratorio di reti Relazione N 5 Gruppo 9 Vettorato Mattia Mesin Alberto Virtual LAN Che cosa è una VLAN? Il termine Virtual LAN indica una serie di tecniche atte a separare un dominio di broadcast, di

Dettagli

Cos'è una vlan. Da Wikipedia: Una LAN virtuale, comunemente

Cos'è una vlan. Da Wikipedia: Una LAN virtuale, comunemente Cos'è una vlan Da Wikipedia: Una LAN virtuale, comunemente detta VLAN, è un gruppo di host che comunicano tra di loro come se fossero collegati allo stesso cablaggio, a prescindere dalla loro posizione

Dettagli

Verifica scritta di Sistemi e Reti Classe 5Di 26.11.2015

Verifica scritta di Sistemi e Reti Classe 5Di 26.11.2015 Verifica scritta di Sistemi e Reti Classe 5Di 26.11.2015 Una azienda specializzata nella fornitura di servizi Internet quali hosting, housing, email, file server, in pratica un ISP (Internet Service Provider)

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

PREMESSA GENERALE Abbiamo deciso di svolgere, per sommi capi, tutti gli argomenti che si potevano affrontare rispondendo alla traccia proposta.

PREMESSA GENERALE Abbiamo deciso di svolgere, per sommi capi, tutti gli argomenti che si potevano affrontare rispondendo alla traccia proposta. ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE PROGETTO ABACUS INDIRIZZO INFORMATICA TEMA DI SISTEMI DI ELABORAZIONE E TRASMISSIONE DELLE INFORMAZIONI PREMESSA GENERALE Abbiamo deciso

Dettagli

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella Corso di Sistemi di Elaborazione delle informazioni Reti di calcolatori 3 a lezione Francesco Fontanella Il pacchetto IP Il preambolo (header) IP è fatto in questo modo: Gli Indirizzi IP Ogni host e router

Dettagli

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI SIMULAZIONE PROVA SCRITTA ESAME DI STATO PER LA DISCIPLINA di SISTEMI L assessorato al turismo di una provincia di medie dimensioni vuole informatizzare la gestione delle prenotazioni degli alberghi associati.

Dettagli

VLAN+LDAP+...+XEN = Rete Dipartimentale

VLAN+LDAP+...+XEN = Rete Dipartimentale VLAN+LDAP+...+XEN = Rete Dipartimentale Uniamo varie tecnologie per creare una infrastruttura di rete,, facilmente controllabile ed estendibile. Useremo VLAN ( 802.1q), LDAP, XEN, Certificati digitali

Dettagli

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8)

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8) RETI DI COMPUTER Reti Geografiche (Sez. 9.8) Riepilogo Reti lez precedente reti locali o LAN (Local Area Network): connette fisicamente apparecchiature su brevi distanze Una LAN è solitamente interna a

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Wi-Fi, la libertà di navigare in rete senza fili. Introduzione.

Wi-Fi, la libertà di navigare in rete senza fili. Introduzione. Wi-Fi, la libertà di navigare in rete senza fili. Introduzione. L evoluzione delle tecnologie informatiche negli ultimi decenni ha contribuito in maniera decisiva allo sviluppo del mondo aziendale, facendo

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Reti di Calcolatori. Il software

Reti di Calcolatori. Il software Reti di Calcolatori Il software Lo Stack Protocollare Application: supporta le applicazioni che usano la rete; Transport: trasferimento dati tra host; Network: instradamento (routing) di datagram dalla

Dettagli

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet L' accesso sicuro da e verso Internet L' accesso ad Internet è ormai una necessità quotidiana per la maggior parte delle imprese. Per garantire la miglior sicurezza mettiamo in opera Firewall sul traffico

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

Distribuzione internet in alberghi, internet cafè o aziende che vogliono creare una rete "ospite"

Distribuzione internet in alberghi, internet cafè o aziende che vogliono creare una rete ospite Distribuzione internet in alberghi, internet cafè o aziende che vogliono creare una rete "ospite" I dispositivi utilizzati si occupano di redistribuire la connettività nelle camere o in altri spazi prestabiliti

Dettagli

Progetto Virtualizzazione

Progetto Virtualizzazione Progetto Virtualizzazione Dipartimento e Facoltà di Scienze Statistiche Orazio Battaglia 25/11/2011 Dipartimento di Scienze Statiche «Paolo Fortunati», Università di Bologna, via Belle Arti 41 1 La nascita

Dettagli

Linux User Group Cremona CORSO RETI

Linux User Group Cremona CORSO RETI Linux User Group Cremona CORSO RETI Cos'è una rete informatica Una rete di calcolatori, in informatica e telecomunicazioni, è un sistema o un particolare tipo di rete di telecomunicazioni che permette

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

Schema Tipologia a Stella

Schema Tipologia a Stella Cos'e' esattamente una rete! Una LAN (Local Area Network) è un insieme di dispositivi informatici collegati fra loro, che utilizzano un linguaggio che consente a ciascuno di essi di scambiare informazioni.

Dettagli

LE POSSIBILITA' DI ACCESSO DA REMOTO ALLE RETI DI CALCOLATORI

LE POSSIBILITA' DI ACCESSO DA REMOTO ALLE RETI DI CALCOLATORI VPN: VNC Virtual Network Computing VPN: RETI PRIVATE VIRTUALI LE POSSIBILITA' DI ACCESSO DA REMOTO ALLE RETI DI CALCOLATORI 14 marzo 2006 Fondazione Ordine degli Ingegneri di Milano Corso Venezia Relatore

Dettagli

Apparecchiature di Rete

Apparecchiature di Rete All interno delle reti troviamo delle apparecchiature, utilizzate per gestire le trasmissioni tra gli elementi della rete e per creare interconnessioni tra reti differenti Livello 7 Livello 6 Livello 5

Dettagli

Introduzione alle VLAN Autore: Roberto Bandiera 21 gennaio 2015

Introduzione alle VLAN Autore: Roberto Bandiera 21 gennaio 2015 Introduzione alle VLAN Autore: Roberto Bandiera 21 gennaio 2015 Definizione Mentre una LAN è una rete locale costituita da un certo numero di pc connessi ad uno switch, una VLAN è una LAN VIRTUALE (Virtual

Dettagli

Vlan Relazione di Sistemi e Reti Cenni teorici

Vlan Relazione di Sistemi e Reti Cenni teorici Cosa sono le Vlan? Vlan Relazione di Sistemi e Reti Cenni teorici Le Vlan sono un tipo di rete particolare che permettono di creare tante reti logiche a partire da una singola rete fisica. Questo significa

Dettagli

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti 20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1

Dettagli

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti Finalità delle Reti di calcolatori Le Reti Informatiche Un calcolatore isolato, anche se multiutente ha a disposizione solo le risorse locali potrà elaborare unicamente i dati dei propri utenti 2 / 27

Dettagli

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP Un indirizzo IP è composto da 32 bit. Generalmente, per convenienza, è presentato in decimale: 4 ottetti (bytes) separati da un punto. Ogni rete fisica

Dettagli

Simulazione seconda prova Sistemi e reti Marzo 2016

Simulazione seconda prova Sistemi e reti Marzo 2016 Ipotesi progettuali Studio medico situato in un appartamento senza reti pre-esistenti con possibilità di cablaggio a muro in canalina. Le dimensioni in gioco possono far prevedere cavi non troppo lunghi

Dettagli

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati.

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati. LA RETE INFORMATICA NELL AZIENDA Capire i benefici di una rete informatica nella propria attività. I componenti di una rete I dispositivi utilizzati I servizi offerti LA RETE INFORMATICA NELL AZIENDA Copyright

Dettagli

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica Installatore LAN Progetto per le classi V del corso di Informatica Active Directory 26/02/08 Installatore LAN - Prof.Marco Marchisotti 1 Agli albori delle reti...... nelle prime LAN era facile individuare

Dettagli

Dispositivi di rete. Ripetitori. Hub

Dispositivi di rete. Ripetitori. Hub Ripetitori Dispositivi di rete I ripetitori aumentano la distanza che può essere ragginta dai dispositivi Ethernet per trasmettere dati l'uno rispetto all'altro. Le distanze coperte dai cavi sono limitate

Dettagli

COMPLESSO SCOLASTICO INTERNAZIONALE GIOVANNI PAOLO II. Pianificazione di reti IP (subnetting)

COMPLESSO SCOLASTICO INTERNAZIONALE GIOVANNI PAOLO II. Pianificazione di reti IP (subnetting) Pianificazione di reti IP (subnetting) Avendo una rete complessa possiamo dividerla in sottoreti logiche, collegandole con dei router. Questa operazione di segmentazione prende il nome di subnetting, ed

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

IT Cloud Service. Semplice - accessibile - sicuro - economico

IT Cloud Service. Semplice - accessibile - sicuro - economico IT Cloud Service Semplice - accessibile - sicuro - economico IT Cloud Service - Cos è IT Cloud Service è una soluzione flessibile per la sincronizzazione dei file e la loro condivisione. Sia che si utilizzi

Dettagli

Reti di calcolatori ed indirizzi IP

Reti di calcolatori ed indirizzi IP ITIS TASSINARI, 1D Reti di calcolatori ed indirizzi IP Prof. Pasquale De Michele 5 aprile 2014 1 INTRODUZIONE ALLE RETI DI CALCOLATORI Cosa è una rete di calcolatori? Il modo migliore per capire di cosa

Dettagli

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I La VPN con il FRITZ!Box Parte I 1 Introduzione In questa mini-guida illustreremo come realizzare un collegamento tramite VPN(Virtual Private Network) tra due FRITZ!Box, in modo da mettere in comunicazioni

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

SISTEMA INFORMATIVO AGRICOLO REGIONALE AGGIORNAMENTO PROGETTO OPERATIVO PER LA REALIZZAZIONE DELLA RETE DI COMUNICAZIONE

SISTEMA INFORMATIVO AGRICOLO REGIONALE AGGIORNAMENTO PROGETTO OPERATIVO PER LA REALIZZAZIONE DELLA RETE DI COMUNICAZIONE S.I.A.R. SISTEMA INFORMATIVO AGRICOLO REGIONALE AGGIORNAMENTO PROGETTO OPERATIVO PER LA REALIZZAZIONE DELLA RETE DI COMUNICAZIONE - Luglio 2005 - --- Servizio Affari Generali e Amministrativi, Sistema

Dettagli

Dipartimento di Scienze Applicate

Dipartimento di Scienze Applicate DIPARTIMENTO DI SCIENZE APPLICATE Università degli Studi di Napoli Parthenope Centro Direzionale di Napoli Isola C4 80143 Napoli dsa@uniparthenope.it P. IVA 01877320638 Dipartimento di Scienze Applicate.

Dettagli

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Tecnologie informatiche ACCESSO REMOTO CON WINDOWS Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Un esempio di tale servizio

Dettagli

Reti LAN. IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it

Reti LAN. IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it Reti LAN IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it Le LAN Una LAN è un sistema di comunicazione che permette ad apparecchiature indipendenti di comunicare fra loro entro un area limitata

Dettagli

I COMPONENTI DI UNA RETE

I COMPONENTI DI UNA RETE I COMPONENTI DI UNA RETE LE SCHEDE DI RETE (O INTERFACCE 'NIC') Tutti I PC, per poterli utilizzare in rete, devono essere dotati di schede di rete (NIC). Alcuni PC sono dotati di NIC preinstallate. Nello

Dettagli

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP Il livello 3 della pila ISO/OSI Il protocollo IP e il protocollo ICMP IL LIVELLO 3 - il protocollo IP Il livello 3 della pila ISO/OSI che ci interessa è l Internet Protocol, o più brevemente IP. Visto

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è Protocollo TCP/IP e indirizzi IP Il protocollo TCP/IP è alla base dei sistemi di trasmissione dati impiegati sulle reti locali e su Internet. Nato nel Gennaio 1983 negli Stati Uniti come sistema di comunicazione

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

PROVINCIA DI LECCE SERVIZI INFORMATICI

PROVINCIA DI LECCE SERVIZI INFORMATICI PROVINCIA DI LECCE SERVIZI INFORMATICI NORME PER L UTILIZZO DELLE RISORSE INFORMATICHE E TELEMATICHE Assessore: Cosimo Durante Responsabile del Servizio: Luigi Tundo Ottobre 2001 1 INDICE DEI CONTENUTI

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Infrastruttura wireless d Ateneo (UNITUS-WiFi)

Infrastruttura wireless d Ateneo (UNITUS-WiFi) Infrastruttura wireless d Ateneo (UNITUS-WiFi) INFORMAZIONI GENERALI...1 DESCRIZIONE DELLE RETI WIRELESS...1 COME ACCEDERE ALLA RETE WIRELESS...3 Configurazione scheda di rete...3 Accesso alla rete studenti...5

Dettagli

System Center Virtual Machine Manager Library Management

System Center Virtual Machine Manager Library Management System Center Virtual Machine Manager Library Management di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione La Server Virtualization è la possibilità di consolidare diversi server fisici in un unico

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

Dettagli

La VPN con il FRITZ!Box Parte II. La VPN con il FRITZ!Box Parte II

La VPN con il FRITZ!Box Parte II. La VPN con il FRITZ!Box Parte II La VPN con il FRITZ!Box Parte II 1 Introduzione In questa mini-guida mostreremo com è possibile creare un collegamento su Internet tramite VPN(Virtual Private Network) tra il FRITZ!Box di casa o dell ufficio

Dettagli

158.110.1.3 158.110.1.2 SWITCH. 100 Mb/s (UTP cat. 5E) 158.110.1.1 158.110.3.3 158.110.3.2. 10 Mb/s SWITCH. (UTP cat. 5E) 100 Mb/s. (UTP cat.

158.110.1.3 158.110.1.2 SWITCH. 100 Mb/s (UTP cat. 5E) 158.110.1.1 158.110.3.3 158.110.3.2. 10 Mb/s SWITCH. (UTP cat. 5E) 100 Mb/s. (UTP cat. Università degli Studi di Udine Insegnamento: Reti di Calcolatori I Docente: Pier Luca Montessoro DOMANDE DI RIEPILOGO SU: - Livello network 1. Si deve suddividere la rete 173.19.0.0 in 510 subnet. Qual

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Reti e Internet: introduzione

Reti e Internet: introduzione Facoltà di Medicina - Corso di Laurea in Logopedia Corso di Informatica III anno Prof. Crescenzio Gallo Reti e Internet: introduzione c.gallo@unifg.it Reti e Internet: argomenti Tipologie di reti Rete

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Avviso di mancata consegna L avviso, emesso dal sistema, per indicare l anomalia

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Le Reti di Computer 2 Introduzione Una rete è un complesso insieme di sistemi di elaborazione

Dettagli

Esercizio progettazione rete ex-novo

Esercizio progettazione rete ex-novo Esercizio progettazione rete ex-novo Si vuole cablare un edificio di due piani di cui si riporta la piantina. In ognuna delle stanze numerate devono essere predisposti 15 punti rete, ad eccezione della

Dettagli

Descrizione generale del sistema SGRI

Descrizione generale del sistema SGRI NEATEC S.P.A. Il sistema è un sito WEB intranet realizzato per rappresentare logicamente e fisicamente, in forma grafica e testuale, le informazioni e le infrastrutture attive e passive che compongono

Dettagli

Overview su Online Certificate Status Protocol (OCSP)

Overview su Online Certificate Status Protocol (OCSP) Overview su Online Certificate Status Protocol (OCSP) Introduzione di Nicola Ferrini MCT MCSA MCSE MCTS MCITP La revoca dei certificati digitali consiste nel rendere non più valido un certificato prima

Dettagli

Determinare la grandezza della sottorete

Determinare la grandezza della sottorete Determinare la grandezza della sottorete Ogni rete IP possiede due indirizzi non assegnabili direttamente agli host l indirizzo della rete a cui appartiene e l'indirizzo di broadcast. Quando si creano

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Sicurezza e rispetto della privacy, finalmente non in conflitto.

Sicurezza e rispetto della privacy, finalmente non in conflitto. Aylook e Privacy pag. 1 di 7 aylook, il primo sistema di videoregistrazione ibrida Privacy Compliant in grado di ottemperare alle richieste in materia di rispetto della privacy e dei diritti dei lavoratori.

Dettagli

IT Security 3 LA SICUREZZA IN RETE

IT Security 3 LA SICUREZZA IN RETE 1 IT Security 3 LA SICUREZZA IN RETE Una RETE INFORMATICA è costituita da un insieme di computer collegati tra di loro e in grado di condividere sia le risorse hardware (stampanti, Hard Disk,..), che le

Dettagli

Centralino telefonico OfficeServ 7100

Centralino telefonico OfficeServ 7100 Centralino telefonico OfficeServ 7100 Samsung OfficeServ 7100 estende le gamma di soluzioni All-in-One anche alle piccole e medie imprese. Modularità Il design del sistema OfficeServ 7100 è basato su unico

Dettagli

INDIRIZZI IP AUTORIZZATI

INDIRIZZI IP AUTORIZZATI INDIRIZZI IP AUTORIZZATI Brand Item Legrand 573992, 03565 MH200, MH200N BTicino F453, F453AV, F452, F452V www.myopen-legrandgroup.com 1 Document History Version Date Author 1.0.0 01/10/2010 My Open Staff

Dettagli

Reti di calcolatori. Reti di calcolatori

Reti di calcolatori. Reti di calcolatori Reti di calcolatori Reti di calcolatori Rete = sistema di collegamento tra vari calcolatori che consente lo scambio di dati e la cooperazione Ogni calcolatore e un nodo, con un suo indirizzo di rete Storia:

Dettagli

[ARCHITETTURA DI RETE ITIS TERAMO]

[ARCHITETTURA DI RETE ITIS TERAMO] Scuol@2.0 ITIS Teramo [ARCHITETTURA DI RETE ITIS TERAMO] Progetto di massima della rete che si vuole realizzare per implementare il progetto "Patto per la Scuol@2.0" Prof.Mauro De Berardis Progetto della

Dettagli

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 StruxureWare Data Center ExpertDispositivo virtuale Il server StruxureWare Data Center Expert 7.2 è disponibile come dispositivo virtuale, supportato

Dettagli

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6 GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1 Il Repeater 2 L Hub 2 Il Bridge 4 Lo Switch 4 Router 6 Gli apparati per l interconnessione di reti locali Distinguiamo i seguenti tipi di apparati:

Dettagli

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Amministrazione di Reti A.A. 2002/2003 Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

CAPITOLO 1. Introduzione alle reti LAN

CAPITOLO 1. Introduzione alle reti LAN CAPITOLO 1 Introduzione alle reti LAN Anche se il termine rete ha molte accezioni, possiamo definirla come un gruppo di due o più computer collegati. Se i computer sono collegati in rete è possibile scambiarsi

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso 2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi

Dettagli

VoipExperts.it SkyStone - Introduzione

VoipExperts.it SkyStone - Introduzione VoipExperts.it SkyStone - Introduzione Autore : Giulio Martino IT Security, Network and Voice Manager Technical Writer e Supporter di ISAServer.it www.isaserver.it giulio.martino@isaserver.it Creatore

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

UTILIZZO DELLA RETE WIRELESS DIPARTIMENTALE

UTILIZZO DELLA RETE WIRELESS DIPARTIMENTALE UTILIZZO DELLA RETE WIRELESS DIPARTIMENTALE PREMESSA Presso il Dipartimento di Elettronica e Informazione e attiva una infrastruttura wireless composta da undici access point (in seguito denominati AP)

Dettagli

ICARO Terminal Server per Aprile

ICARO Terminal Server per Aprile ICARO Terminal Server per Aprile Icaro è un software aggiuntivo per Aprile (gestionale per centri estetici e parrucchieri) con funzionalità di terminal server: gira sullo stesso pc dove è installato il

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Procedura per la configurazione in rete di DMS.

Procedura per la configurazione in rete di DMS. Procedura per la configurazione in rete di DMS. Sommario PREMESSA... 2 Alcuni suggerimenti... 2 Utilizzo di NAS con funzione di server di rete - SCONSIGLIATO:... 2 Reti wireless... 2 Come DMS riconosce

Dettagli

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica). Topologia delle reti Una RETE DI COMPUTER è costituita da un insieme di elaboratori (NODI) interconnessi tra loro tramite cavi (o sostituti dei cavi come le connessioni wireless). Rete Point-to-Point:

Dettagli

Lo scenario: la definizione di Internet

Lo scenario: la definizione di Internet 1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005 Si svolga il compito su questi fogli. Nel caso di domande a risposta aperta, lo spazio lasciato sul foglio

Dettagli

Applicazione di algoritmi di routing dinamico su reti wireless in ambiente portuale

Applicazione di algoritmi di routing dinamico su reti wireless in ambiente portuale 1 Applicazione di algoritmi di routing dinamico su reti wireless in ambiente portuale Tesi svolta presso il Fantuzzi Reggiane Electronic Department (FRED) Relatore: Prof. G. Dodero Candidato: Daniele Venzano

Dettagli

LaCie Ethernet Disk mini Domande frequenti (FAQ)

LaCie Ethernet Disk mini Domande frequenti (FAQ) LaCie Ethernet Disk mini Domande frequenti (FAQ) Installazione Che cosa occorre fare per installare l unità LaCie Ethernet Disk mini? A. Collegare il cavo Ethernet alla porta LAN sul retro dell unità LaCie

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1. Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione Percorso Formativo C1 Modulo 2 Computer hardware 1 OBIETTIVI Identificare, descrivere, installare

Dettagli

Offerta Enterprise. Dedichiamo le nostre tecnologie alle vostre potenzialità. Rete Privata Virtuale a larga banda con tecnologia MPLS.

Offerta Enterprise. Dedichiamo le nostre tecnologie alle vostre potenzialità. Rete Privata Virtuale a larga banda con tecnologia MPLS. Dedichiamo le nostre tecnologie alle vostre potenzialità. Rete Privata Virtuale a larga banda con tecnologia MPLS. Servizi di Telefonia Avanzata e Internet a Larga Banda. Offerta Enterprise Enterprise

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

La Videosorveglianza e la Salvaguardia degli ambienti

La Videosorveglianza e la Salvaguardia degli ambienti La Videosorveglianza e la Salvaguardia degli ambienti 2015 Un sistema di sicurezza evoluto 01 LA VIDEOSORVEGLIANZA 02 A COSA SERVE? 03 PERCHE GLOBAL SISTEMI La videosorveglianza è un evoluto sistema di

Dettagli

List Suite 2.0. Sviluppo Software Il Telefono Sas 10/06/2010

List Suite 2.0. Sviluppo Software Il Telefono Sas 10/06/2010 2010 List Suite 2.0 Sviluppo Software Il Telefono Sas 10/06/2010 List Suite 2.0 List Suite 2.0 è un tool software in grado di archiviare, analizzare e monitorare il traffico telefonico, effettuato e ricevuto

Dettagli