Web Server: IIS e Apache. Nicola Gessa



Documenti analoghi
Web Server. Corso di Applicazioni Telematiche. A.A Lezione n.5 Prof. Roberto Canonico

Elementi di Sicurezza e Privatezza Laboratorio 4. Chiara Braghin. Caso di studio: Apache Web Server

Elementi di Sicurezza e Privatezza Laboratorio 3 - Web Server Apache (1) Chiara Braghin chiara.braghin@unimi.it!

Sicurezza del Web server

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

CONFIGURAZIONE SERVER APACHE (XAMPP): ACCESSO SICURO A DIRECTORY DEL FILE SYSTEM.

Apache Webserver. Piccola introduzione all'installazione ed alla configurazione, a cura di: Alessandro Gervaso

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

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

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Il Web Server e il protocollo HTTP

Informatica per la comunicazione" - lezione 13 -

Application Server per sviluppare applicazioni Java Enterprise

Configurazione di sicurezza di XAMPP

Il web server Apache Lezione n. 3. Introduzione

Software Servizi Web UOGA

Xampp. Valeriano Maysonnave - A.A. 2014/2015 -

Configurazione sicura di un server web Apache in ambiente Linux

Siti web centrati sui dati (Data-centric web applications)

e/fiscali - Rel e/fiscali Installazione

Client - Server. Client Web: il BROWSER

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

Il Protocollo HTTP e la programmazione di estensioni Web

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

Applicazioni web centrati sui dati (Data-centric web applications)

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

VntRAS Communication Suite

Installazione di GFI WebMonitor

19. LA PROGRAMMAZIONE LATO SERVER

Overview su Online Certificate Status Protocol (OCSP)

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Lezione 1 Introduzione

Installazione di Moodle. Preparato per: Gruppo A, Piattaforma di E - Learning Preparato da: Cinzia Compagnone, Vittorio Saettone

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Lezione II: Web server e ambiente di lavoro

Corso basi di dati Installazione e gestione di PWS

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

Utilizzo del server LDAP locale per la sincronizzazione della base utenti e della GAL

La sicurezza nel Web

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

Corso di Web programming Modulo T3 A2 - Web server

REOL-Services Quick Reference Ver. 1.1 Tecno Press Srl. 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Software di gestione della stampante

filrbox Guida all uso dell applicazione DESKTOP Pag. 1 di 27

Installazione LAMP. Installare un server lamp su Linux Ubuntu. Per installare un server LAMP in Ubuntu come prima cosa apriamo il terminale:

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Creare connessioni cifrate con stunnel

UTILIZZO DELLA RETE WIRELESS DIPARTIMENTALE

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

crazybrain snc Presentazione_VisualFTP.pdf Pag. 1 VisualFTP Presentazione del prodotto Web partner:

Installazione, configurazione e utilizzo di IIS

Servizio di Posta elettronica Certificata (PEC)

Bibliografia: Utenti e sessioni

TeamPortal. Servizi integrati con ambienti Gestionali

Argomenti Percorso 7 Apache HTTP

Integrazione InfiniteCRM - MailUp

Manuale LiveBox WEB ADMIN.

Lezione n 1! Introduzione"

Guida alla registrazione on-line di un DataLogger

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Network Services Location Manager. Guida per amministratori di rete

Nota Tecnica UBIQUITY 5 TN0019. Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity.

Sicurezza dei dati in EGRID

Online Help StruxureWare Data Center Expert

ARCHIVIA PLUS - DOCPORTAL

Installazione & Configurazione Php e MySQL su Mac Os X. Php

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

Corso basi di dati Introduzione alle ASP

1. Manuale d uso per l utilizzo della WebMail PEC e del client di posta tradizionale

Utilizzo di Certificati SSL e relative implicazioni

Servizio di Posta elettronica Certificata (PEC)

Servizio di Posta elettronica Certificata (PEC)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Collegamento remoto vending machines by do-dots

Cosa è Tower. Sistema di autenticazione per il controllo degli accessi a reti wireless. struttura scalabile. permette la nomadicità degli utenti

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Protocolli e architetture per WIS

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

Manuale Utente MyFastPage

Servizio di Posta elettronica Certificata (PEC)

FAQ TeamPortal - DVD DEMO

E-Post Office Manuale utente

Sommario. 1. Cos è SecureDrive Caratteristiche Privacy dei dati: SecureVault... 4

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

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT

Lezione 9. Applicazioni tradizionali

01/05/2013 Istruzioni per l installazione

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

JNDI. Massimo Merro Programmazione di Rete 214 / 229

GateManager. 1 Indice. tecnico@gate-manager.it

EXPLOit Content Management Data Base per documenti SGML/XML

Siti interattivi e dinamici. in poche pagine

CitySoftware PROTOCOLLO. Info-Mark srl

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

SERVICE BROWSER. Versione 1.0

Capitolo 4 Pianificazione e Sviluppo di Web Part

PROF. Filippo CAPUANI. Accesso Remoto

Transcript:

Web Server: IIS e Apache

In questa lezione: ncos è e come funziona Internet Information Service ncome configurare Intenet Information Service ncos è e come funziona Apache ncome configurare Apache

Internet Information Service Con particolare riferimento alla versione 4.*

Introduzione a IIS Una volta installato presenta la seguente struttura : u \Inetpub u \systemroot\help\iishelp u \systemroot\system32\inetsrv Definizione IIS: Internet Information Services è il server web di Microsoft per sistemi Windows. IIS crea anche un sito web di default al momento dell installazione in \Inetpub\wwwroot dove si possono inserire delle pagine web

Architettura di IIS IIS è parte integrante della architettura Windows DNA (Distribuited internet Application Architetture), che definisce un framework per lo sviluppo e la distribuzione di applicazioni web e che comprende servizi quali u Active Server Pages u Componenti COM ( Component Object Model) u Windows security services u Microsoft Data Acces Component COM Script ISAPI Internet Information Service Sistema Operativo

IIS request Processing u Pagina HTML: ritorna la pagina immediatamente Quando IIS Riceve una richiesta, determina dall URL se riguarda un documento statico (HTML) o dinamico u File corrispondenti a determinate estensioni ISAPI:carica la DLL appropriata con cui gestire la richiesta ( ad esempio le richieste di file.asp vengono dirette al file APS.dll) u Applicazioni CGI : viene creato un nuovo processo a cui passare tutti i parametri attraverso l ambiente di gestione del processo

Configurare IIS nesistono tre livelli gerarchici di configurazione: nla configurazione di ciascun sito viene registrato in un metabase, che assume valori di default al momento dell installazione. nogni sito web in IIS ha associato un insieme di classi per gestire le proprietà del sito. u Master: fissa una configurazione comune a tutti i siti web u Site by site: fissa una configurazione specifica per un sito u File by file: fissa una configurazione specifica per un file nla configurazione di IIS si appoggia sulla configurazione del sistema

Organizzazione dei contenuti I contenuti di un sito web può essere distribuito iin due modi: 1. Fissando una directory di root locale e includendo quindi tutte le sottodirectory 2. Associando al sito un certo numero di Virtual Directory. Sono directory non necessariamente contenute fisicamente in IIS ma che fanno parte dell insieme dei contenuti associati ad un sito web. Possono essere di due tipi. 1. Directory locali, ma non dipendenti dalla directory di root 2. Directory remote identificate da URL Proprietà delle Virtual Directory Flessibilità Scalabilità Prestazione ridotte

Configurare IIS Il web server può essere configurato tramite la console Internet Service Manager che definisce 9 sezioni principali u Web site u Operators u Performance u Isapi Filter u Home Directory u Documents u Directory Security u HTTP Headers u Custom errors

Web Site nidentificazione Sito Web del ncontrollo sul numero delle connessioni permesse ncontrollo dei meccanismi di logging del sito u Come creare i log u Quali formati per i file di log

Operators Consente di assegnare i privilegi di amministrazione ad utenti del sistema

Performance nprevisione del numero Consente di migliorare le prestazioni del sito Web tramite la cinfigurazione di alcuni parametri di connessioni giornaliere al sito ncontrollo dalla bandwidth disponibile alle connessioni del sito ngestione connessioni persistenti di HTTP

ISAPI Filters Permette la configurazione dei filtri ISAPI ( Internet Server Application Programming Interface). I filtri sono associati a determinate estensioni dei file e attivati al momento della richiesta di file con tali estensioni npossibilità di nlista dei filtri ISAPI con stato (Loaded, Unloaded, Disabled), nome, priorità (High, Medium, Low aggiungere e rimuovere i filtri o modificarne lo stato nmodifica delle priorità dei filtri

Home Directory nlocazione Consente di configurare le caratteristiche della directory principale del sito home directory della nspecifica del Path della home directory ngestione dei permessi di accesso e della navigazione dei contenuti ngestione applicazioni associate directory delle alla

Documents Consente di specificare i documenti di default e gli attach delle pagine web ndefinisce i documenti di default da inviare nspecifica il footer da inserire automaticamente nella pagina

Directory Security ncreazione nconfigurazione dell accesso anonimo e e i metodi per il controllo dell autenticazione della richiesta per ricevere un certificato digitale SSL ngestione delle politiche di accesso u granted access u denied access

Anonymous Access and Authentication Control Metodi di configurazione per l accesso al server nallow Anonymous Access: consente l accesso al server a utenti non riconosciuti (anonymous user), creando una connessione anonima e assegnando loro un account anonimo. L account usato è un account valido per il sistema. nbasic Authentication: esegue un riconoscimento dell utente che vuole accedere al server tramite la richiesta di login e password trasmessi in chiaro sulla connessione. nwindows NT Challenge/Response: meccanismo di autenticazione basato sullo scambio non in chiaro di login e password che richiede l uso di Microsoft Internet Explorer versione 2.0 o successiva

Cosa è un certificato? n n n n n n I certificati contengono chiavi utilizzate per criptare le connessioni I certificati sono una forma di identificazione digitale che consente ai Web server a ai client l autenticazione prima di stabilire una connessione e comprende le chiavi pubbliche I certificati sono parte del protocollo SSL per l utilizzo di connessioni sicure: per sfruttare connessioni SSL un Web server deve ottenere ed installare un certificato I certificati possono essere essere adottati sia dal client che dal server solo con SSL 3.0 I certificati sono rilasciati da organizzazioni per la certificazione che garantiscono sulle informazioni contenute nel certificato I certificati sono utilizzabili solo dal sito a cui sono associati

Gestione dei certificati u si lancia il tool di IIS che richiede l inserimento delle informazioni da includere nel certificato. Per installare una connessione SSL sul un sito, si deve creare un certificato che garantisca l identità del sito. IIS mette a disposizione una procedura per la creazione della richiesta di certificato u questo tool genera un codice criptato che rappresenta la richiesta da inoltrare ad un ente certificatore per ottenere il certificato vero e proprio. u ottenuta questa richiesta, ci si collega ad un sito che fornisca i certificati (www.instantssl.com) u si spedisce via form la richiesta criptata u si riceve per posta il certificato vero e proprio u In seguito IIS permete di installare il certificato ricevuto, di modificarlo, cambiarlo ecc. e abilitare la connessione SSL

Utilizzo dei certificati n n n n Il browser cerca di stabilire una connessione sicura (le pagine si richiamano con https://) Il server invia il suo certificato con la chiave pubblica Il browser genera una chiave di sessione e la cifra utilizzando la chiave pubblica del server e gliela invia Utilizzando la sua chiave privata il server decodifica la chiave di sessione e il canale è così stabilito. n Server e browser comunicano usando la chiave di sessione

HTTP Headers Consente di creare specifici header HTTP da spedire al browser n Gestione della scadenza delle pagine n Creazione di custom HTTP Header n Classificazione via PICS (secondo le categorie ICRA) dei contenuti del sito n Gestione dell associazione ai file dei tipi MIME (Multipurpose Internet Mail Extension)

Custom Error nlista dei messaggi restituiti al browser in caso di errore HTTP npersonalizzazione o redirezione degli errori HTTP

Apache Con particolare riferimento alle versioni 1.3 (attualmente la più diffusa) e 2.0 (recentemente rilasciata)

Apache HTTP Server n Apache viene sviluppato e aggiornato per sistemi operativi come UNIX e Windows n Apache HTTP Server è il web server HTTP della Apache Software Foundation n Apache è open-source n Apache è dal 1996 il web server più diffuso in Internet (nel 2002 il 63% dei siti web usavano Apache)

Compilazione e installazione per sistemi Unix-like ndownload: u http://www.apache.org/dist/httpd/httpd-2_0_nn.tar.gz u http://httpd.apache.org/download.cgi: lista di siti mirror per il download nestrazione u gzip d httpd-2_0_nn.tar.gz u tar xvf httpd-2_0_nn.tar nconfigurazione del sistema u environment variables u pathnames u moduli ncompilazione necessario un compilatore ansi C (es. GCC) ninstallazione nconfigurazione parametri di Apache nesecuzione

Starting Apache nin Unix il programma httpd viene eseguito in background come demone che gestisce le richieste nil programma httpd può essere eseguito tramite lo script apachectl, che configura alcune variabili di ambiente dipendenti dal sistema operativo necessarie al funzionamento del server. nlo script apachectl permette il controllo del ciclo di vita del web server u start, stop,restart,graceful restart nhttpd legge il file di configurazione httpd.conf nper lanciare il demone httpd all avvio del sistema si deve aggiungere una chiamata allo script apachectl ai file di startup. Questo fa eseguire Apache come root.

Modularità di Apache Apache è un server modulare: le sue funzionalità sono rese disponibili tramite dei moduli che possono essere aggiunti o sottratti al server sfruttando il modulo mod_so nsolo le funzionalità di base sono incluse nel core Server nnel processo di configurazione si possono scegliere i moduli da aggiungere al server nalcuni moduli sono inclusi per default, gli altri devono essere esplicitamente aggiunti ni moduli possono essere : u Compilati staticamente nel web server u Aggiunti dinamicamente nel file httpd.conf sfruttando il supporto DSO (Dynamic Shared Object) nesempi: mod_auth ( autenticazione utenti usando file di testo), mod_cgi ( esecuzion di moduli cgi), mod_isapi (estensione ISAPi per Apache sotto Windows)

Multi Processing Modules (MPMs) n Apache fornisce un insieme di moduli per la gestione di operazioni quali il binding, accept delle richieste, gestione dei processi / threads per gestire le connessioni e consente a n Apache è stato progettato per essere flessibile su ogni tipo di piattaforma e con ogni configurazione d ambiente u sistemi operativi differenti di fornire moduli MPM appropriati per ottenere maggiore efficienza u agli amministratori, in base alle esigenza del proprio web server di applicare politiche diverse n Il modulo MPM deve essere compilato nel server ( sfruttando l ottimizzazione di alcuni compilatori nella gestione dei threads, se sono usati) n Solo un modulo MPM per volta può esserecaricato nel server n modili MPM sono: mpm_winnt, prefork,mpmt_os2

Esempio di configurazione $>CC=$ pgcc \.configure --prefix= /sw/pkg/apache \ --enable-cgi --enable-rewrite=shared $>make $>make install $>apachectl start

File di configurazione n Il file di configurazione principale è httpd.conf, ma se ne possono creare di nuovi n Apache viene configurato tramite delle direttive riportate i file di testo n La configurazione può essere aggiornata solo riavviando Apache n La gestione dei tipi MIME è gestita nel file mime.types n Le direttive si applicano all intero server, a meno di specificare lo scope, se consentito, in cui sono valide ( es. usando <Directory> per definire la directory in cui applicarla) n Apache consente di decentralizzare la configurazione dell albero delle directory usando i file.htaccess, le cui direttive vengono applicate solo al sotto albero in cui il file.htaccess è presente.

Uso delle direttive nei file di configurazione nle direttive nei file di configurazione possono essere applicate all intero server, a directory, a file, host o URL npossono essere valutate solo avvio del server (es. <If Module> oppure ad ogni richiesta ricevuta npossono riguardare la struttura del filesystem (es. <Directory> ) oppure la struttura del sito (Es. location) nalcune direttive consentono l uso di espressioni regolari secondo la sintassi Perl (es. DirectoryMatch) ES: <Directory /home/rossi/public_html Options Indexes </Directory>

Autenticazione npuò essere gestita nel file httpd.conf all interno di una sezione <Directory> o nel file.htaccess AuthName Restricted Area nrichiede la creazione di un file delle password (htpasswd -c /usr/locl/apache/passwd/password) utente. Utilizzando il modulo mod_auth_dbm le utenze possono essere gestite tramite un database nconfigurazione degli accessi inserendo le seguenti direttive nei file di configurazione: AuthType Basic AuthUserFile /usr/locl/apahce/passwd/password require user nomeutente nl abilitazione all accesso può essere anche assegnato in base all host name o all host address della macchina che richiede il documento allow from 205.252.46.165

Autenticazione n AuthType Basic Seleziona il metodo di autenticazione utilizzato Basic è implementato dal modolo mod_auth Digest è implementato dal modulomod_auth_digest n AuthName Restricted Area identifica un nome per l area a cui accedere per consentire il riutilizzo delle passord al client n AuthUserFile /usr/locl/apache/passwd/password specifica il file contenente le password n require user nomeutente specifica il nome dell utente abilitato all accesso. Si possono anche creare dei gruppi per consentire l accesso a più utenti

SSL con APACHE n la Apache Software Foundation non include nel progetto Apache Httpd il modulo per il supporto di SSL n esistono due progetti open source che si propongono di garantire il supporto di SSL :mod ssl e Apache-SSL, ed entrambi gestiscono le connessioni sicure appoggiandosi alle librerie del progetto OpenSSL n esistono altre implementazioni commerciali di moduli SSL per Apache:"Covalent Raven SSL Module For Apache, la distribuzione IBM di Apache "IBM Http Server".

Direttive per l uso di SSL nsslsessioncache: imposta il tipo di memorizzazione della cache nsslengine è la direttiva che abilita o disabilita le connessioni SSL nsslprotocol controlla la versione del protocollo che verrà usata durante le transazioni sicure. Es. SSLProtocol All -SSLv2 nsslcertificatefile e SSLCertificateKeyFile contengono banalmente il path ai file certificato e chiave del server nsslrequiressl :usata nelle sezioni "<directory>" ci consente di rendere accessibili alcune aree del nostro server solo attraverso connessioni sicure nsslciphersuite permette di configurare gli algoritmi crittografici che il client può usare quando viene stabilita la connessione

Variabili d ambiente nle direttive SetEnv, SetEnvIf permettono di definire le variabili d ambiente, specificando eventualmente determinate condizioni napache utilizza variabili d ambiente per gestire operazione come il log o il controllo degli accessi e per comunicare con programmi esterni come script CGI nle variabili possono essere utilizzate all interno delle direttive per regolare operazioni del server

Utilizzo di script CGI con Apache u Dichiarare il permesso di eseguire gli script all interno di determinate directory <Directory /usr/local/apache/htdocs/somedir> nil CGI (Common Gateway Interface) fornisce al web server un meccanismo per interagire con programmi esterni nella creazione dei contenuti attraverso l uso di programmi (script) CGI. nci sono due metodi per configurare Apache nell utilizzi di CGI. u Definire la directory che contiene gli script, i quali devono avere i diritti di esecuzione ScriptAlias /cgi-bin /usr/local/apache/cgi-bin Options +ExecCGI </Directory> e specificare l estensione dei file da eseguire con AddHandler cgi-script cgi pl

n Gestione degli utenti Apache consente in vari modi di definire per ogni utente del sistema una directory nel quale rendere disponibili sul web i propri documenti, immagini ecc. UserDir public_html UserDir /var/html UserDir /var/www/*/public_html n Si possono selezionare gli utenti che possono usare tale funzionalità n Utilizzando la direttiva <Directory /home/*/cgi-bin/> Options ExecCGI SetHandler cgi-script </Directory> si abilitano gli utenti all uso di script CGI personali

URL Rewriting Apache fornisce con il modulo mod_rewrite una tecnica per manipolare le URL richieste in modo tale da consentirne una elaborazione interna o una redirezione esterna Tale tecnica nutilizza le espressioni regolari npermette di specificare un numero illimitato di regole di riscrittura nconsente di specificare un numero illimitato di condizioni per la riscrittura npuò essere adattata a parametri come variabili d ambiente, header HTTP, time stamp npuò operare sia nel contesto del web-server (nel file httpd.conf) che in quello di una directory (nel.htaccess), ma con differenti prestazioni

URL Rewriting:esempi nspostare le home su un webserver differente RewriteEngine on RewriteRule ^/~(.+) http://newserver/~$1 [R,L] ncambiare la struttura delle directory RewriteEngine on RewriteRule ^/~(([a-z][a-z0-9]+)(.*) /home/$2/$1/.www$3 nmodificare i contenuti i base all ora del giorno RewriteEngine on RewriteCond %{TIME_HOUR}%{TIME_MIN} >0700 RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900 RewriteRule ^home\.html$ home_day.html RewriteRule ^home\.html$ home_night.html

Riferimenti nhttp://www.microsoft.com/technet/default.asp nhttp://msdn.microsoft.com/ nhttp://httpd.apache.org nwww.openssl.org