Copyright ©2000Università di Firenze. All rights reserved.

license available.

Implementazione Operativa di protocolli Sicuri

di Ilario Nocentini e Filippo Salucco

revisori: Ing. Maurizio Lunghi, Prof. Franco Pirri


Capitolo4:Creazione di un sito sicuro con Microsoft Internet Information Server 4.0

4. Creazione di un sito sicuro con Microsoft Internet Information Server 4.0

4.0 Introduzione

4.1 Istallazione di IIS4

4.2 Costruzione di un sito web con IIS4
        4.2.1 Microsoft Management Console
        4.2.2 Creazione di un sito web
        4.2.3 Creazione di una Virtual Directory (VrtDir)

4.3 “Directory Security”
        4.3.1 Restrizione all’accesso tramite IP e DN
        4.3.2 Abilitazione di SSL

4.4 Microsoft Certification Server
        4.4.1 Istallazione di MCS
        4.4.2 Istallazione del Certificato di CA(CertCA)
        4.4.3 Creazione di un Certificato Server(CertSrv)
           4.4.3.1 CertSrv tramite browser
           4.4.3.2 CertSrv tramite Key Manager
        4.4.4 Rilascio di Certificati Client
           4.4.4.1 Rilascio di Certificati Client con Internet Explorer
           4.4.4.2 Rilascio di Certificati Client con Netscape

4.0 Introduzione

Internet Information Server (IIS) è la risposta della Microsoft al più noto web server linux Apache. In questo lavoro illustriamo come sfruttare le caratteristiche di IIS4 per creare un sito che usa le SSL per creare una connessione sicura con l'utente in linea.
Si è poi implementato, anche attraverso l'uso di Microsoft Certification Server, un sistema per riconoscere l'utente collegato e determinare se questo abbia le credenziali e i diritti per poter accedere o meno alle risorse messe a disposizione dal sito; in caso negativo si è provveduto alla negazione dell'accesso.




 

4.1 Installazione di IIS4

In questa sezione saranno date alcune brevi note tecniche sul software e sulla configurazione usata per l'istallazione.
IIS è incluso nel CD Option Pack 4.0(OP4), nel quale troviamo anche Microsoft Certification Server per rilasciare i certificati;  L'OP4 è distribuito unitamente al CD di istallazione di Windows NT 4.0 server.  I requisiti minimi hardware raccomandati da Microsoft per la macchina sono: Intel Pentium 90-Mhz con 64 MB di RAM, 200 MB di spazio libero su Hard Disk.
Per  le specifiche software si trova che sulla macchina deve essere istallato Windows NT 4.0 server ed almeno il Service Pack 3 (questo è una collezione di patch per WindowsNT ); è inoltre richiesta la presenza di Internet Explorer 4 o superiori solo per l'istallazione. Dopo viene garantita la compatibilità anche con altri browser.
Nel nostro caso specifico la macchina usata era un Intel Pentium 133-Mhz, 64 MB di RAM con 500 MB di HD liberi, per quanto riguarda il software istallato abbiamo usato: Windows NT 4.0 server, Service Pack 6(SP6)  Internet Explorer 5.0 e Netscape 4.7.
(NdR: E' però da notare che al momento dell'istallazione del software è apparsa una inquietante finestra di dialogo che segnalava il fatto che la versione di IIS4 non era stata testata sul SP6).
L'istallazione è la classica istallazione Microsoft con la solita finestra di dialogo che guida passo passo l'utente, non bisogna fare altro che seguire le istruzioni.
Una volta che l'istallazione è completa il software richiederà di riavviare la macchina, questo vuol dire che bisogna lavorare offline, almeno per queste prime operazioni. A questo punto la macchina è pronta e possiamo vedere che tutto è andato bene se, premendo il pulsante Start (Avvio)/ Programs (Programmi), è stata inserita la voce Option Pack 4. Aprendo il relativo menù a tendina si potrà vedere l'elenco dei componenti istallati. E' bene infine sottolineare che Microsoft Certification Server viene istallato se e solo se al momento del setup si è scelta l'opzione Personalizzata; si possono comunque istallare in un secondo momento i componenti non selezionati.




 

4.2 Costruzione di un sito web con IIS4.

IIS4 interagisce con l'amministratore di rete attraverso due possibili interfacce grafiche; tramite un browser (raccomandato IE 4 o 5) e la Microsoft Management Console che poi è lo strumento privilegiato e che consigliamo caldamente.



4.2.1 Microsoft Management Console

La Microsoft Management Console (MMC) permette di lavorare, come se si stesse usando Esplora Risorse. Infatti ritroviamo la stessa disposizione grafica degli oggetti, cioè a sinistra un albero di possibili risorse da esplorare, a destra ritroviamo il contenuto della risorsa che abbiamo selezionato.
Per aprire questa console è necessario premere Avvio ed andare in Programmi/Option Pack4/ Internet Information Server 4.0/Internet Information Manager, la prima volta che si compirà questa operazione sulla sinistra apparirà una sola cartella chiamata Console Root. Cliccando sopra questa si espanderà un albero che a seconda dei componenti istallati conterrà un numero variabile di cartelle, tali cartelle prendono il nome di Snap-in e sono i vari strumenti che abbiamo appunto installato.
Normalmente dovrebbero apparire almeno due Snap-in: Internet Information Server e Microsoft Transaction Server; se apriamo il sottoalbero che parte da IIS4 avremo l'icona di un PC(quello su cui è istallato OP4) e una serie di cartelle come il Default FTP, Default Web site e Administration Web Site (ovviamente la presenza o meno di queste dipende da cosa si è scelto di istallare). Se andiamo col mouse a selezionare una di queste cartelle e poi, secondo la filosofia Microsoft, premiamo il tasto destro, otterremo l'apertura di un menu a tendina che ci elenca le varie possibilità di interagire con l'oggetto selezionato.
Se si è scelto il Default Web Site potremo, tra le altre cose avviare, fermare o mettere in pausa questo servizio altrimenti potremmo visualizzarne le Proprietà. Questo ci sarà molto utile in seguito poichè è proprio dal menù che si ottene da Proprietà che riusciremo a configurare il nostro sito in maniera opportuna.



4.2.2 Creazione di un sito web

Prima di vedere i semplici passi che porteranno alla costruzione di un sito web, è bene commentare le modifiche effettuate dall'istallazione di IIS4. Infatti viene creata, nella root di istallazione (il disco C:\ nel nostro caso), una directory INETPUB in cui sono incluse le FTPROOT, WWWROOT, SCRIPTS e IISSAMPLES: le prime due sono le home directory dei due siti di default creati automaticamente, la terza è la directory di default per gli scripts e la quarta quella che contiene le pagine del sito di esempio.
Veniamo ora alla procedura per la creazione di un sito web:
  1. Apertura di IIM sul lato sinistro deve essere completamente visibile il sottoalbero che parte dallo snap-in IIS4;  in questa maniera si potrà visualizzare l'icona con il nome della macchina su cui si sta lavorando (se si clicca due volte si potranno vedere tutti i siti che in questo momento "stanno girando" o meglio che sono presenti).
  2. Creazione di un sito - Selezionando il nome della macchina e premendo il tasto destro si apre un menù a tendina la cui quarta voce è New: selezionandola si apre una seconda finestra a tendina; da questa si scelga web site.
  3. Wizard di creazione del sito web viene attivato automaticamente dalla procedura sopra elencata. Nella prima finestra di dialogo dovremo immettere il nome del sito che si desidera creare, nella seconda si deve immettere l'indirizzo IP a cui si vuole far corrispondere il sito e la porta a cui il server fa riferimento(per un sito www di default è la porta 80), nella terza bisogna specificare dove fisicamente è collocata la directory del sito(di default C:\INETPUB\WWWROOT) e se si permette l'accesso anonimo, infine, dovremo configurare i permessi di accesso(ad es. sola lettura sola scrittura esecuzione o permettere gli script ed infine se permettere il browsing della directory). Premere, poi il tasto Fine.
Dando una occhiata al IIM, si può ora notare il nuovo sito che si trova in stato di Stop. Per avviarlo, cioè per poter permettere la navigazione da parte di un utente esterno, bisogna premere l'icona Start che si trova sulla barra dei comandi di IIM, oppure, premere il tasto destro (una volta selezionato il sito che si vuole attivare) e poi Start.
Occorre, sottolineare che quando si è attribuito al sito un indirizzo IP, questo è  l’indirizzo disponibile per la macchina: se vi sono più siti è necessario disporre di più indirizzi.
In realtà è possibile caratterizzare ogni sito web con tre attributi:
l’indirizzo IP, il numero di porta ed infine “Host Header Name”. Due siti possono convivere sulla stessa macchina se hanno almeno un attributo diverso.
Poichè è sconsigliabile variare il numero di porta (per default HTTP va  a  fare le proprie richieste sulle porta 80 a meno che non si specifichi diversamente nella URL) non resta che variare o l’indirizzo IP (ma bisogna averne di disponibili) o l’Host Header Name (HHN) che non è altro che il DNS del sito che si vuole raggiungere; è importante però che il browser del client supporti il HHN cioè che sia capace di inoltrare una richiesta al server che poi deciderà quali contenuti mandare.



4.2.3 Creazione di una Virtual Directory (VrtDir)

Una volta creato il sito abbiamo bisogno di una home page da far visualizzare. Per fare questo dobbiamo creare una pagina HTML e salvarla nella Home directory che abbiamo inserito nella terza finestra del passo 3.
Sarebbe comodo, tuttavia, avere diverse directory in cui poter mettere le immagini visualizzate nella Home page o dei documenti che vogliamo mettere a disposizione di quanti facciano visita al nostro sito. Con l’uso delle virtual directory è possibile mappare nell’albero delle directory del sito delle cartelle che fisicamente stanno da qualche parte nella macchina o addirittura su di un altro server.
Attraverso l’uso di questa tecnica e di IIM possiamo vedere le cartelle che stanno in luoghi diversi come se fossero tutte sottocartelle della home directory del sito creato, rendendo la gestione del sito web più semplice.
Per creare una VrtDir dobbiamo eseguire la seguente procedura:
1 Aprire IIM, andare sul nome del sito testè creato, premere il tasto destro ed andare su Nuovo.
2 Scegliere Virtual Directory, si aprirà così un wizard di creazione.
3 Il primo passo consiste nello scegliere un alias per la VrtDir; questo sarà il nome con cui la troveremo all’interno dell’albero delle cartelle.
4 Il secondo passo è quello di specificare dove fisicamente è collocata la dir (cioè il percorso assoluto di questa).
5 In questo terzo ed ultimo passo si specificano i permessi di accesso alla directory (cioè lettura e scripts per default) premendo fine si completa il processo.

Guardando, al solito la parte sinistra di IIM si può notare la nuova directory come sottocartella del nostro sito, in maniera analoga si può procedere per la creazione di altre cartelle.
Procediamo ora ad esaminare quali sono i possibili sistemi di sicurezza per la protezione del materiale contenuto nel sito.




 

4.3 “Directory Security”

Torniamo al nome del nostro sito(ma possiamo fare la stessa cosa per ogni VrtDir che abbiamo creato). Premendo il tasto destro del mouse si apre un menù a tendina andiamo su “Proprietà”, si apre un'altra finestra con un menù a ventaglio si scelga “Directory Security”. In questa finestra sono presenti tre aree: Per ogni area è presente un bottone che apre una finestra specifica per ogni tipo di  opzione che sceglieremo.
La prima finestra connessa alla prima area ci presenta tre scelte di cui due sono già abilitate per default: Vediamo ora più in dettaglio le altre due finestre relative alle due aree rimanenti.



4.3.1 Restrizione all’accesso tramite IP e DN

Questa in realtà sarebbe la finestra relativa alla terza area, tuttavia si è scelto di trattare questo argomento subito in modo da poterlo trattare esaurientemente nell’arco di questo paragrafo.
Dal menù contestuale (ottenuto premendo il tasto destro), dopo aver selezionato una VrtDir o il nome del sito (dipende in quale vogliamo restringere l’utenza), si scelga Proprietà: immediatamente si apre una finestra con un menù a ventaglio si scelga Sicurezza nella directory (“Directory Security”) subito ci appariranno le tre opzioni presentate brevemente nel paragrafo precedente.
Si scelga la terza area e si prema il bottone Edit che aprirà una finestra di dialogo: possiamo garantire l’accesso a chiunque o a nessuno selezionando una delle due opzioni. Questo costituirà il default per l’accesso allaVrtDir o all’intero sito; nella parte sottostante vi è una parte in cui mappare le eccezioni al default scelto prima.
Facciamo un esempio chiarificatore: supponiamo di voler inibire ad un utente qualsiasi la navigazione in una VrtDir nella quale vi sono alcuni strumenti dedicati all’amministratore del sito. Una volta eseguita la procedura sopra esposta, ritroverò la finestra di dialogo di Restrizione di Accesso e selezionerò come opzione di default che nessuno abbia il permesso di accedere, poi nella casella eccezioni elencherò l’indirizzo IP della macchina dell’amministratore del sito.
Per immettere i dati nella casella eccezioni al default è necessario premere ADD e possono essere elencati: Bisogna però dire che in questo ultimo caso si appesantisce parecchio la procedura, in quanto il sistema deve effettuare un DNS inverso per conoscere tutti gli indirizzi IP che non sono ammessi.



4.3.2 Abilitazione di SSL

 In questo paragrafo saranno descritte le procedure per abilitare il protocollo di connessione sicura sul sito che abbiamo costruito. Alcuni degli argomenti trattati saranno poi approfonditi nel successivo capitolo Microsoft Certification Server .
Supponiamo di voler usare il protocollo di connessione sicura solo per una VrtDir e non per tutto il sito: Abbiamo così abilitato il nostro sito ad usare le SSL per quella particolare VrtDir, ma è necessario controllare un ultima cosa: se la porta SSL (443) è abilitata. Per fare questo bisogna andare sulla ormai nota finestra delle Proprietà del Sito Web (ATTENZIONE proprio quella del Sito non quella della VrtDir) e scegliere il TAB "Web Site" nella prima area in alto, designata come "Web Site Identification". Vi sono due caselle di testo "TCP port" e "SSL port": nella prima ci deve essere scritto 80, nella seconda 443; se quanto detto è verificato potete chiudere e testare quanto avete fatto.
Per avere più chiaro come i certificati siano usati nelle SSL riportiamo i passi che vengono eseguiti durante l'Handshake. Per una più completa trattazione delle SSL rimandiamo comunque al capitolo relativo(SSL: http://telemat.die.unifi.it/book/Internet/Security/elab3.htm  ):
  1. Il Client richiede la pagina dal Server.
  2. Il Server manda al Client il suo Certificato e la sua chiave pubblica( il primo serve per attestare che la richiesta è stata inoltrata veramente a quel Server e non a qualcun'altro).
  3. Il Client crea una "Chiave di sessione" (è una chiave simmetrica) che sarà usata nel proseguo del colloquio con il Server.
  4. Il Client cripta la "Chiave di sessione" con la chiave pubblica del Server.
  5. Il Client manda la "Chiave di sessione" criptata al Server.
  6. Il Server decodifica la "Chiave di sessione" tramite la sua chiave privata.
  7. Il Server manda al client un messagio criptato con la "Chiave di sessone".
A questo punto, se il Server non richiede al Client il "Certificato Client" per l'autenticazione, si procede semplicemente criptando tutti i pacchetti con la "Chiave di sessione", altrimenti il Server si farà mandare il Certificato Client e lo verificherà secondo quelle che sono le sue politiche di sicurezza (ad esempio potrebbe far connettere il Client se e solo se il Certificato Client è stato rilasciato dal Server stesso o da una CA che lui riconosce).




 

4.4  Microsoft Certification Server(MCS)

Fino ad ora abbiamo supposto che entrambi, il Server e il Client, siano in possesso di un certificato. Vediamo adesso le procedure per istallare il Microsoft Certification Server (MCS) e le procedure per ottenere un certificato valido sia per il Server che per il Client (diversificando i due casi: Netscape e Internet explorer ).



4.4.1 Istallazione di MCS

Dipendentemente dalla configurazione che si è scelto al momento dell'istallazione dell'OP4(nel caso di Minima o Tipica) il MCS non è istallato ed occorrerà farlo in un secondo momento.
Facendo partire il "Setup" dal menù Avvio (Start) OP4 si giungerà alla ormai nota finestra di istallazione per tutto l'OP4. Premendo avanti (Next) saranno resi disponibili due tasti Rimuovi Tutto (Remove All) e Aggiungi/Rimuovi(Add/Remove): si scelga questa ultima opzione, si selezioni il Chekbox relativo a Certificate Server (è il primo chek box disponibile) e  premendo Avanti(Next) si visualizzerà una nuova finestra di dialogo con tre campi da riempire(in realtà il secondo ed il terzo sono già compilati). Queste informazioni servono per specificare dove, rispettivamente, saranno posti: Prima di premere Avanti (Next) assicurarsi di aver abilitato la sottostante Chekbox di Configurazione avanzata (Show Advanced Configuration). La finestra che si vede è quella in cui si può scegliere: Premendo Avanti(Next) dovremo compilare un'ulteriore maschera che chiede diversi dati che riguardano la nostra organizzazione, ad esempio il nome del server che desideriamo implementare come root CA. Attenzione perchè questi saranno presenti sul certificato e costituiranno parte integrante di esso.
Nota bene: Pur essendo presente l'opzione Non root CA, questa, richiede l'istallazione di una Authority Hierarchy che non è supportata dalla presente versione del Certification Server per cui non si può istallare in questa configurazione.
Abbiamo così concluso l'istallazione di MCS. Per rendere però operativo il nostro server è necessario che sia il Client sia il Server installino il certificato CA appena creato.



4.4.2 Istallazione del Certificato di CA(CertCA)

Prima di poter rilasciare dei certificati è necessario istallare il certificato di CA. Infatti il Client tramite il CertCA può verificare il certificato Server durante l'handshake SSL, ed il Server è in grado di verificare il Certificato Client al momento del logon(se, ovviamente, il server ha fatto richiesta al client di un certificato).
La procedura per l'istallazione è estremamente semplice:
  Per quanto riguarda il Server il procedimento è il medesimo, tuttavia è necessario fermare il servizio Web e poi farlo ripartire.



4.4.3 Creazione di un Certificato Server(CertSrv)

Il CertSrv è necessario per stabilire una connessione sicura tramite SSL (si rimanda all'SSL Handshake); vi sono due procedure possibili: tramite la pagina "Web Server Enrollment" o tramite la "Web Server Enrollmen via Key Manager".



4.4.3.1 CertSrv tramite browser

La procedura è la seguente:
  1. Aprire il ISM e premere il pulsante Key manager.
  2. Nella finestra che si apre selezionare il sottoalbero WWW, poi premere il tasto destro del mouse, o nella barra dei pulsanti il tasto Key, poi Crea nuova Chiave(Create New Key).
  3. La nuova finestra appartiene allo Wizard di creazione della Chiave. Ci sono due opzioni: con la prima, la richiesta di certificazione viene posta in un file (di Default NewKeyRq.txt) per poi essere inoltrata in un secondo momento ad una CA; con la seconda, la richiesta viene inoltrata direttamente alla CA in linea(se si è gia istallato il CertCA l'autorità in linea è la vostra). Scegliete la prima delle opzioni.
  4. Nella successiva finestra si deve inserire il nome che si vuole dare alla chiave e una password che poi riutilizzeremo per istallare il certificato. Si può anche selezionare la lunghezza della chiave (da 512bit a 1024bit); seguono altre tre finestre in cui si devono immettere dati "anagrafici". Alla fine premendo il tasto Finish si genera il file della richiesta.
  5. La finestra del Key Manager risulta variata; infatti, viene visualizzata una chiave spezzata(in questa maniera si vuole indicare che non è ancora utilizzabile).
  6. Per ottenere un certificato per la nuova chiave è necessario usare IE e navigare in http://["nome del server"]/CertSrv/CertEnroll.
  7. Selezionare "Process a Certificate Request" incollare il contenuto del file creato nel punto 3, dopodichè premere il bottone Submit: il Certification Server processerà la richiesta.
  8. Dopo che il Certification Server ha processato la richiesta, nel browser verrà visualizzata la pagina di download del certificato. Premete su Dounload e salvate il certificato in un file.
  9. Ora bisogna istallare il certificato appena ricevuto e per fare ciò dobbiamo ritornare al Key Manager, selezionare la Chiave visualizzata nel sottoalbero di WWW e premere il tasto destro del mouse selezionando "Install Key Certificate".
  10. Cercare il file appena scaricato, immettere la password del punto 4 e premere Avanti(Continue).
  11. L'ultima finestra è quella in cui si lega l'indirizzo IP del server e il numero della  porta al Certificato.
  12. La chiave è completa ed utilizzabile per rendere il tutto effettivo bisogna chiudere il Key Manager e salvare(Commit Changes Now).
La stessa procedura è utilizzabile per inoltrare la richiesta di certificato ad una qualsiasi CA, ma i passi 6, 7 e 8 vanno modificati; il browser, infatti, va indirizzato nel sito della CA da cui vogliamo ottenere il certificato.



4.4.3.2 CertSrv tramite Key Manager

La procedura è la stessa della precedente, tranne che nel punto 3 in cui bisogna scegliere la seconda opzione, dal punto 4 si passa direttamente al punto 11 e12. Questa procedura è più snella della precedente perchè non occorre collegarsi ad una autorità di CA in quanto è lo stesso Key Manager che fa da CA in linea.



4.4.4 Rilascio di Certificati Client

Distingueremo ora i due casi di rilascio in linea di certificati Client per Internet Explorer e Netscape, non perchè essi differiscano, ma perchè i due browser trattano diversamente le richieste.



4.4.4.1 Rilascio di Certificati Client con Internet Explorer

Prima di illustrare la procedura usata è necessario premettere che Internet Eplorer 5 non riesce a completare la procedura per il rilascio del certificato, mentre IE4 non ha problemi.
Comunque i passi necessari per richiedere il certificato sono i seguenti:
  1. Si apra IE e si navighi in http://["nome del server"]/CertSrv/CertEnroll e si scelga l'opzione "Request a Client Authentication Certificate".
  2. Compilate la form che vi si presenterà e poi scegliete il tasto "Advanced"(IE5 non visualizza questo tasto), se volete specificare quale algoritmo di hash usare o cambiare qualche altra proprietà, altrimenti premete il tasto Submit: in questa maniera il vostro certificato sarà processato dal Certification Server.
  3. Appena il Certification Server ha finito vi apparirà la pagina di Download. Premete sull'apposito pulsante per istallare il Certificato.
  4. Si può verificare il certificato ottenuto selezionando Opzioni di Internet dal menù Visualizza (questo per IE4 per IE5 Opzioni di Internet si trova sotto il menù Strumenti) e poi Content, quindi Personal, a questo punto si dovrebbe visualizzare il nome del certificato rilasciato(normalmente è quello del primo campo che avete riempito nella form del punto 2). Infine premere View.
Le operazioni di generazione delle chiavi rimangono totalmente trasparenti all'utente, tanto che potrebbe anche venire il dubbio che non sia successo nulla.



4.4.4.2 Rilascio di Certificati Client con Netscape

La procedura è analoga alla precedente fino al punto 2; Il processo per ottenere un certificato può sembrare più complesso, ma in realtà Netscape introduce solo qualche finestra in più, in altre parole, almeno avverte cosa sta succedendo e permette all'utente di bloccare la richiesta.







Explore Telemat site!