IIS 5.0 - Il Web Server di Microsoft Windows 2000

IIS 5 è un servizio che integrato in Windows 2000 permette di gestire un Web Server per pubblicare e distribuire sulle intranet, sulle extranet e su Internet contenuti basati sullo standard World Wide Web.

IIS sfruttando le potenzialità e l’integrazione con Active Directory di Microsoft Windows 2000 fornisce la pubblicazione dei servizi WWW (World Wide Web), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol) e NNTP (Network News Transfer Protocol). Inoltre integra il Servizio di Indicizzazione (Indexing Service) utilizzato per creare cataloghi di documenti in cui è possibile eseguire una ricerca da un sito Web, i servizi certificati utili per estendere la protezione del server web e Microsoft Transaction Server, un componente fondamentale per lo sviluppo di applicazioni Internet .

Panoramica sui processi e l’architettura di IIS

Ogni servizio IIS viene eseguito in un’istanza di SVCHOST.exe (host del servizio)

La struttura di IIS è suddivisa in livelli quindi l’avvio o l’arresto di un server virtuale non influisce sull’host del servizio.

Il controllo dell’host del servizio e delle applicazioni ISAPI (Internet Server Application Program Interface) lo gestisce il processo INETINFO.exe.

Il processo DLLHOST.exe è usato per gestire le applicazioni isolate che risiedono in uno spazio di memoria separato. E’ possibile rimuovere l’applicazione dalla memoria scaricandola. Al successivo accesso all’applicazione IIS prevede il ricaricamento in memoria e il riavvio di un nuovo processo DLLHOST.exe.

 

Riassumendo nella configurazione di base il server esegue i processi IIS:

-   inetinfo.exe : processo utilizzato per gestire gli host del servizio e le applicazioni ISAPI

-   svchost.exe : processo che controlla le risorse Web e FTP, le risorse SMTP e NNTP, l’installazione base.

-   Dllhost.exe : processo utilizzato per gestire i processi IIS.

IIS 4 vs IIS 5 - Le nuove funzionalità

Microsoft ha classificato le principali caratteristiche e differenze rispetto alla versione 4.0

Ulteriori informazioni potete trovarle all’interno della guida in linea di IIS 5.

Livello Protezione

- “Nuova” Autenticazione classificata (Digest) è una funzione potente e sicura per l'autenticazione degli utenti su server proxy e firewall.

- Comunicazioni protette: Secure Sockets Layer (SSL) 3.0 e Transport Layer Security (TLS) forniscono un sistema sicuro per lo scambio di informazioni fra client e server.

- “Nuova” SGC (Server-Gated Cryptography): SGC è un'estensione di SSL che consente agli istituti finanziari che utilizzano la versione per l'esportazione di IIS di servirsi della crittografia a 128 bit.

- “Nuova” Conformità al protocollo di autenticazione Kerberos v5: la totale integrazione di IIS con il protocollo di autenticazione Kerberos v5 implementato in Microsoft Windows 2000 consente di trasmettere le credenziali per l'autenticazione fra computer Windows collegati.

- “Nuova” Memorizzazione dei certificati: le funzioni di memorizzazione dei certificati di IIS sono integrate con le funzioni CryptoAPI di Windows.

Livello Amministrazione

- “Nuova” Riavvio di IIS: è possibile riavviare i servizi Internet senza dover riavviare il computer.

- Backup e ripristino di IIS: è possibile eseguire il backup e salvare le impostazioni.

- Opzioni di configurazione: è possibile impostare le autorizzazioni Lettura, Scrittura, Esecuzione, Script e Web FrontPage a livello di sito, directory o file.

- Gestore del sito Web personale: in IIS 5.0 è disponibile un'utilità semplificata, chiamata Gestore del sito Web personale, con cui è possibile amministrare e monitorare un sito personale.

- Nuovo monitoraggio del traffico del sito: una serie di grafici in tempo reale che visualizzano le statistiche relative al traffico del sito, quali il numero di richieste e di visitatori su base giornaliera e oraria.

- Possibilità di programmazione: supporto completo di Active Server Pages, inclusi i componenti ASP ad alte prestazioni e la nuova funzionalità per la gestione degli errori.

- Amministrazione centralizzata: gli strumenti amministrativi per IIS utilizzano Microsoft Management Console (MMC), che ospita programmi, chiamati snap-in, con cui gli amministratori possono gestire i server.

- “Nuova” Active Server Pages: utilizzando il linguaggio di script e i componenti sul lato server è possibile creare contenuti dinamici indipendenti dal browser.

- Nuove funzioni ASP: Active Server Pages presenta alcune nuove funzioni per l'ottimizzazione delle prestazioni e la semplificazione degli script sul lato server.

-“Nuova” Protezione delle applicazioni: per impostazione predefinita, IIS esegue tutte le applicazioni in un processo comune pool separato dai processi centrali di IIS.

- “Nuova” ADSI 2.0: IIS 5.0 garantisce agli amministratori e agli sviluppatori un'enorme flessibilità nella configurazione dei siti, grazie all'opportunità di aggiungere metodi, proprietà e oggetti personalizzati al provider ADSI esistente.

Livello Standard Internet

- Conformità agli standard: Microsoft Internet Information Services 5.0 è conforme allo standard HTTP 1.1 e supporta funzioni quali PUT e DELETE, la possibilità di personalizzare i messaggi di errore HTTP, nonché le intestazioni HTTP personalizzate.

- “Nuova” WebDAV (Web Distributed Authoring and Versioning): consente agli autori di creare, spostare o eliminare file, proprietà di file, directory e proprietà di directory nel server in modalità remota tramite una connessione HTTP.

- Restrizioni PICS: è possibile applicare restrizioni PICS (Platform for Internet Content Selection) ai siti che contengono materiale adatto solo a un pubblico adulto.

- “Nuova” Ripresa di trasferimenti FTP: in caso di interruzione durante il trasferimento di un file FTP, è possibile riprendere lo scaricamento dei dati senza dover scaricare di nuovo l'intero file.

Installazione

Essendo integrato in Windows 2000 l’installazione è immediata.

- posizionarsi nel pannello di controllo ed eseguire Installazione Applicazioni.

- selezionare Add/Remove Programs

- selezionare Add/Remove Windows Components

- selezionare Internet Information Services (IIS)

E’ possibile configurare IIS 5 anche per il sistema Windows 2000 Professional ma è una versione limitata e può ospitare solo un sito web e un sito FTP.

Servizi IIS

E’ possibile configurare 4 servizi installando IIS 5.

WWW - servizio necessario per costruire un server Web e fornire pagine Web ai client.

FTP - servizio necessario per permettere agli utenti FTP di ottenere o scaricare file dal server

SMTP - servizio necessario per permettere al Web Server di trasmettere e ricevere posta ai client.

NNTP - servizio necessario per la creazione e la gestione di newsgroup.

Metabase

Molto importante è il metabase di IIS, il quale immagazzina i relativi parametri di configurazione. E' molto più flessibile, veloce ed espandibile rispetto al registro di Windows 2000.

Il metabase è immagazzinato in un file chiamato MetaBase.bin ed è localizzato nella directory Winntsystem32inetsrv. Il metabase viene caricato dal disco quando viene avviato IIS e viene salvato periodicamente mentre IIS è in esecuzione.

Internet Services Manager

Terminata l’installazione eseguire c:winntsystem32inetsrviis.msc o utilizzate la ormai nota MMC (Microsoft Management Console), un interfaccia utente centralizzata che permette di gestire tutti gli oggetti di Windows 2000 denominati snap-in.

Lo snap-in di IIS è Internet Service Manager. Da segnalare che oltre alla MMC esiste anche una versione HTML remota di Internet Service Manager.

Quando si installa un server IIS vengono creati tre siti Web:

Sito FTP Predefinito: sono consentite connessioni anonime ai siti FTP. Si consiglia di disattivare questo sito se non viene utilizzato il protocollo FTP per il trasferimento dei file.

Sito Web Predefinito: sono consentite connessioni anonime ai siti Web.

Amministrazione Sito Web: permette di amministrare mediante strumenti browser i siti web.

 

E’ possibile configurare anche un server SMTP per la gestione e la consegna dei messaggi in Internet e un server NNTP per la creazione e la gestione di newsgroup.

Quando si installa il servizio WWW per IIS viene creato un sito Web predefinito, progettato per amministratori poco esperti e dispone di molte sottodirectory tra cui:

-   IISHelp: contiene una documentazione di supporto in linea e si trova nel percorso %systemroot%HelpIisHelp.

-   IISAdmin: contiene strumenti amministrativi per gli operatori che si occupano di siti Web e si trova nel percorso %systemroot%system32inetsrviisadmin.

-   IISSamples: contiene documenti di esempio utili per gli amministratori e sviluppatori e si trova nella directory inetpubiisamples.

Il concetto di directory fisica e virtuale.

La differenza tra directory fisiche e virtuali è importante.

La directory fisica fa parte del file system e deve esistere come sottodirectory della home directory per essere disponibile tramite IIS.

La directory virtuale è una directory che non è necessariamente contenuta nella home directory ma è disponibile per i client tramite un Alias.

Uno dei principali vantaggi nell’utilizzare directory virtuali è la possibilità di pubblicare in un unico sito Web file che si trovano in posizioni diverse senza doverli spostare. Gli alias offrono una protezione aggiuntiva poiché gli utenti non conoscono la posizione fisica dei file nel server.

Un metodo alternativo per creare una directory virtuale senza utilizzare lo snap-in di IIS è utilizzare “Web Sharing” direttamente da Windows Explorer. E’ stato progettato per condividere cartelle in un computer che esegue IIS ma non è possibile creare directory virtuali in un altro server IIS.

Amministrazione dei siti Web

Proprietà Internet Information Services

“Master Properties”

Utilizzando lo snap-in IIS e posizionandosi sul nome macchina del Web Server è possibile configurare le proprietà “Master” sia per il servizio WWW che FTP. Selezionando “Modifica” si impostano i valori che saranno applicati a tutti i siti contenuti nel Web Server.

Impostare le seguenti proprietà è molto utile se l'utente ha creato un numero differente di siti web sul proprio server poiché saranno ereditate da tutti i siti Web creati sul server.

“Enable Bandwidth Throttling”

Le impostazioni della larghezza di banda determinano l’accettazione o il rifiuto da parte di IIS 5 di una richiesta per una pagina statica HTML. Se la larghezza di banda sul server non è sufficiente a supportare tale richiesta è possibile risolvere il problema incrementando il valore.

“Computer MIME Map”

La configurazione dello standard “Multipurpose Internet Mail Extensions (MIME)” permette la creazione di un formato di file da utilizzare nello scambio di e-mail, nei documenti web e in altre applicazioni Intranet/Internet.

Proprietà Server Extentions

Queste impostazioni sono utilizzate dal prodotto FrontPage. Il controllo remoto permette all'autore di un sito Web di realizzare cambiamenti e caricare una pagina Web sul server. Questo necessita di maggiori accorgimenti nella sezione "Permissions". E' fortemente raccomandato selezionare "Log authoriting actions" (monitoring di quando qualcuno aggiorna pagina web simile nome utente autore, nome web etc.), Require SSL for authoriting (con l'utilizzo di SSL le comunicazioni saranno cifrate) e Manage Permissions manually (disabilita le funzioni di sicurezza di Frontpage Server Extentions Administrative Tools, in modo che i tools non possano modificare le impostazioni di sicurezza del web selezionato).

L'opzione "Allow Authors to upload executables" permette agli amministratori o possibilmente l'intrusore di caricare scripts o eseguibili sul Web server per poi essere eseguiti. Si consiglia di lasciare l'opzione disabilitata.

Creare un sito Web

Per creare un nuovo sito posizionarsi sul nome macchina e con il pulsante destro del mouse selezionare "New" e "Web Site".

 

Viene avviata la procedura guidata per creare il sito.

Immettere un nome descrittivo per il nuovo sito .

In un sistema Windows 2000 è possibile eseguire più siti Web in quanto IIS supporta i "server virtuali". Ad ogni server virtuale corrisponde un indirizzo IP, un nome host, un numero di porta.

Selezionare la directory contenente il sito. Valutare se permettere “l’accesso anonimo” al sito.

 

Selezionare le autorizzazioni da impostare per la “home directory”

E’ possibile impostare autorizzazioni di accesso per il sito Web. Generalmente si desidera impostare solo le autorizzazioni Read (Lettura) e Run Scripts (Esecuzione Scripts).

Una volta creato il sito , selezionate le proprietà del sito Prova.

Proprietà Web Site

Le proprietà del “Web Site” del sito di prova appena creato si dividono in 3 aree distinte:

“Web Site Identification”

- specificare una descrizione il cui nome verrà utilizzato nell’albero di Internet Service Manager per identificare il sito.

- inserire l’indirizzo IP dell’interfaccia di rete che servirà il sito e l’indirizzo di porta TCP e se utilizzato SSL.

- le opzioni Advanced permettono di mappare più nomi di dominio o nomi di intestazione host in un unico indirizzo IP.

“Connections”

Permette agli amministratori di limitare il numero di accessi simultanei al sito web impostando un timeout del tempo di connessione. Le impostazione di timeout sono raccomandate per impedire un possibile attacco Denial of Service.

“Enable Logging”

L'opzione “Enable Logging” (Registrazione Attività) è selezionata di default ed è l'unica impostazione di sicurezza in questa finestra di dialogo. Questa opzione assicura se abilitata, l'attività di registrazione di tutti i siti Web creati sul server, mantenendo traccia di molti tipi di informazioni tra cui:

-   eventi relativi ad HTTP/FTP/SMTP/NNTP dentro e al di fuori del server

-   tentativi di caricare file su directory configurate per contenuti eseguibili

-   tentativi di inviare comandi .bat o .cmd a directory configurate con contenuto eseguibile

-   richieste eccessive da un singolo indirizzo IP, con il tentativo di causare un Denial of Service

Alcune raccomandazioni per la sicurezza

-   spostare e rinominare la directory IIS Log files

-   l’accesso Full Control alla directory dei file di log dovrebbe essere limitata solo a System e Administrators.

-   Monitorare le seguenti proprietà dei log: data e ora dell’evento, ip del client, username, metodo http, ultima url visitata dal client.

Proprietà Operators

Quando un sito viene creato e configurato, automaticamente vengono inclusi account e gruppi con autorizzazioni per elaborare funzioni amministrative per tutti i siti WWW creati. E' possibile quindi rimuovere o aggiungere gruppi/utenti in base al proprio ambiente.

Proprietà Performance

“Performance tuning”

E’ necessario impostare il numero di connessioni giornaliere che si pensa di avere per il proprio sito.

Se il numero è impostato leggermente più alto rispetto all’attuale numero di connessioni allora la prestazioni del web server sono elevate altrimenti se il numero è molto più grande rispetto agli attuali tentativi di connessione può esserci uno diminuzione della memoria riducendo le prestazioni del server.

“Enable bandwidth throttling”

Questa opzione selezionata limita la larghezza di banda utilizzata dal sito Web oltrepassando l’opzione di limitare la banda a livello di computer.

“Enable process throttling”

Selezionando questa opzione si limita la percentuale del tempo di elaborazione della CPU in base alla percentuale dichiarata. Se l’opzione Enforce Limits non è selezionata l’unica conseguenza è che viene scritto un evento nel log degli eventi quando il limite della CPU viene superato. Selezionando l’opzione si incorre alla conseguenza di oltrepassare il limite.

Proprietà ISAPI Filters

L’ambiente di IIS offre numerosi strumenti per lo sviluppo di applicazioni personalizzate.

ISAPI (Internet Server Application Programmer Interface) costituisce l’unità di riferimento principale per le applicazioni personalizzate.

Le applicazioni ISAPI rientrano in due categorie che sono filtri e estensioni. I filtri ISAPI sono DLL (Dynamic Link Libraries) o eseguibili scaricabili in memoria all’avvio del servizio WWW. Anche le estensioni sono DLL o eseguibili ma vengono caricate su richiesta ed eseguite in risposta alle richieste del client.

Proprietà Home Directory

Ogni sito Web e ogni sito FTP devono includere una home directory poichè rappresenta la posizione centrale delle pagine pubblicate. Tale directory contiene una home page con collegamenti ad altre pagine nel sito.

“Reindirizzamento di richieste”

Se la directory che si desidera utilizzare si trova sul computer locale selezionare l’opzione “A Directory Located On This Computer”.

Se la directory si trova su un altro computer ed è accessibile come cartella condivisa selezionare “A Share Located On Another Computer”.

Se si desidera reindirizzare gli utenti a un altro URL selezionare “A Redirection To a URL”.

L’opzione "Log Visits" assicura la registrazione delle visite abilitata. Le autorizzazioni Lettura, Scrittura e Directory Browsing per ragioni di sicurezza è meglio non impostarle.

Le loro caratteristiche sono:

Read Setting: attribuisce le autorizzazioni in lettura ai visitatori del sito

Write Setting: attribuisce le autorizzazioni in scrittura dove vengono installati i siti

Directory Browsing: da all'utente l'abilità nel vedere un elenco di tutti i file in una particolare directory.

L’opzione "Execute Permissions" è consigliato lasciarla su None. Questo evita che i visitatori siano abilitati nel lanciare scripts o eseguibili di default.

Proprietà Documents

Un client si connette a un sito Web. Il server Web è configurato attraverso l'invio di un file Home Page che rappresenta il punto di ingresso dell'utente al sito.

Normalmente i file sono default.htm e default.asp.

Proprietà Directory Security

Edit dei Metodi di Autenticazione

Anonymous access and authentication control

I metodi di autenticazione utilizzati sui siti web sono molto importanti per identificare gli utenti e controllare l’accesso a file specifici, directory e scripts o eseguibili.

Il metodo di autenticazione può cambiare a seconda se viene utilizzato in Internet o Intranet. Selezionando Edit nell'area "Accesso anonimo e controllo di autenticazione" è possibile personalizzare 4 metodi di autenticazione.

L'opzione Accesso anonimo abilitata concede o nega l'accesso a tutti i siti sul server di default. Se il sito sarà utilizzato in un Intranet e la rete interna si basa su Windows l'accesso anonimo dovrebbe essere disabilitato. Se il sito è accessibile ad Internet e la maggiorparte dei siti Web permetteranno l'accesso anonimo, allora ha un senso mantenere l'opzione abilitata.

In aggiunta all'accesso anonimo ci sono altri 3 metodi di autenticazione:

- Autenticazione di Base: nome utente e password attraversano la rete Internet in "ClearText". Questo permette ad un intrusore di catturare validi account e tentare di entrare nel sito.

- Digest: simile alla Basic ma invece di usare ClearText viene utilizzato un algoritmo di Hash delle password in modo da fornire maggiore sicurezza di autenticazione. L'autenticazione Digest è possibile utilizzarla solamente con i browser compatibili con HTTP 1.1 (da IE 5).

Il server IIS 5 deve essere in Windows 2000 e le password utente immagazzinate in un file testo sul domain controller.

- Autenticazione Integrata in Windows: stesso metodo di Windows NT Challenge / Response in IIS 4.0. Puoò essere utilizzata solamente con IExplorer.

IP address and domain name restrictions

Questa opzione permette all’amministratore di specificare chi può accedere al proprio sito WWW in base all’indirizzo IP. Le opzioni nella seguente schermata sono 2

Granted Access

Permette a tutti i computer di accedere alle risorse eccetto a quelli identificati ed elencati da indirizzo IP.

Denied Access

Restringe l’accesso alle risorse solamente ai computer con indirizzo IP elencato. Le richieste di altri computer vengono negate.

Quando si specificano gli indirizzi IP dei computer è possibile decidere se configurare l’opzione Single Computer (solamente un indirizzo IP), Group of Computers (gli amministratori specificano network ID e Subnet Mask) o nome di dominio (appare un messaggio che avverte la possibile diminuzione di performance nella rete).

Secure Communications

Questa opzione è utilizzata per configurare le caratteristiche di SSL disponibili sul Web Server, abilitando la cifratura di tutto il traffico tra client e server. Una volta impostato i visitatori devono utilizzare un browser capace di supportare comunicazioni sicure.

Se il sistema richiede l’utilizzo di SSL per comunicazioni sicure tra i client e il server, è necessario installare un server certificato e il client deve avere un browser che possa supportare comunicazioni sicure. Un certificato viene creato da un’autorità di certificazione attraverso l’uso della crittografia a chiave pubblica.

La creazione di un certificato avviene tramite il tasto Server Certificate presente in Directory Security.

Attraverso il Wizard è possibile:

-   creare un nuovo certificato

-   assegnare un certificato esistente

-   importare un certificato da un file di backup “Key Manager”

-   rinnovare l’attuale certificato

-   rimuovere l’attuale certificato

-   sostituire l’attuale certificato

Una volta che il sito è stato configurato per l’utilizzo dei certificati, è necessario attivare la sicurezza SSL sul server utilizzando ISM per il sito che richiede l’accesso sicuro.

I sviluppatori di siti web possono utilizzare scripts e certificati lato client per controllare l’accesso al sito. IIS supporta il mapping dei certificati client su specifici account utente Windows 2000.

Ciò permette di controllare ulteriormente il contenuto pubblicato sul web.

Proprietà Custom Errors

IIS genera messaggi di errore HTTP quando si verifica un errore sul server Web. Di solito tali errori fanno seguito a richieste non valide del client tipo problemi di autenticazione o del server stesso.

Attraverso le proprietà “Custom Errors” è possibile personalizzare la modalità di gestione dell’errore http che viene trasmesso ai client quando il Web Server lo genera.

Gli amministratori possono utilizzare errori generici http 1.1, errori dettagliati personalizzati che fornisce IIS o creare il proprio file di errore personalizzato.

Codici di stato e Messaggi di errore

Un utente si connette al server per richiedere un file. Il server genera un codice di stato.

Un codice di stato è un numero a tre cifre con possibile suffisso numerico. La prima cifra del codice indica la classe del codice mentre le due cifre successive indicano la categoria e l’errore specifico.

Classi generali dei codici di stato

Classe Codice Descrizione

1XX Prosecuzione dell’operazione/modifica del protocollo

2XX Operazione riuscita

3XX Reindirizzamento

4XX Errore client / problema

5XX Errore server

Come illustrato nella tabella i codici di stato che cominciano con 1,2,3 sono comuni e in genere non segnalano un problema. I codici che cominciano con 4 o 5 segnalano un errore e un potenziale problema.

Listato dei messaggi di errore http standard supportati da IIS.

Codice di Errore Testo dell’errore

400 Richiesta non valida

401.1 Accesso negato

401.2 Accesso negato dovuto alla configurazione del server

401.3 Accesso per ACL (Access Control List)

401.4 Autorizzazione negata per filtro

401.5 Autorizzazione negata per l’applicazione ISAPI/CGI

403.1 Accesso in esecuzione negato

403.2 Accesso in lettura negato

403.3 Accesso in scrittura negato

403.4 SSL richiesto

403.5 SSL 128 richiesto

403.6 Indirizzo IP negato

403.7 Certificato client richiesto

403.8 Accesso al sito negato

403.9 Numero utenti eccessivo

403.10 Configurazione non valida

403.11 Password modificata

403.12 Accesso negato Mapper

403.13 Certificato client revocato

403.14 Visualizzazione directory negata

403.15 CAL (Client Access Licenses) superate

403.16 Certificato Client non attendibile o non valido

403.17 Certificato Client scaduto o non ancora valido

404 Non trovato

404.1 Sito non trovato

405 Metodo non consentito

406 Non accettabile

407 Autenticazione Proxy richiesta

412   Condizione preliminare non soddisfatta

414 Dimensione dell’URL della richiesta eccessive

500   Errore interno del server

501.12 Riavvio applicazione

501.13 Server Occupato

500.15 Richieste relative al file global.asa non consentite

500-100.ASP Errore ASP

501   Implementazione non eseguita

502   Gateway non valido