Corso di Sicurezza su Reti II

Prof. A. De Santis
Anno Accademico 2004-2005

 

Internet Service Provider 1

Gruppo: ISP1 (Internet Service :Provider 1)
Componenti: Carmine Tufano, Gaetano Sementina, Riccardo Sacco..

 

Indice

  1. Introduzione
    1. ISP1-Internet Service Provider 1
    2. Missione
  2. Scheda tecnica dei servizi
    1. Overview
    2. Servizio DNS
  3. Fase di setup
    1. Organizzazione
    2. Risorse HW
    3. Strumenti SW
  4. Fase di Tuning
    1. Servizi richiesti
    2. Servizi offerti
  5. Commesse
    1. Commessa I
    2. Commessa II
  6. Bibliografia

Introduzione

Il corso di Sicurezza su Reti II tenutosi nell'anno accademico 2004/2005 ha portato alla simulazione di rete internet. A tale scopo sono stati formati quattro gruppi, ognuno dei quali aveva il compito di gestire particolari aspetti della simulazione, questi erano CA, ISP2, ISP1, CERT.

Questo documento ha lo scopo di illustrare e dettagliare i compiti ed il lavoro svolto dal gruppo ISP1 all'interno della simulazione composto da Sacco Riccardo, Sementina Gaetano, Tufano Carmine.

Verranno illustrati i servizi che sono stati offerti, i destinatari di questi servizi, il modo in cui sono stati offerti e gli strumenti utilizzati a questo scopo.

ISP1 – Internet Service Provider

Il ruolo che svolge il gruppo all'interno della rete è quello di un Internet Service Privider (ISP) . Un'ISP ha lo scopo di fornire ad aziende o privati l'accesso ad internet fornendo loro servizi fondamentali e non per l'utilizzo della rete cui sono responsabili, come ad esempio l'accesso alla rete, la registrazione di domini, spazi web, hosting etc…

Spesso capita che gli ISP siano organizzati in maniera gerarchica, cioè alcuni di questi che si trovano ad un “livello superiore”, offrano servizi ad altri ISP che fungono da intermediari con aziende e privati, in modo da smaltire la gestione di utenza.

 

Esempio di gerarchia di ISP

 

Nella figura è illustrato un esempio di gerarchia in una rete di ISP. L'ISP A gestisce la Rete A fornendo i servizi di rete agli ISP B e C che forniscono direttamente i servizi agli host collegati alle sottoreti B e C.

Nella rete che è stata simulata nel laboratorio della sede di Lancusi, il gruppo dell'ISP1 ha avuto il ruolo dell'ISP A in figura, mentre il gruppo ISP2 ha avuto il ruolo degli altri due.

La fruizione dei servizi presso gli “ipotetici” utenti è stata gestita cercando di garantire un margine di sicurezza ed affidabilità degli stessi cercando di inibire attacchi fraudolenti al sistema da parte di utenti “maliziosi”, rappresentati nella simulazione dal gruppo CERT, il quale più che simulare attacchi aveva il compito di testare la sicurezza dei sistemi.

 

Missione

E' ora possibile entrare nel dettaglio illustrando i servizi che sono stati forniti dal gruppo all'interno della rete internet:

  • Servizi di DNS:
  • fornire un sistema di infrastrutture sicure necessarie al funzionamento dello stesso host come risolutore dei nomi in indirizzi Ip;
  • progettare un portale web sicuro con lo scopo di permettere ad eventuali richiedenti del servizio di effettuare richieste mediante l'utilizzo di Internet.
  • Servizi di gestione delle informazione:
  • Implementazione di un servizio di recupero delle informazioni sui responsabili dei domini registrati presso il sistema da parte di terzi.

Oltre alla fornitura dei servizi sovra elencati il gruppo ha avuto il compito di “metter su” un sistema affidabile ed il più sicuro possibile per evitare attacchi DOS da parte di utenti maliziosi.

 

1. Scheda tecnica dei servizi

I servizi principali offerti dal gruppo sono:

  • gestione e mantenimento di un server DNS sicuro, da utilizzare internamente al laboratorio di reti (DIA).
  • fornitura di un servizio di gestione delle informazioni sui responsabili dei domini registrati.

Il primo obbiettivo di un ISP è quello di fornire un’alta qualità dei servizi, si pensi ad una rete priva di DNS, l’utilizzo della stessa diventerebbe ostico a chiunque volesse utilizzarla. Per questo motivo è di fondamentale importanza la scelta di software robusti e contenenti il minor numero di bug e che spesso sono anche i più popolari nel loro campo. Il gruppo quindi si è orientato verso programmi open source ma che allo stesso tempo risultano essere molto popolari. In base a ricerche su internet e consigli offerti dal personale docente si sono fatte le seguenti scelte:

  • Per servizi di DNS, cioè di risoluzione dei nomi in indirizzi viene utilizzato bind . Questo software permette una semplice gestione dei nomi di dominio ed è uno dei software più utilizzati, se non il più utilizzato, tra quelli che implementano un server DNS.
  • In aggiunta al server DNS viene fornito un portale di pubblico utilizzo, al fine di permettere la gestione delle richieste di registrazione dei domini. Il portale si occuperà di mantenere le richieste di registrazione memorizzandole automaticamente sul sistema, ma senza interagire direttamente con il software di gestione del DNS. Questo per evitare che il malfunzionamento dell'uno comprometta il funzionamento dell'altro, ed inoltre per evitare attacchi al server DNS attraverso “vie secondarie”.
  • Per il recupero di informazioni relative ai responsabili dei domini registrati presso il sistema viene utilizzato il servizio di whois. In particolare è stato scelto swohis che a differenza dell'originale limita il numero di domini che può gestire, ma ciò non è di impedimento agli scopi della simulazione.

 

1.1. Overview

La macchina assegnata al gruppo è stata utilizzata come server DNS all'interno del laboratorio e quindi interrogata da ogni postazione all'interno della rete per fornire i servizi, ben noti, di traduzione dei nomi in indirizzi (Es. https://sr2ca.org à 193.205.160.177).

Al fine di fornire un meccanismo di erogazione del servizio semplice da utilizzare, per effettuare operazioni di richiesta di registrazione di un nuovo dominio, è stato sviluppato e pubblicato appositamente sul server web autonomo della macchina utilizzata, un portale web, accessibile all'indirizzo https://isp1.org per:

  • permettere all'utente di sottomettere richieste di registrazione;
  • permettere all'amministratore di avere una struttura secondaria per la gestione dei domini registrati.

Requisito base considerato in fase di progettazione, consiste nell'immissione dei parametri riguardanti le informazioni generali sul responsabile del dominio, persona nominata dall'utente che richiede il servizio, ciò poiché tali informazioni verranno utilizzate per la gestione del dominio previsto dal servizio di Whois offerto in correlazione ai servizi di DNS.

Il servizio whois viene erogato tramite la gestione di un database acceduto dal demone del servizio, che si occupa di restituire un insieme di informazioni utili associate ad un nome di dominio.

Tra le più importanti si può evidenziare:

  • Il nome del dominio cui si fa riferimento
  • Una descrizione della società o della persona responsabile
  • Il nome del responsabile del nome di dominio
  • Una e-mail di riferimento
  • Un indirizzo della persona sopra citata

La modalità di erogazione del servizio, prevede l'utilizzo di un'applicazione client che invoca il demone whois sulla macchina ISP1. In particolare possono essere utilizzati diversi tool per l'invocazione del servizio, quali per esempio visualroute, oppure mediante l'invocazione da riga di comando dell'applicazione “whois -host” , dove -host indica l'indirizzo Ip o nome dell'host del server whois che si vuole utilizzare.

Ritornando al servizio di DNS offerto dal sistema, le modalità di erogazione del servizio si limitano a fare ciò di cui sopra, garantendo certamente un buon funzionamento, ma solo in ambienti privi di utenze maliziose. In assenza di contromisure gli attacchi di DNS spoofing e cache poisoning ad esempio sono inevitabili.

1.2. Servizio DNS

L'importanza del funzionamento dei server DNS è vitale ai fini del corretto funzionamento della rete, per questo motivo il sistema deve necessariamente essere gestito in modo semplice ed efficace.

Al fine di fornire tutte le funzionalità di cui sopra, il gruppo dell'ISP1 ha utilizzato alcuni tool di gestione volti a migliorare e semplificare la configurazione e manutenzione del servizio.

Di seguito saranno presentati oltre ai dettagli relativi al servizio, i manuali d'uso dei principali tool di gestione del server DNS e del sito sviluppato dal gruppo stesso.

 

1.2.1. Server DNS:

Il servizio di server DNS è implementato, in termini di servizi offerti, su due livelli:

  • Livello di richiesta (Sito Web)
  • Livello di applicazione (Fruizione dell'host come server DNS)

 

Livello di richiesta - Sito web:

I manuali relativi il primo strato applicativo possono essere consultati cliccando qui.

 

Livello di applicazione

L'interazione con bind è stata gestita tramite l'utilizzo di un particolare tool, Webmin. Questo tool fornisce un interfaccia grafica per la gestione e la configurazione di diverse funzionalità di sistemi linux/unix, e tra le altre permette una semplice ed efficace gestione del server DNS bind, previa istallazione dello stesso sul sistema.

Inoltre Webmin permette l'interazione con bind anche da remoto, funzionalità questa particolarmente utilizzata dal gruppo di lavoro.

Ovviamente prima di poter utilizzare Webmin per configurare bind è necessario istallarlo. Una volta fatto ciò si potrà utilizzare il comando named per avviare il servizio di DNS e configurarlo tramite Webmin.

 

Bind e Webmin:

L'istallazione di Webmin avviene allo stesso modo di quella di bind. E' necessario scaricare gratuitamente dalla rete il software, istallarlo ed utilizzarlo per ciò che più ci serve.

Da browser, inserendo nell'url dei nomi localhost:10000, poiché Webmin gira sulla porta 10000 del sistema, appare una schermata iniziale che ci permette di selezionare il tool da configurare. Nella sezione network ad esempio è possibile configurare iptables, come è stato fatto dal gruppo per ovvie ragioni di sicurezza. Mentre nella sezione server, che ora più ci interessa è possibile selezionare bind.

La schermata iniziale mostra le master zone registrate presso il servizio, di seguito lo screenshot del server bind del gruppo sotto cui sono registrati due domini master.

 

I domini registrati sono .org e .edu . La zona .org viene detta anche master, e rappresenta un dominio sotto il quale se ne possono registrare altri in modo gerarchico, più avanti vedremo come il sistema mantiene le informazioni sui sottodomini presenti nella master zone org. La seconda invece è una forwarding zone. Spesso i service provider richiedono la gestione diretta di zone, evitando di sovraccaricare il peso del service provider principale. In questo caso il nostro host funge da service provider, e per questo motivo vengono create le forwarding zone. Quando il sistema riceve una richiesta per un sottodiminio di una zona di forwarding, come ad esempio www.sr2ca.edu , il sistema smista la richiesta al server provider presso cui sono registrate. Infatti alla richiesta di un dominio “.edu” il server bind controlla nel file di gestione principale dei domini alla ricerca di informazioni sul dominio richiesto, ma nel campo ad esso associato è presente l'etichetta “forwarding” ed un ip. Quest'ultimo indica al server di smistare le richieste per quel dominio all'ip presente nel campo. Le zone di forwarding a differenza delle master zone e slave zone (queste ultime sono sottozone delle master), diminuiscono le informazioni gestite dal server favorendo una “pseudo-decentralizzazione” delle stesse, in quanto comunque tutte le richieste dovranno passare la prima volta per il server. Uno dei problemi delle zone di forwarding riguarda la sicurezza, poiché, come si vedrà in seguito il protocollo dnssec, illustrato più avanti non permette di firmare richieste per zone di forwarding e non garantisce l'autenticità delle informazioni fornite.

Nella seguente schermata è visualizzato il form che Webmin mette a disposizione per effettuare il setting di tutte le opzioni, creare zone di diversa topologia, come master, slave, forward oppure modificare e visualizzare le zone esistenti.

La seguente figura è stata visualizzata selezionando la master zone .org.

 

Sono presenti tutti i domini registrati sotto la zone .org ( in questo caso sono due, ISP1.org e sr2ca.org ) che possono essere visualizzati nel dettaglio e modificati se necessario. Inoltre da qui è possibile creare nuovi domini che faranno parte della zone.

1.2.2. Erogazione del servizio

La registrazione del dominio avviene in due fasi separate, ed in particolare:

un membro del gruppo (che assumerà il ruolo di amministratore del servizio di DNS) periodicamente provvederà ad interrogare i database del portale web, al fine di effettuare operazioni di inserimento, modifica e cancellazione dei domini.

L'amministratore potrà ricevere tre tipologie di richieste che dovranno ovviamente essere gestite:

  • Richiesta di attivazione account: mediante la quale un utente appena registrato, richiede l'abilitazione dell'account alla fruizione dei servizi di registrazione di domini.
  • Richiesta di registrazione dominio: mediante la quale un utente chiede di registrare un dominio.
  • Richiesta di cancellazione dominio: mediante la quale un utente che precedentemente aveva registrato un dominio, ne richiede la cancellazione

La prima richiesta, è gestita interamente dal sito, mentre le altre due non lo sono. Infatti, l'operazione di inserimento ( e cancellazione) di domini, sarà fatta in modo stand-alone, e non tramite sito web; implementazione adottata per favorire il mantenimento sia del portale web che delle infrastrutture che implementano realmente il servizio, nel nostro caso bind. In altre parole una soluzione più automatizzata avrebbe potuto alterare il corretto funzionamento del server DNS e avrebbe esposto ad un rischio maggiore le informazioni di bind.

L'amministratore, quindi, inserirà, o rimuoverà i dati a “mano”, nei file di bind, mediante l'utilizzo dell'interfaccia grafica di interazione Webmin, a partire dalle informazioni dal sito illustrate.

Oltre ad effettuare tali operazioni, lo stesso amministratore compilerà opportunamente il file contenente i record di whois, a partire dalle informazioni che sono pervenute al sito, riguardo i dati anagrafici del responsabile, in modo da fornire tale servizio, per ogni richiesta di registrazione accettata, sul sito sottomessa.

Il portale pertanto rappresenta una sorta di meccanismo di gestione permanente dei dati, che mediante database propri, tiene traccia degli utenti e dei domini correntemente registrati (o sottoposti a richiesta di registrazione).

Quindi se un utente ha registrato un dominio, e la procedura di registrazione stessa è andata a buon fine, può utilizzare la macchina assegnata al gruppo ISP1 come DNS, semplicemente impostandolo nei file di configurazione dell'interfaccia di rete che si vuole utilizzare nella navigazione.

Sulla base delle affermazioni discusse, si può quindi affermare che, i tempi ed i costi delle elaborazioni necessari alla fruizione dei servizi di DNS dipendono unicamente dall'operatore umano che viene nominato come amministratore, poiché quelli relativi all'uso del portale sono pressoché nulli, ed in parte dalle operazioni che l'utenza deve necessariamente effettuare (setting delle proprietà dell'interfaccia di rete che si vuole utilizzare, effettuare operazioni sul portale web).

Inoltre non sono da sottovalutare i costi relativi i software utilizzati, infatti la fornitura del servizio di DNS, necessita dell'esecuzione di Apache Tomcat, come web server per la gestione del portale, della Java Virtual Machine 1.5.04, come supporto al web server, di bind e Webmin per la gestione della risoluzione dei nomi in Ip, di un tool di scrittura nei file (emacs, vi, ecc.) per la scrittura dei file necessari per il servizio whois, delle risorse allocate dal demone whois.

 

1.2.3. Server Whois

Per quanto riguarda whois invece non è presente un interfaccia grafica, quindi il servizio è utilizzato in maniera testuale digitando da shell il comando whois <nome del dominio>, senza utilizzare nessuna applicazione aggiuntiva (visualroute, ecc.).

L'istallazione del servizio viene effettuata scaricando il software ed istallandolo eseguendo gli script configure, make e make install che fanno parte del pacchetto di istallazione del programma.

Per poter utilizzare come server whois la macchina del gruppo ISP1 è necessario specificare l'ip del server da interrogare.

Di seguito è visualizzato il risultato del comando sul dominio sr2ca.org

 

 

L'utilizzo di una particolare macchina come server whois viene specificato utilizzando il parametro –h ed il nome dell'host o l'ip della macchina da interrogare, in questo caso è stato specificato l'ip 193.205.161.170, cioè l'ip della macchina del gruppo.

Le informazioni visualizzate sono contenute in un file gestito dal demone swhoisd.conf, o meglio, il demone può solo leggere le informazioni presenti in esso. Il file non è altro che una sorta di database. In esso sono presenti tre tipi di record, ognuno dei quali contiene più informazioni. Questi sono:

  • Record degli Host;
  • Record dei Domini;
  • Record delle Persone;

Ognuno di questi record contiene più campi che sono informazioni relative al tipo di entità che identificano. In una ricerca possono essere restituiti più record appartenenti ad entità diverse. Questo dipende dal fatto che ad un dominio appartengono informazioni relative al dominio stesso e ai responsabili. In pratica il file può essere visto come tre tabelle, una per ogni tipo di record. Le chiavi di ricerca sono indicate con un punto esclamativo ( ! ) antecedente al campo, questo indica al demone che quando viene effettuata una ricerca può controllare quel campo. Inoltre per ogni campo contrassegnato da punto esclamativo del record viene effettuata una ricerca sugli altri record che hanno lo stesso valore nei loro campi resi visibili all'esterno.

Per essere più chiari, ecco un esempio di record presenti in un file swhois.conf:

 

2. Fase di setup

Prima di passare ad una descrizione più dettagliata dei servizi e di come vengono erogati, facciamo una piccola descrizione su dettagli più tecnici.

In questa sezione verranno illustrati dettagli inerenti:

  • la suddivisione dei compiti nel gruppo;
  • dettagli tecnici riguardanti le risorse messe a disposizione al gruppo
  • i software necessari all'istallazione e l'esecuzione dei tool principali.

 

2.1. Organizzazione

 

Sacco Riccardo e Sementina Gaetano:

Si sono occupati dell'istallazione dei software: dalla scelta, quasi obbligata, di un sistema operativo Unix-like, in particolare la scelta della distribuzione Mandrake 10.0, l'istallazione dei vari software, siano essi stati scelti per volontà dei singoli partecipanti sia per motivi di dipendenze per l'installazione degli altri software del sistema.

I software istallati sono Bind 9.3.1 per la gestione del sevizio di DNS, swhois per la gestione delle informazioni sui responsabili dei domini. E' stato scelto di installare ed utilizzare Webmin, un software di interfacciamento grafico per diverse applicazioni di sistemi linux, tra cui Bind ed iptables. Inoltre si sono occupati della configurazione di iptables, che nonostante l'utilizzo di webmin per l'interfacciamento grafico, non è stata molto semplice.

 

Sacco Riccardo

Update dei software alle versioni più aggiornate, dopo una prima analisi effettuata da parte del gruppo CERT, a pochi giorni dalla conclusione della fase di tuning.

 

Tufano Carmine

Si è occupato della configurazione di Apache tomcat 5.0, della JVM 1.5.04, della configurazione di keytoll e openssl per l'utilizzo di ssl con Tomcat.

 

2.2. Risorse Hardware

A disposizione della simulazione è stato concesso l'utilizzo di un laboratorio. Ad ogni gruppo è stata assegnata una macchina che i gruppi avrebbero potuto configurare come meglio credevano per la fornitura dei servizi richiesti in base al loro ruolo nella simulazione. In particolare l'hardware della macchina messa a disposizione del il gruppo ISP1, e similmente degli atri gruppi, aveva le seguenti caratteristiche:

  • Processore Intel 400MHz
  • 128 Mb di memoria RAM
  • Quantum fireball 8Gb
  • Monitor Philips 107s
  • Scheda di rete

 

Problemi riscontrati:

Il lavoro di configurazione è stato notevolmente rallentato a causa di ben due rotture hardware che hanno reso indispensabile e difficile la manutenzione fisica del pc in dotazione al gruppo. La seconda rottura ha portato alla sostituzione dell'intero pc. Nonostante tutto il sistema istallato ha continuato a funzionare su una nuova architettura hardware.

La fase di sviluppo inoltre è stata notevolmente rallentata dalle scarse risorse messe a disposizione, quali un processore Intel 400MHz e soli 128Mb di memoria RAM. Da un monitoraggio delle risorse risulta che il sistema necessita di almeno il doppio della memoria RAM, per non parlare delle performance in fase di compilazione, l'istallazione di openssl ha richiesto circa un'ora di compilazione!

Data la divisione dei compiti effettuata internamente al gruppo, talvolta è stato necessario utilizzare la postazione assegnata come server di richieste SSH. In tal modo è stato possibile aumentare la produttività, ma sempre nei vincoli ben limitatamente delineati dall'HW a disposizione.

 

2.3. Strumenti Software

 

I software principali scelti dal gruppo per la fornitura dei servizi richiesti sono:

  • Bind 9.3.1
  • Swhoisd 3.0.5
  • Webmin 1.190
  • Tomcat 5.0 (ha sostituito completamente Apache)
  • Java 1.5_04 (sostituisce la precedente versione per problemi di incompatibilità delle classi atte alla codifica/decodifica di file xml)
  • Openssl 0.9.7g

Per l'implementazione e la fornitura dei servizi di interfacciamento agli utenti sono state utilizzate tecnologie web quali servlet, jsp, xml, DTD, legati a motivi di competenza dei singoli partecipanti del gruppo.

Al fine di fornire un portale il più completo possibile, sono state utilizzate alcune librerie aggiuntive, non presenti nel comune ambiente di runtime delle virtual machine di java, tra le quali:

  • Java Mail : per l'invio di email automatiche, da parte del portale a seguito di determinate operazioni
  • JDom : per l'interazione con i file xml utilizzati come database
  • The Apache Xml security : per la cifratura/decifratura dei file xml utilizzati come database
  • Java Keytool: per la generazione di keystore dove memorizzare i certificati necessari al corretto funzionamento di ssl su tomcat.

 

2.3.1. Istallazione Software

Oltre ai software sopra elencati sono stati istallati altri software aggiuntivi per diversi motivi: in primo luogo per fornire un sistema più sicuro ed affidabile, a questo scopo sono stati istallati OpenSSL 0.9.7g, che deve essere utilizzato per eseguire connessioni cifrate con il server web Apache Jakarta Tomcat., in secondo luogo per necessità dovute alle dipendenze dei software da utilizzare che richiedevano l'istallazione di altri.

Dipendenze:

Alcuni software sono stati istallati per motivi di dipendenze, l'istallazione di Bind e altri software hanno implicato l'istallazione dei seguenti software:

  • rcs-5.7
  • M4-1.4.2
  • Autoconf 2.59
  • Automake 1.6.3

Questi software sono stati richiesti dal sistema nella fase di installazione dei software principali, quali Bind, openSSl, swhois. Nella maggior parte dei casi erano necessari per la sostituzione delle loro precedenti versioni già presenti nel sistema.

Startup della macchina:

Alcuni servizi sono stati configurati per essere caricati all'avvio della macchina, in particolare Bind, i demoni Whois e Ntpd, quest'ultimo sarà illustrato nell'ultima sezione riguardante le commesse. Per fare ciò è stato necessario modificare il file di sistema rc.local posizionato sotto la directory /etc/rc.d. Il sistema carica da questo file le variabili locali da mantenere nella sessione di lavoro, tra le quali sono state inserite le variabili per l'utilizzo dei comandi forniti dalle jdk ed il path delle classi java ed ovviamente i demoni da caricare all'avvio (named, cioè il demone di Bind, whoisd e ntpd). Inizialmente era stato istallato anche il servizio ssh ma subito disabilitato in quanto i pc del laboratorio non possono restare accesi di notte rendendo inutile l'esecuzione del servizio e fornendo eventuali punti deboli al sistema. Altro servizio inizialmente istallato e poi rimosso è stato proftpd, utilizzato per la gestione di un server ftp.

La sicurezza:

Per quanto riguarda l'interfacciamento del pc verso la rete si è scelto di adottare come firewall il software Iptables.

Questo software risulta essere notevolmente efficace per la protezione di attacchi provenienti dalla rete esterna, ma allo stesso tempo notevolmente difficile da configurare. Infatti è stato speso molto tempo per la configurazione delle porte da aprire verso la rete. Indispensabili sono le seguenti porte ai fini dei servizi che devono essere offerti dalla macchina:

  • porta 80 protocollo TCP per il servizio di http
  • porta 443 protocollo TCP per il servizio di https
  • porta 53 protocollo UDP per l'interrogazione del server BIND
  • porta 43 protocollo TCP per l'interrogazione del server Whois
  • 123 TCP per NTP

La politica di gestione dei pacchetti che arrivano sull'interfaccia di rete è dettata dalle regole definite dell'amministratore del sistema, il quale è l'unico che può accedere al software ed ha i permessi per definire la politica di amministrazione. L'idea sulla quale si basa iptable è semplice, dato l'insieme delle regole, per ogni pacchetto ricevuto si controlla se questo infrange una delle regole che sono state definite, altrimenti lo gestisce in base alla politica di default per casi non previsti che solitamente è Drop, (scarta).

Tool di gestione aggiuntivi, Webmin:

Per facilitare la gestione e la configurazione dei servizi offerti è stato scelto di istallare Webmin 1.190. In particolare ha facilitato la configurazione dei seguenti servizi:

  • Iptables: utilizzando una interfaccia grafica è possibile definire e modificare le regole utilizzate dal firewall per l'analisi dei pacchetti;
  • Webmin: è possibile creare e gestire le master zone e le slave zone registrate nel file di configurazione di Bind.

La particolarità di Webmin è quella di essere una applicazione accessibile da un qualunque browser, sia da locale che da remoto. Da precisare che dovrebbe essere configurato per funzionare con il protocollo https in quanto la fase di login da remoto potrebbe essere soggetta a spoofing della rete, mostrando in chiaro la password di root della macchina. Anche questa operazione richiede notevole spreco di risorse temporali, ma una possibile contromisura da adottare potrebbe essere quella di configurare Iptables in modo tale da accettare solo i pacchetti provenienti dal localhost e destinati alla porta 10000 (quella di funzionamento di Webmin) e di scartare tutto il resto. Questa soluzione sembra essere al momento quella più efficace ed allo stesso tempo sicura.

Software rimossi:

In un primo momento era stato istallato anche MySQL per la gestione degli utenti iscritti al sito, il quale avrebbe interagito con il database per permettere la login degli iscritti e avrebbe inserito i dati dei nuovi utenti.

Ma dopo l'istallazione del software e la creazione del database, andata a buon fine, si sono riscontrati problemi nella comunicazione tra le servlet ed il database, in particolare non si è riusciti a stabilire una connessione tra le due entità tramite le api fornite, per questo motivo si è deciso di ripiegare alla scelta di un database con più file XML. In particolare sono stati usati 5 file XML, opportunamente utilizzati dalla componente model del portale, inoltre è stata prevista la crittografia di tali file, mediante l'utilizzo di algoritmi di cifratura simmetrica quali DES, in modalità ede (codifica, decodifica, codifica), e di AES in modalità cbc.

Risoluzione dell'interazione con il sistema:

Uno dei problemi riscontrati nella fase di setup, era dovuto alla mancata installazione di un connettore tra Apache e Tomcat, che permettesse a quest'ultimo di funzionare solo come servlet container per il primo, che avrebbe dovuto essere il vero Web server, in modo da utilizzare SSL, con le impostazioni standard di Apache. Il problema è stato risolto utilizzando direttamente Tomcat come Web server, e modificando alcune impostazioni per l'utilizzo diretto dello stesso con SSL, la procedura è risultata più semplice e particolarmente molto meno dispendiosa della prima proposta.

 

3. Fase di tuning

In questo capitolo sono illustrate le operazione volte all'interazione del gruppo ISP1 con gli alti gruppi.

 

3.1. Servizi Richiesti Presso Gli Altri Gruppi

L'ISP1 necessita esclusivamente del rilascio di certificati da parte del gruppo CA , al fine di fornire un servizio sicuro di scambio di dati con gli utenti del sito, in particolare con le procedure di registrazione e di login previste.

Inoltre ha usufruito spesso delle risorse umane del gruppo CERT, per effettuare fasi di testing ai servizi implementati.

L'interazione con la CA è stato richiesto per il rilascio di un certificato da parte del gruppo, al fine di permettere di aumentare il livello di sicurezza del portale web, tale procedura viene di seguito discussa ed illustrata

In primo luogo è stato utilizzato il tool incluso nella JVM, keytool, per la creazione di un keystore al quale tomcat si possa riferire per caricare i certificati, mediante l'esecuzione delle operazioni di seguito illustrate, che creano un file, di nome keystore nella current directory.

 

A questo punto è stato necessario alterare il contenuto del file server.xml di configurazione di Tomcat, in particolare è stato inserito l'elemento xml di seguito illustrato.

<Connector port="8443" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/isp1/Desktop/tomcat.5/conf/keystore" keystorePass="cartuf" />

Dopodichè è stato necessario generare una nuovo certificato da far firmare alla CA, mediante l'utilizzo di openssl, come viene di seguito illustrato

L'esecuzione della precedente operazione provoca la creazione di due file REQ.pem e KEY.pem, il primo deve essere sottomesso alla CA per generare il certificato autenticato, ciò è stato fatto mediante l'utilizzo dell'interfaccia pubblica che la CA espone all'esterno, come viene di seguito illustrato, vengono prima immessi i dati del certificato, e caricato il file REQ.pem, tra i parametri deve essere evidenziato il ruolo, che nel caso di ISP1 risulta essere Web Server.

Sottomesso il form precedentemente illustrato, accedendo alla lista dei certificati validi è possibile scaricare il certificato in formato PEM, formato questo, richiesto dall'utilizzo di keystore.

Una volta registrato il certificato, è stato scaricato sempre dall'interfaccia pubblica della CA, chiamandolo certAuth, ed importato all'interno del keystore a cui tomcat fa riferimento, come segue.

Il certificato ottenuto, importato nel keystore e correntemente in uso, è di seguito illustrato

 

martedì 19 luglio 10:11:32 UTC

Variabile Valori

Versione del Certificato 3 (0x2)

Serial Number 35 (0x23)

Common Name (CN) Carmine Tufano

E-Mail isp1group@gmail.com

Distinguished Name (DN) serialNumber=35

CN=Carmine Tufano

OU=ISP1

O=SR2CA

L= Salerno

ST=Italia

C=IT

Role Web Server

Identificativo (Fingerprint) SHA1:21:CC:76:3A:1E:9C:AD:EE:81:BF:67:6C:C1:58:E7:6C:76:5C:7C:A3

Emesso da emailAddress=ca@sr2ca.org

CN=Certification Autority

OU=sr2ca

O=Certification Autority

C=IT

Valido da Jul 19 10:06:24 2005 GMT

Scade il Jul 19 10:06:24 2006 GMT

Stato attuale Valido

Netscape CA Revocation Url https://sr2ca.org/pub/crl/cacrl.crl

Netscape Cert Type SSL Server

Netscape Comment WWW-Server of SR2CA

Netscape Revocation Url https://sr2ca.org/pub/crl/cacrl.crl

X509v3 Authority Key Identifier keyid:05:C7:58:93:24:32:4D:26:4C:88:EB:7E:0F:48:EE:08:8F:9C:14:12 DirName:/C=IT/O=Certification Autority/OU=sr2ca/CN=Certification Autority/emailAddress=ca@sr2ca.org serial:F4:F5:AD:32:39:58:30:6D

X509v3 Basic Constraints CA:FALSE

X509v3 CRL Distribution Points URI:https://sr2ca.org/pub/crl/cacrl.crl

X509v3 Certificate Policies Policy: 1.2.3.3.4 Policy: 1.2.3.3.5 Policy: 1.2.3.3.6 Policy: 1.2.3.3.7 CPS: http://some.url.org/cps

X509v3 Extended Key Usage TLS Web Server Authentication

X509v3 Issuer Alternative Name email:ca@sr2ca.org

X509v3 Key Usage Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment

X509v3 Subject Alternative Name email:isp1group@gmail.com

X509v3 Subject Key Identifier B0:09:57:EE:1F:62:3A:2B:CA:86:E3:C1:A5:35:49:2F:39:38:E1:9C

 

3.2. Servizi Richiesti Dagli Altri Gruppi

Sono stati registrati su richiesta dei singoli gruppi i domini con gli ip assegnati alle rispettive macchine. In questo modo collegandosi alla rete locale, ed inserendo come DNS l'ip del gruppo ISP1, o anche quello di uno degli altri gruppi, è possibile visualizzare la pagine dei singoli gruppi inserendo il nome del dominio, invece dell'ip della macchina.

Questi sono:

  • Domini per il gruppo CA

sr2ca.org all'ip 193.205.161.176

  • Domini per il gruppo ISP1

isp1.org all'ip 193.205.161.170

  • Domini per il gruppo ISP2

isp2.edu all'ip 193.205.161.177

loggiamassonica.edu all'ip 193.205.161.177

maucem.edu all'ip 193.205.161.177

blog.edu all'ip 193.205.161.177

webcollaboration.edu all'ip 193.205.161.177

  • Domini per il gruppo CERT

cert.org all'ip 193.205.161.185

 

Tutti i domini sono stati registrati mediante l'utilizzo da entrambe le parti (richiedente e fornitore) del portale web, descritto nelle precedenti sezioni e per ognuno è stato creato un record nel file di configurazione di whois,.

E' da evidenziare, inoltre, che il gruppo ISP2 gestisce domini di tipo www.loggiamassonica.edu , ciò deriva dalla necessità del gruppo ISP2 stesso di gestire risorse quali ftp.loggiamassonica.edu , mail.loggiamassonica.edu, e quindi di gestire domini di secondo livello, a questi, in particolare, non è stato possibile attuare la politica di gestione utilizzata per gli altri domini, poiché in questo caso è stato necessario ricorrere ad una relazione di delegazione opportunamente configurata con bind, il dominio .edu è stato gestito come una zona di forwarding, come detto in precedenza.

Ai fini di testing, inoltre, sono state ricevute e servite diverse richieste di servizi NTP da ISP2 e CERT.

 

4. Commesse

Le commesse sono richieste effettuate dai responsabili della rete. In realtà hanno il compito di simulare eventuali richieste di sviluppo, di studi di fattibilità o di rilascio di eventuali servizi. Ovviamente le commesse differiscono tra i vari gruppi, questo perché ognuno dei gruppi ha diverse competenze e responsabilità.

 

4.1. Commessa I

OBIETTIVO

 

studio di fattibilita' di un servizio DNSSEC.

  • provvedere ad identificare i software più idonei per implementare il servizio;
  • descrivere dettagliatamente le procedure necessarie per l'istallazione lato server e lato client
  • mostrare degli esempi di istallazione ed utilizzo.

 

Come è possibile vedere dalla traccia, la commessa si divide nella descrizione di tre punti. Nel seguito viene presentata prima una breve descrizione del protocollo DNS, in cui saranno evidenziati i punti in cui il protocollo è vulnerabile ad attacchi da parte di utenti maliziosi, poi viene presentata una descrizione del protocollo Dnssec, in cui sono evidenziate le differenze, o meglio, “le aggiunte” al protocollo DNS. Nel paragrafo successivo invece viene fatta una prima distinzione tra lato server e lato client, e per ognuna delle due entità vengono sviluppati i punti richiesti dalla commessa, in particolare i primi due punti, cioè l'identificazione e la procedura dell'istallazione vengono sviluppati contemporaneamente nello stesso paragrafo, mentre in quello successivo sono mostrati degli esempi di utilizzo dello stesso.

 

4.1.1. DNS - Breve introduzione

Il servizio di DNS permette di risolvere i nomi di dominio in indirizzi ip. Questo è di fondamentale importanza per l'utilizzo di una rete da parte di utenti umani, si pensi all'idea di dover ricordare solo codici numerici per visualizzare sito web. Il servizio di DNS viene fornito principalmente tramite un meccanismo gerarchico o di delegazione, le richieste vengono inviate ad altri server fino a quando un server che riceve le richiesta non possiede le informazioni richieste.

Ecco una richiesta da parte di un host per la risoluzione del nome di dominio www.ripe.net A

 

Richiesta di risoluzione di un nome

La sequenza di numeri rappresentano i messaggi scambiati tra le varie entità per risolvere un indirizzo. Il Revolver fa una richiesta per l'indirizzo www.ripe.net A, questa viene inviata prima ad una cache, che controlla se il record è presente nella cache ed è valido, altrimenti ,come nel caso della figura, inoltra la richiesta ad un primo server DNS, il quale informa il caching forwarder di interrogare un altro server, in questo caso il gtld-server. Allo stesso modo, questo informa il caching farwarder di interrogare un altro server, che viene interrogato e fornisce la risposta al caching farwarder, che prima di inviare la risposta al revolver crea un record nella cache per memorizzare l'informazione che è appena stata ricavata.

Naturalmente, come tutti i servizi offerti, anche questo protocollo presenta delle vulnerabilità alla sicurezza.

Ci sono vari punti nel flusso di dati in cui un utente malizioso può agire ai danni del sistema.

 

Punti deboli di una richiesta

Nella figura riportata sono illustrati i messaggi scambiati tra le varie entità per la risoluzione di un nome, mentre le frecce indicano i punti in cui può agire un utente malizioso per fornire informazioni errate. Come mostrato dalla figura, ci sono diversi modi in cui quest'utente può agire per fornire informazioni errate, questi sono causati da falle che possono essere sulla:

  • protezione del server
  • alterare fisicamente i dati memorizzati sul server che gestisce direttamente le informazioni sul dominio;
  • eseguire un aggiornamento dinamico delle master zone con informazioni errate;
  • impersonificazione di una master zone ad una slave zone;
  • protezione dei dati
  • alterazione dei dati sulle slave zone;
  • modifica delle informazioni sulla cache, come l'alterazione del TTL;
  • impersonificazione della cache.

I dati DNS tra il master server ed il revolver o il forwarder quindi possono essere trafugati o contaminati.

Il protocollo DNS non prevede meccanismi di controllo per la validità dei dati, e questo permette ad un utente malizioso di modificare i dati in modo tale che il client riceva informazioni errate oppure può raccogliere le richieste e ottenere tutte le informazioni che gli host si stanno scambiando (spoofing).

Per evitare tutto questo e rendere il servizio sicuro si può utilizzare il protocollo dnssec che permette una comunicazione sicura e assicura integrità dei dati.

 

4.1.2. DNSSEC

 

Il protocollo DNS definisce le specifiche per fornire un servizio di risoluzione dei nomi, il quale, non avendo forme di autenticazione, è stato spesso oggetto di attacchi. Ad ogni nome di dominio sono associati dei resource record (RR). Questi possono essere di classi differenti e quindi mantenere informazioni differenti, tra i più importanti ci sono ad esempio l'ip della macchina corrispondente al nome di dominio, il TTL (time to live), ecc… Le risposte ottenute da una richiesta di DNS sono rappresentate da un insieme di questi record, che vengono interpretati dal client per ottenere le informazioni necessarie.

Un utente malizioso cercherà come prima cosa di alterare i valori degli RR, fornendo così informazioni errate.

Per ovviare a questi problemi è stata proposta una sua estensione: il protocollo DNSSEC. Questa soluzione è pensata come un metodo che possa fornire sia un sistema sicuro per mantenere l'integrità dei dati che come una forma di autenticazione per resolver o applicazioni sicure attraverso l'uso di firme digitali crittografate.

Queste firme digitali sono incluse nelle zone sicure come nuovi (RR). In alcuni casi la sicurezza può essere fornita anche attraverso server non sicuri. Le estensioni offrono un metodo per la memorizzazione nel DNS di chiavi pubbliche autenticate. Questa memorizzazione di chiavi può supportare servizi di distribuzione di chiavi pubbliche generiche ed anche la sicurezza del DNS stesso.

Le chiavi forniscono ai resolver sicuri la capacità di autenticare chiavi di zona oltre a quelle per cui sono stati inizialmente configurati.

Le chiavi associate ai nomi del DNS possono essere recuperate per il supporto di altri protocolli. É stato previsto,infatti, il supporto per molti tipi di chiave ed algoritmi.

Le estensioni sicure forniscono, infine, un metodo opzionale di autenticazione del protocollo DNS per le transazioni e le richieste.

DNSSEC prevede che ogni insieme di RR (RRset) inviato in risposta ad una query, sia accompagnato da una firma digitale generata attraverso la chiave privata dell'origine.

Il server DNS destinatario può verificare attraverso la firma digitale l'autenticità e l'integrità del messaggio.

 

 

DNSSEC specifica tre nuovi RR:

  • KEY: rappresenta la chiave pubblica di un server DNS;
  • SIG: contiene la firma digitale di una richiesta o risposta
  • NXT: usato per autenticare risultati negativi, indicando la non esistenza di RR per la risposta

 

4.1.3. DNSSEC – Istallazione e Utilizzo

L'implementazione del protocollo avviene lato server. La descrizione dell'implementazione descritta nel seguito presuppone l'istallazione del server DNS bind. Oltre a bind, per l'istallazione del protocollo è necessario eseguire alcune procedure per fornire al sistema gli strumenti adeguati, mentre l'utilizzo avviene lato client dove è necessario utilizzare dei comandi specifici del servizio.

 

4.1.3.1. Dettagli lato server:

Il protocollo dnssec è stato implementato per evitare attacchi alla vulnerabilità del tradizionale protocollo di risoluzione dei nomi di dominio.

Il gruppo dell'ISP1, a tal fine, ha dovuto ricompilare il software utilizzato come server DNS, cioè bind, aggiornato alla versione 9.3.1, con openssl 0.9.3g.

La ricomplilazione del software permette quindi di utilizzare gli eseguibili dnssec-keygen e dnssec-signzone che vediamo ora in dettaglio insieme all'utilizzo fatto da parte del gruppo ISP1 insieme ad alcuni esempi.

 

Fase di generazione delle chiavi: dnssec-keygen

Genera una coppia di chiavi, la chiave pubblica e la chiave privata. Naturalmente sono necessari alcuni parametri che bisogna specificare ed inoltre permette di selezionare alcune opzioni facoltative:

dnssec-keygen -a <alg> -b <bits> -n <type> [options] <keyname>

 

Parametri obbligatori sono:

  • a algoritmo: RSA | RSAMD5 | DH | DSA | RSASHA1 | HMAC-MD5
  • b grandezza della chiave, in bits:

RSAMD5: [512..4096]

RSASHA1: [512..4096]

DH: [128..4096]

DSA: [512..1024] e divisibile per 64

HMAC-MD5: [1..512]

  • n : ZONE | HOST | ENTITY | USER il tipo di entità da autenticare con la chiave generate .
  • name: nome dell'entità cui appartengono le chiavi.

L'opzione –a permette di scegliere l'algoritmo da utilizzare per la crittografia, naturalmente si tratta di algoritmi asimmetrici che permettono la crittografia a chiave pubblica, tranne per l'ultimo, HMAC-MD5 che essendo un algoritmo di mac viene utilizzato per firmare i dati e permettere il controllo dell'integrità degli stessi. Il parametro –b permette di selezionare la lunghezza, in bit, della chiave di crittografia.

L'opzione –n identifica il tipo di entità cui appartengono le chiavi generate, ed infine è necessario specificare il nome dell'entità, cioè il nome cui si riferisce l'entità proprietaria delle chiavi.

Di seguito sono riportati i parametri facoltativi che si possono passare al binario.

Opzioni facoltative:

  • c : classe (default: IN)
  • e : uso di un esponente grande (solo per RSAMD5/RSASHA1)
  • g : utilizzo di un generatore specifico (solo per DH)
  • t :AUTHCONF | NOAUTHCONF | NOAUTH | NOCONF (default: AUTHCONF)
  • p : default: 3 [dnssec]
  • r : un file contenente dati random
  • v : verbose

 

L'output ottenuto dal commando dnssec-keygen consiste di due file, un file per la chiave privata ed un file la chiave pubblica.

Nella simulazione, il gruppo ISP1 ha identificato la zona .org con il protocollo dnssec.

Di seguito sono riportati i comandi eseguiti per generare le chiavi e l'output ottenuto che consiste di due file, uno .key che contiene la chiave pubblica e l'altro .private che contiene ovviamente la chiave privata.

In realtà nella figura riportata sono state create due coppie di chiavi di lunghezza diversa.

I valori che compongono il nome dei file della chiave non sono casuali.

Il primo valore indica l'algoritmo di crittografia utilizzato, mentre il secondo indica tag della chiave utilizzati.

Per configurare una chiave si inserisce un record nel file di configurazione di bind named.conf come questo:

key “.my-friend”{

algorithm mac-md5;

secret “nEfRX9jxOmzsby8VKRgDWEJorhyNbjt1ebbPn7lyQtE=";

};

Questo record permette di configurare una chiave che può essere utilizzata per permettere il trasferimento aggiungendo nel record di un dominio l'opzione “allow transfer”, come ad esempio:

zone ”org." {

type master;

file "zones/org.hosts.";

allow-transfer { key me-friend.; };

};

Fase di firma della zona: dnssec-signzone.

Una volta generati i file delle chiavi si può firmare la zona. A questo scopo si utilizza l'eseguibile dnssec-signzone che assegna e firma le zone tramite chiavi che le vengono passate in input.

Più precisamente, dnssec-signzone genera il record nxt e sig e produce una versione firmata della zona, in pratica genera un file org.hosts.signed dal file originale generato da bind org.hosts. Se è presente una chiave di autenticazione per la zona genitore, allora la firma della zona genitore viene incorporata nel file firmato della zona firmato che è stato generato.

Dnssec-signzone necessità di due argomenti che sono:

La zona da firmare, quindi il file che contiene i domini della zona da firmare;

Il nome del file delle chiavi senza estenzione, in modo da prendere entrambi i file.

Inoltre è possibile specificare altri parametri, in particolare il gruppo dell'ISP1 ha utilizzato l'opzione –o, per indicare che il nome del file passato non è una zone name.

Di seguito è riportato il prompt dell'esecuzione dell'operazione di firma dei file

L'output dell'operazione è il file org.hosts.signed simile all'originale org.hosts, ma che a differenza di quest'ultimo contiene dei dati aggiuntivi, in particolare contiene la chiave di crittografia delle zone.

In realtà nell'esempio riportato la zona è stata firmata con due chiavi.

 

Fase di pubblicazione delle zone firmate.

L'ultima fase è quella di pubblicazione delle zone firmate che consiste nel modificare il file di bind “named.conf”. Questo contiene le informazioni sulle master zone e ogni zone possiede un record con informazioni su di essa ed il file della zona di bind. Nel caso del gruppo ISP1, cui è registrata la master-zone “.org”, il file named.conf contiene un record del tipo:

zone ”.org" {

type master;

file "zones/org.hosts.signed";

};

La pubblicazione consiste nel modificare il record file aggiungendo un .signed alla fine della stringa, in modo tale che ora il campo faccia riferimento al file che contiene anche le informazioni crittografiche sulla zone.

Infine per settare il resolver name server per la verifica si devono settare le chiavi pubbliche che si ritengono sicure come entry point nel file named.conf. Per fare ciò si deve inserire il seguente record:

trusted-keys {

“org.” 256 3 1 “AD……QQ==”;

};

Questo indica che la chiave pubblica della zona org è quella che compare tra virgolette dopo i tre interi.

Di seguito è riportato il contenuto del file named.conf dove è presente la chiave della zone “.sec”

 

Casi particolari:

Il gruppo dell'ISP2 ha richiesto la delega di un particolare dominio, “.edu”, che gestisce direttamente. In questa situazione il ruolo del gruppo ISP1 e quello di delegare la gestione dei servizi di DNS al gruppo ISP2. La delega è un caso che non può essere gestito da dnssec direttamente sul gruppo dell'ISP1, in quanto non è possibile farlo, l'unica soluzione prevista è quella di incaricare il gruppo ISP2 della gestione della sicurezza delle zone auto-gestite, in pratica anche l'ISP2 dovrebbe implementare il servizio dnssec.

 

4.1.3.2. Dettagli Lato Client

L'utente necessita di utilizzare il comando dig lato client per verificare l'autenticità dei dati ed il livello di sicurezza fornito, come integrità dei dati, autenticità dei dati. I dettagli sull'utilizzo e interpretazione del risultato sono spiegati nel seguito della sezione.

 

Utilizzo del servizio

Per testare la zona sicura lato client è necessario utilizzare il comando dig nel seguente modo:

dig +dnssec server site

Il campo server rappresenta l'indirizzo ip della macchina che il cliente deve interrogare per ottenere informazioni sul sito specificato. Di seguito è riportato parte del risultato del comando dig che interroga la macchina dell'ISP1 per ottenere informazioni sul sito ISP1 registrato presso la zona .org:

In realtà è possibile anche evitare di specificare l'opzione +dnssec nel comando dig, ma verranno restituite meno informazioni lato client.

 

Output del comando dig

L'output restituisce informazioni sulla query che vengono restituite dopo il tag flag. Questi specificano se i dati sono autenticati, se è richiesta la ricorsione per l'autenticazione, etc…

 

4.2. Commessa II

 

OBBIETTIVO

 

Il gruppo dovrà implementare un servizio NTP server.

 

 

4.2.1. Cosa è NTP:

Il Network Time Protocol (NTP) è un sistema per la sincronizzazione del tempo di orologio dei calcolatori attraverso la rete Internet. Ne sono state definite 3 versioni: la 1 nel 1988, la 2 nel 1989 e la 3 nel 1992. La versione corrente è la 3 che è compatibile con le precedenti.

 

4.2.1.1. Principali caratteristiche di NTP:

  • È completamente automatico e mantiene la sincronizzazione in modo continuativo;
  • È adatto alla sincronizzazione sia di un solo calcolatore, sia di intere reti di calcolatori;
  • Si può utilizzare con quasi tutti i tipi di calcolatori;
  • È resistente ai guasti e dinamicamente autoconfigurante;
  • Diffonde il tempo UTC, quindi è indipendente dai fusi orari e dalle ore legali;
  • La precisione di sincronizzazione arriva fino ad 1 millisecondo.

 

4.2.1.2. Principio di funzionamento:

Un server primario NTP, detto anche di strato 1, è un calcolatore collegato ad un orologio di alta precisione di riferimento e dotato di un software NTP. Altri calcolatori, detti di strato 2, dotati di un software similare, chiedono la sincronizzazione del proprio tempo di sistema al server primario che risponde con dei messaggi di sincronizzazione, il tutto in modo automatico. I calcolatori di strato 2 possono a loro volta sincronizzare altri calcolatori, detti di strato 3, e così via fino a 16 strati. Man mano che ci si allontana dallo strato 1 la precisione della sincronizzazione diminuisce. In questa struttura, ciascun calcolatore può essere contemporaneamente server per le macchine di strato inferiore che si sincronizzano su di esso e client per la macchina di strato superiore a cui esso stesso si sincronizza. Ogni server può avere alcune centinaia di client, quindi il numero di macchine sincronizzabili indirettamente da un singolo server primario è praticamente illimitato. Per rendere il sistema più affidabile, un client può avere più di un server di strato superiore . In questo caso, il software NTP misura continuamente le caratteristiche di stabilità e precisione dei possibili server, scegliendo di volta in volta come riferimento quello con le migliori caratteristiche.

 

4.2.2. NTP – Istallazione e Utilizzo

 

4.2.2.1. Istallazione di NTP

 

Installazione Demone NTPD

Dopo aver scaricato da Internet il pacchetto NTP 4.2.0 in formato tar.gz è necessario scompattarlo con il comando

Tar zxvf ntp4_2_0.tar.gz

Ottenendo cosi una cartella contenente i sorgenti del demone.

Dopo aver ottenuto i privilegi di root è necessario eseguire le seguenti operazioni:

./configure

Make

Make install

In questo modo il demone viene installato sulla macchina in questione.

Il pacchetto scaricato non fornisce il file di configurazione del demone, per questo motivo è stato necessario creare il file ntp.conf all'interno della directory /etc/.

Il seguente listato rappresenta il file di configurazione di NTPD:

 

##################################################

server 127.127.1.0

fudge 127.127.1.0 stratum 10

server ntp1.ien.it minpoll 9 maxpoll 10

#autokey burst

server time.nist.gov minpoll 9 maxpoll 10

driftfile /etc/ntp/drift

authenticate no

logfile /var/log/ntpd

##################################################

 

La prima riga serve ad indicare al demone che deve fornire il servizio all'interno della rete locale.

La keyword status indica a che livello l'applicazione deve funzionare, ed in particolare più è alto il livello minori problemi si avranno nella sincronizzazione. Infatti come è possibile vedere dalla schermata seguente.

 

Brevi considerazioni:

Il meccanismo di funzionamento, che è stato illustrato prima, non è semplice e spesso può creare alcuni problemi legati alla sicurezza o a mancate sincronizzazioni, però in alcuni casi diventa indispensabile avvalersi di un servizio di questo tipo come nel caso in cui due o più sistemi debbano avere sempre la medesima ora, come nel caso del salvataggio di documenti sul sistema la cui data deve essere considerata affidabile.

Spesso l'utilizzo di questo servizio ha generato problemi di sicurezza, ecco perché alcuni timeserver consentono accessi autenticati e cifrati ed ecco perché se il nostro sistema fornisce questo servizio ad altri host è bene regimentarne l'accesso attraverso l'opportuna direttiva (restrict).

Nel caso di studio non è stato però possibile restringere l'accesso al server in quanto tutti i pc della rete simulata in laboratorio hanno lo stesso indirizzo di rete, in particolare l'intenzione era quella di far accedere al servizio solo le macchine assegnate ai gruppo ISP2 e CA esculento la macchina assegnata al CERT.

 

GRUPPI COINVOLTI

ISP2, CERT, per la richiesta di aggiornamento dell'orario del loro sistema.

 

4.2.2.2. Utilizzo del Servizio

L'utente usufruisce del servizio di Network Time Protocol in maniera differente a seconda del sistema operativo che utilizza.

L'immagine sottostante raffigura l'avvenuta sincronizzazione dell'orario con la macchina assegnata al gruppo ISP1 ( indirizzo ip: 193.205.161.170). Il client in questione utilizzava in sistema operativo Windows XP.

 

 

Per poter raggiungere la seguente schermata è necessario andare nel Pannello di controllo di Windows->Data e ora->Ora Internet ed inserire l'indirizzo ip corretto.

Per quanto riguarda i sistemi operativi Unix, la sincronizzazione avviene tramite terminale bash, ed in particolare eseguendo il comando:

ntpdate IndirizzoServer

Nel caso di utilizzo della macchina dell'ISP1 il comando completo è:

ntpdate 193.205.161.170

Da segnalare che è necessario possedere i privilegi di root per poter eseguire il comando.

 

Bibliografia

 

•  http://jakarta.apache.org/tomcat/tomcat-5.0-doc/ssl-howto.html

Link del sito relativo al web server Jakarta ed alla configurazione dello stesso con ssl per l'utilizzo del protocollo https.

 

•  http://tomcat.apache.org/

Link del sito relativo al web server tomcat. Su questo link è possibile scaricare il software ed è possibile trovare tutte le informazioni di supporto necessarie all'istallazione dello stesso.

 

•  http://www.openssl.org/ OPENSSL : the Open Source toolkit for SSL/TLS

Link relativo alla libreria di sistema openssl, in questa sezione è possibile recuperare informazioni relative all'istallazione ed alla configurazione per l'utilizzo della cifratura e l'esecuzione di transazioni sicure. Inoltre da questo link è possibile scaricare gratuitamente l'ultima versione di openssl.

 

•  http://www.webmin.com/

Link relativo al tool Webmin. In questo link è presente una sezione tutorial per l'utilizzo del tool ed inoltre è possibile scaricare gratuitamente lo stesso.

 

•  http://www.isc.org/index.pl?/sw/bind/

Link relative al software bind, da qui è possible scaricare gratuitamente l'ultima versione del server DNS, presenti link relativi agli rcf ed i bug riscontrati nelle varie versioni precedenti.

 

•  http://swhois.net/

Link relativo al software swhois, da questa URL è possibile raggiungere la sezione di download del sostare, è possibile eseguire il software interrogando il sever del sito e sono presenti link alle sezioni tutorial.

 

•  http://www.ntp.org/

Link relativo al software che implementa il servizio NTP. Sono presenti link alle sezioni di download, tutorial, e alle news relative alle varie release, come report dei bug.

 

•  http://www.dnssec.net/

Link relativo al servizio di DNSSEC. In questa URL sono presenti link agli rcf relativi al servizio di DNSSEC, un link alla sezione tutorial in pdf, una sezione riguardanti il servizio di DNS e news relative al protocollo.