Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Corso di Basi di Dati e Laboratorio




                           Apache
              Alfio Ferrara - Stefano Montanelli...
Architettura

• Componenti principali
   – Inizializzazione e configurazione
   – Parser delle richieste HTTP
   – Allocaz...
Configurazione

• Avviene editando il file httpd.conf
• Le opzioni di configurazione sono definite
  tramite direttive
• P...
Moduli

Direttive per la gestione dei moduli:
• LoadModule nomemodulo nomefile
   – Carica il modulo nomemodulo istituendo...
Direttive
• <Files filename> … </Files>
   – Specifica un insieme di direttive da applicare al file
     filename
• <Files...
BrowserMatch

• BrowserMatch riconosce il client che
  effettua la chiamata sulla base del campo
  user-agent della richie...
Esempio
•    SetEnvIf Request_URI ^/manual/(de|en|it)/ prefLang=$1
•    SetEnvIf Request_URI quot;.gif$quot; object_is_ima...
Autenticazione

• Meccanismo base per l’autenticazione:
   – Il server riceve una richiesta per una risorsa
     protetta
...
Direttiva

• La direttiva (directory) che specifica
  l’accesso per una data cartella è composta
  dagli elementi seguenti...
Combinare le direttive

• L’istruzione order permette di definire un
  ordine di precedenza nell’esaudire le
  direttive s...
Upcoming SlideShare
Loading in …5
×

Laboratorio Di Basi Di Dati 08 Il Web Server Apache

1,901 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Laboratorio Di Basi Di Dati 08 Il Web Server Apache

  1. 1. Corso di Basi di Dati e Laboratorio Apache Alfio Ferrara - Stefano Montanelli A.A. 2005/2006 Basi di Dati e Laboratorio 1 Apache • Server Web open source • Il progetto ha origine nel 1995 • Apache ha un’architettura modulare e altamente configurabile • http://www.apache.org A.A. 2005/2006 Basi di Dati e Laboratorio 2 Diffusione sul mercato Dicembre 2005 - http://news.netcraft.com 69.97 % (52.025.380) 20.92 % (15.557.786) 2.53 % (1.881.861) 0.79 % (577.384 ) APACHE MICROSOFT JAVA ZEUS A.A. 2005/2006 Basi di Dati e Laboratorio 3 1
  2. 2. Architettura • Componenti principali – Inizializzazione e configurazione – Parser delle richieste HTTP – Allocazione della memoria • Moduli – Autentificazione e sicurezza – Redirezione – Estensioni (supporto ai linguaggi di scripting) A.A. 2005/2006 Basi di Dati e Laboratorio 4 Installazione • In breve… –$ ./configure --prefix=PREFIX –$ make –$ make install –$ PREFIX/bin/apachectl start • Due opzioni importanti: – Perl 5 è richiesto per l’esecuzione di diversi script (apxs). È consigliata l’opzione --with-perl – DSO per il supporto al caricamento dinamico dei moduli A.A. 2005/2006 Basi di Dati e Laboratorio 5 Avvio del server • Il server viene avviato sulla porta specificata (assieme alle altre opzioni di configurazione) nel file httpd.conf • In ambiente UNIX Apache può essere avviato tramite inetd oppure: – /usr/local/apache/bin/httpd, oppure attraverso lo script apachectl • In ambiente Windows l’avvio è analogo a quello degli altri servizi NT A.A. 2005/2006 Basi di Dati e Laboratorio 6 2
  3. 3. Configurazione • Avviene editando il file httpd.conf • Le opzioni di configurazione sono definite tramite direttive • Principali elementi della configurazione: – Variabili d’ambiente – Gestione degli accessi – Comportamento a seguito di specifiche richieste A.A. 2005/2006 Basi di Dati e Laboratorio 7 DSO e moduli • DSO (Dynamic Shared Objects) – Consentono il caricamento dei moduli di Apache a run-time • Sono supportati tramite il modulo mod_so.c che deve essere compilato staticamente con Apache • Il modulo mod_so consente l’uso della direttiva LoadModule nel file di configurazione per il caricamento dei moduli richiesti A.A. 2005/2006 Basi di Dati e Laboratorio 8 Apxs • La gestione dei moduli è stata semplificata attraverso l’utility apxs che permette di generare i DSO • Vantaggi di DSO: – Flessibilità – Estendibilità (ad esempio l’aggiunta del modulo di supporto per PHP) • Svantaggi: – Prestazioni inferiori rispetto alla compilazione statica dei moduli A.A. 2005/2006 Basi di Dati e Laboratorio 9 3
  4. 4. Moduli Direttive per la gestione dei moduli: • LoadModule nomemodulo nomefile – Carica il modulo nomemodulo istituendo un link con il nomefile ad esso associato • E.g., LoadModule dir_module modules/mod_dir.so • <IfModule [!]nomemodulo> … </IfModule> – Esegue un’insieme di direttive solo nel caso che nomemodulo sia caricato (o non caricato) • E.g., <IfModule mod_ssl.c> Include conf/ssl.conf </IfModule> A.A. 2005/2006 Basi di Dati e Laboratorio 10 Direttive • Le direttive istruiscono Apache sulle azioni da intraprendere in risposta ad una richiesta per una specifica risorsa • Vengono utilizzati dei marcatori per definire lo scope di una direttiva • Esempi di direttive: – <Directory> – <DirectoryMatch> – <Files> – <FilesMatch> – <Location> – <LocationMatch> – <VirtualHost> A.A. 2005/2006 Basi di Dati e Laboratorio 11 Direttive • <Directory dirpath> … </Directory> – Specifica un insieme di direttive da applicare alla cartella indicata in dirpath e alle sottocartelle in essa contenute • E.g., <Directory “/var/www/site/unimi/quot;> Allow from dico.unimi.it Options Indexes </Directory> • <DirectoryMatch regexpr> … </ DirectoryMatch> – Specifica un insieme di direttive da applicare alle cartelle che soddisfano l’espressione regolare regexpr • E.g., <DirectoryMatch “^/www/[0-9]{3}quot;> Order allow, deny Allow from dico.unimi.it </DirectoryMatch> A.A. 2005/2006 Basi di Dati e Laboratorio 12 4
  5. 5. Direttive • <Files filename> … </Files> – Specifica un insieme di direttive da applicare al file filename • <FilesMatch regexpr> … </FilesMatch> – Specifica un insieme di direttive da applicare ai files che soddisfano l’espressione regolare regexpr • <Location url> … </Location> – Specifica un insieme di direttive da applicare alle risorse specificate in url • <LocationMatch regexpr> … </LocationMatch> – Specifica un insieme di direttive da applicare alle risorse che soddisfano l’espressione regolare regexpr A.A. 2005/2006 Basi di Dati e Laboratorio 13 Direttive • <VirtualHost addr[:port]> … </ VirtualHost> – Configura un host-virtuale • E.g., <VirtualHost 192.168.0.7:8081> ServerAdmin webmaster@dico.unimi.it DocumentRoot “C:/docs” ServerName webdico:8081 </VirtualHost> A.A. 2005/2006 Basi di Dati e Laboratorio 14 Variabili d’ambiente • Sono utilizzate dal server per registrare informazioni e per condividerle con altre applicazioni (ad esempio con applicazioni CGI) • Le principali direttive per manipolare le variabili d’ambiente sono: – BrowserMatch – PassEnv – RewriteRule – SetEnv – SetEnvIf – UnsetEnv A.A. 2005/2006 Basi di Dati e Laboratorio 15 5
  6. 6. BrowserMatch • BrowserMatch riconosce il client che effettua la chiamata sulla base del campo user-agent della richiesta HTTP – BrowserMatch “Mozilla/2 nokeepalive” – BrowserMatch “RealPlayer 4.0” force-response-1.0 A.A. 2005/2006 Basi di Dati e Laboratorio 16 PassEnv, SetEnv, e UnSetEnv • PassEnv passa ad uno script CGI il valore di una delle variabili d’ambiente – PassEnv SPECIAL_PATH • SetEnv definisce il valore di assegnazione di una variabile d’ambiente – SetEnv SPECIAL_PATH /bin • UnSetEnv rimuove una variabile di ambiente: – UnSetEnv SPECIAL_PATH A.A. 2005/2006 Basi di Dati e Laboratorio 17 SetEnvIf • SetEnvIf definisce il valore di una variabile sulla base degli attributi della richiesta HTTP: – Remote_Host – Remote_Addr – Server_Addr – Request_Method – Request_Protocol – Request_URI A.A. 2005/2006 Basi di Dati e Laboratorio 18 6
  7. 7. Esempio • SetEnvIf Request_URI ^/manual/(de|en|it)/ prefLang=$1 • SetEnvIf Request_URI quot;.gif$quot; object_is_image=gif • SetEnvIf Request_URI quot;.jpg$quot; object_is_image=jpg • SetEnvIf Request_URI quot;.xbm$quot; object_is_image=xbm • Il valore delle variabili prefLang e object_is_image viene definito sulla base della risorsa richiesta tramite HTTP A.A. 2005/2006 Basi di Dati e Laboratorio 19 Controllo dell’accesso • L’accesso alle risorse viene definito sulla base di tre principali criteri: – Authorization – Authentication – Access control A.A. 2005/2006 Basi di Dati e Laboratorio 20 Criteri di accesso • Authentication – Verifica dell’identità del richiedente • Authorization – Verifica dei permessi associati ad un utente autenticato • Access control – Definizione di criteri di accesso generici (ad esempio sulla base dell’IP di provenienza della richiesta) A.A. 2005/2006 Basi di Dati e Laboratorio 21 7
  8. 8. Autenticazione • Meccanismo base per l’autenticazione: – Il server riceve una richiesta per una risorsa protetta – Invia una risposta con header 401 (Authentication required) – Il browser si occupa di chiedere all’utente i dati di autentifica e di memorizzarli per le successive transazioni A.A. 2005/2006 Basi di Dati e Laboratorio 22 Protezione delle risorse • Per creare un semplice meccanismo di protezione delle risorse occorre: – Creare un file contenente una password – Definire una configurazione che utilizzi la password definita A.A. 2005/2006 Basi di Dati e Laboratorio 23 Creazione di una password • htpasswd -c /percorso_accessibile_ad_apache/file username • La password viene crittata e associata ad uno o più utenti attraverso una direttiva • La direttiva specifica la directory o la risorsa a cui si applica la restrizione d’accesso A.A. 2005/2006 Basi di Dati e Laboratorio 24 8
  9. 9. Direttiva • La direttiva (directory) che specifica l’accesso per una data cartella è composta dagli elementi seguenti: – AuthType - tipo di identificazione (basic) – AuthName - nome dell’autentificazione – AuthUserFile - locazione del file delle password – AuthGroupFile - file delle password di un gruppo – Require - caratteristiche richieste per l’autentificazione A.A. 2005/2006 Basi di Dati e Laboratorio 25 Esempio • AuthType Basic • AuthName ”Area ristrettaquot; • AuthUserFile /usr/…passwords • Require user tizio caio • Per applicare un’autentifica ad un ramo del file system visibile al server Web senza modificarne la configurazione è possibile ricorrere al file .htaccess collocato nella directory protetta e contenente la direttiva A.A. 2005/2006 Basi di Dati e Laboratorio 26 Controllo dell’accesso • Le direttive Allow e Deny sono utilizzate per vincolare l’accesso sulla base delle caratteristiche della richiesta • Esempi: – deny from 159.149 – deny from www.dominio.esempio – deny from .com – allow from 127.0.0.1 – allow from islab.dico.unimi.it – allow from unimi.it A.A. 2005/2006 Basi di Dati e Laboratorio 27 9
  10. 10. Combinare le direttive • L’istruzione order permette di definire un ordine di precedenza nell’esaudire le direttive specificate • Esempio: – Order Deny,Allow Deny from all Allow from 127.0.0.1 • Consente solo un accesso locale A.A. 2005/2006 Basi di Dati e Laboratorio 28 Completezza • La direttiva satisfy permette di stabilire se tutte le restrizioni (all) o solo alcune (any) devono essere rispettate • Esempio: – <Directory /usr/local/apache/htdocs/commerce> – AuthType Basic – AuthName intranet – AuthUserFile /www/passwd/users – Require user customer – Allow from internal.com – Satisfy any – </Directory> • Alla cartellla commerce accedono gli utenti in possesso di password o quelli del dominio internal.com A.A. 2005/2006 Basi di Dati e Laboratorio 29 10

×