Sperimentazioni di Sicurezza, A.A. 2009/2010

Slides:



Advertisements
Presentazioni simili
Sperimentazioni di Sicurezza, A.A. 2009/2010
Advertisements

Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
CORSO DI SICUREZZA SU RETI II PROF. A. DE SANTIS ANNO 2006/07 Informatica granata Gruppo 2 ISP Gruppo 3 ISP.
Sperimentazioni di Sicurezza, A.A. 2009/2010 OpenSSL: Introduzione alluso Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer.
Database MySql.
ISA Server 2004 Configurazione di Accessi via VPN
Installazione di Apache 2, PHP5, MySQL 5
Guida rapida all’installazione per tutte le release
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Connessione con MySQL.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
IL NOSTRO LABORATORIO Di INFORMATICA. Nel nostro laboratorio abbiamo 24 postazioni con dei computer di tipo Desktop con queste caratteristiche: Sistema.
IL NOSTRO LABORATORIO Di INFORMATICA. Presentazione Nel nostro laboratorio abbiamo 24 postazioni con dei computer di tipo Desktop con queste caratteristiche:
Sicurezza e Policy in Active Directory
Sicurezza e Policy in Active Directory. Sommario Amministrazione della sicurezza in una rete Windows 2003 Amministrazione della sicurezza in una rete.
Amministrazione di una rete con Active Directory
Amministrazione di una rete con Active Directory.
Amministrazione di una rete con Active Directory
NESSUS.
Ordine dei Dottori Commercialisti e degli Esperti Contabili di Ivrea, Pinerolo, Torino1 effettuate le operazioni di generazione dell'Ambiente di sicurezza.
Uso di openafs Come usare il tool openafs per accedere e gestire i propri files sotto AFS.
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
Corso di Informatica A.A
Utilizzo file.htaccess Consente di impostare laccesso ad una specifica pagina web solo a gli utenti AFS ENEA che hanno il permesso (protetta da login)
Utilizzo file.htaccess generale Consente di impostare laccesso ad una specifica pagina web solo a tutti gli utenti AFS ENEA (protetta da login)
Gruppo ISP1 Commessa tuttipunti.org. Sommario Descrizione commessa Organizzazione del lavoro Lavoro svolto Problematiche di sicurezza Impostazioni di.
Carotenuto Raffaele Distante Federico Picaro Luigi
Prof. Zambetti -Majorana © 2008
TCP_Wrapper Le richieste per un determinato servizio (ad. es. telnet, ftp, rsh, etc.) vengono soddisfatte soltanto se lindirizzo IP del richiedente rientra.
Sistemi Operativi - Introduzione 1 Informazioni utili Per avere una distribuzione linux sul proprio pc: 1.
Pubblicare il sito di joomla sviluppato in locale Attraverso un software di FTP (WS FTP, Filezilla, ecc ) trasferire la cartella di joomla nel sito di.
INSTALLAZIONE IN LOCALE
ASP Lezione 1 Concetti di base. Introduzione ad ASP ASP (che è la sigla di Active Server Pages) è un ambiente di programmazione per le pagine web. La.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Corso di PHP.
La sicurezza può essere fornita in ciascuno degli strati: applicazione, trasporto, rete. Quando la sicurezza è fornita per uno specifico protocollo dello.
1 Installazione da rete Introduzione Configurazione del server NFS Cosa serve sul client Configurazione kickstart.
Modulo 7 – reti informatiche u.d. 1 (syllabus – )
Guida IIS 6 A cura di Nicola Del Re.
Riservato Cisco 1 © 2010 Cisco e/o i relativi affiliati. Tutti i diritti sono riservati.
Centro di Assistenza Multicanale (C.A.M.) di Cagliari
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Maria Vittoria Avolio Laurea.
Creare pagine web Xhtlm. Struttura di una pagina.
Un problema importante
Il Server web Laboratorio di Progettazione Web AA 2007/2008
SIBA Days 2009 – III Edizione Il Servizio di accesso remoto alle risorse informative elettroniche Domenico Lucarella Coordinamento SIBA Università del.
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,
Backup and Migrate, Captcha ReCaptcha e Spamicide Docente: Simone Zambenedetti. Moduli per la Sicurezza.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
Configurazione di una rete Windows
Amministrazione della rete: web server Apache
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
FTP File Transfer Protocol
Realizzazione Sito Web
Fabrizio Felici LAMP workshop GROsseto Linux Users Group.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Sicurezza II, A.A. 2011/2012 OpenID Speaker: André Panisson, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera,
MySQL Database Management System
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Certificati e VPN.
Reti di calcolatori e sicurezza “Configurare il web-server Apache” a cura di Luca Sozio.
Corso WEB DESIGN Aprile – Maggio C M S (Content Management System)
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
La gestione della rete e dei server. Lista delle attività  Organizzare la rete  Configurare i servizi di base  Creare gli utenti e i gruppi  Condividere.
Web server.
WebServer 12 luglio
Transcript della presentazione:

Sperimentazioni di Sicurezza, A.A. 2009/2010 Apache e HTTPS Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera, 185 – 10149, Torino, Italy aiello@di.unito.it Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Apache HTTP server Server web open-source e multipiattaforma Versione 1.0 rilasciata nel 1995 A partire dal 1996 diventa il web server più popolare al mondo Utilizzato solitamente in combinazione con PHP e MySQL Sperimentazioni di Sicurezza, A.A. 2009/2010

Download e installazione http://httpd.apache.org/ http://archive.apache.org/dist/httpd/ Scaricare la versione 2.2.8 Ai nostri scopi è necessario anche il pacchetto OpenSSL (versione 0.9.7m), che dovete estrarre nella vostra HOME Create una cartella di nome “apache” nella vostra HOME Eseguite i passi di configure, make e make install ./configure --enable-module=SO --enable-ssl --prefix=$HOME/apache --with-ssl=$HOME/openssl-0.9.7m make make install Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Librerie necessarie Per il corretto funzionamento dello strato SSL è necessario disporre di alcune librerie Copiare nella cartella lib i seguenti files /usr/sfw/lib/libcrypto.so.0.9.7 /usr/sfw/lib/libssl.so.0.9.7 Ora è possibile avviare il server Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Avvio del demone http Il file apache/bin/apachectl serve per avviare o interrompere il demone di Apache (httpd) apachectl start / restart apachectl stop Inizialmente non si riuscirà a lanciare il comando, perché non si dispone dei permessi per avviare un demone in ascolto sulla porta di default per http (80) Modificare il file di configurazione conf/httpd.conf Listen 8080 ServerName dijkstraXY@educ.di.unito.it Il comando ps auxw | grep httpd visualizza tutti i processi relativi al demone http Per controllare la correttezza della sintassi dei file di configurazione, eseguire httpd -t Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Una prima pagina web Nella directory htdocs risiedono i file html che vogliamo rendere pubblici Editare il file htdocs/index.html a piacimento Da browser, accedere all’indirizzo http://localhost:8080/index.html Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 File httpd.conf conf/httpd.conf è il file di configurazione principale di Apache Contiene un insieme di direttive in plain text Le modifiche al file vengono percepite solo al riavvio del server Il carattere # è usato per commentare È possibile specificare delle direttive all’interno di specifici blocchi <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch>, <VirtualHost>, … <Directory /usr/local/httpd/docs> direttive </Directory> <Directory "^/www/.*/[0-9]{3}"> direttive </Directory> È anche possibile annidare i blocchi di direttive Le direttive top level si riferiscono all’intero server Sperimentazioni di Sicurezza, A.A. 2009/2010

File httpd.conf: direttive globali ServerRoot path La directory base di Apache Listen port La porta su cui il demone httpd è in ascolto ServerAdmin emailaddress L’indirizzo dell’amministratore del server ServerName URL Il nome di dominio del server Timeout n Tempo di attesa massimo per le richieste (POST, GET) in secondi DefaultType MIMEtype Il tipo MIME di default col quale il server fornisce i suoi file (specificato nel Content-type della HTTP response) Sperimentazioni di Sicurezza, A.A. 2009/2010

Accesso autenticato in chiaro: htpasswd Creare un sottoalbero di htdocs che sia accessibile solo da un ristretto numero di utenti, autenticati tramite id-password È necessario creare un file di password, in una directory non accessibile dall’esterno (e.g. apache/passwd) La creazione viene effettuata tramite il comando htpasswd htpasswd [options] password_file_path username Options: -c : crea un nuovo file -m, -s : cifra tramite MD5 o SHA1 -p : salva la password in plaintext -D : cancella l’utente specificato … htpasswd -c /usr/…/apache/passwd/password SpikeSpiegel Sperimentazioni di Sicurezza, A.A. 2009/2010

Accesso autenticato in chiaro: httpd.conf Per specificare quali directory richiedono l’autenticazione via password è necessario aggiungere delle direttive in httpd.conf <Directory /usr/home/…/apache/htdocs/protected> AuthType Basic AuthName “Bebop access” AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords Require user SpikeSpiegel </Directory> realm autenticazione via password utente autorizzato le password sono memorizzate in un file (default) path al file delle password Sperimentazioni di Sicurezza, A.A. 2009/2010

Accesso autenticato in chiaro: group file Per garantire l’accesso ad un gruppo di utenti si può specificare Require valid-user, oppure creare un file in cui si specificano le identità dei membri autorizzati. Semplice sintassi: GroupName: userName1 userName2 … BebopCrew: SpikeSpiegel JetBlack FayeValentine <Directory /usr/home/…/apache/htdocs/protected> AuthType Basic AuthName “Bebop access” AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords AuthGroupFile /usr/local/apache/passwd/groups Require group BebopCrew </Directory> Sperimentazioni di Sicurezza, A.A. 2009/2010

Restrizione degli accessi: httpd.conf Possono essere specificate differenti limitazioni all’accesso Le clausole Order e Satisfy rendono flessibile la loro combinazione <Directory /usr/home/…/apache/htdocs/protected> AuthType Basic AuthName “Limited access” AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords Require valid-user Order allow, deny Allow from 192.168.1.1 Deny from 192.231.2.2 Satisfy Any </Directory> Sperimentazioni di Sicurezza, A.A. 2009/2010

Configurazione distribuita: .htaccess (1) Tramite httpd.conf si gestisce la configurazione delle direttive in modo centralizzato (i.e.: in un unico file) Alternativamente, è possibile specificare le medesime direttive in diversi file .htaccess (file di configurazione distribuita) posizionati nelle directory di interesse Le direttive sono valide per tutto il sottoalbero a partire dalla directory in cui .htaccess è creato sovrascrive o specifica meglio le direttive di httpd.conf La configurazione distribuita dovrebbe essere usata solo se non si ha accesso al file di configurazione principale Problemi di efficienza (ricerca dei file .htaccess) Problemi di sicurezza (si delega agli utenti la responsabilità di configurazione) Sperimentazioni di Sicurezza, A.A. 2009/2010

Configurazione distribuita: .htaccess (2) Per permettere l’uso dei file di configurazione locale bisogna specificare la direttiva AllowOverride Per conoscere i possibili valori di directive-type, consultare il manuale di Apache Ad esempio le opzioni di autenticazione possono essere specificate: AllowOverride AuthConfig <Directory …> AllowOverride All / None / directive_type </Directory> Sperimentazioni di Sicurezza, A.A. 2009/2010

File httpd.conf: root directory È importante specificare delle direttive molto restrittive per la directory root Permessi di accesso per quei sottoalberi del file system che si desidera rendere accessibili saranno specificati da successivi blocchi <Directory> <Directory /> Options FollowSymLinks AllowOverride None Order deny, allow Deny from all </Directory> <FilesMatch “^\.ht”> Order allow,deny Deny from all Satisfy All </FilesMatch> Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Virtual Hosting Può essere utile utilizzare una unica macchina fisica per ospitare più servizi web. Questa tecnica viene denominata Virtual Hosting Name-based: differenti siti web disponibili presso un unico indirizzo IP Il client invia una richiesta HTTP specificando il nome di dominio desiderato; Apache si occupa di far pervenire la richiesta al servizio giusto IP-based: uno stesso sito è raggiungibile su diversi indirizzi IP Utilizzato per server multi-homed, con un indirizzo IP diverso su ogni interfaccia Vedremo i Virtual Host name-based Sperimentazioni di Sicurezza, A.A. 2009/2010

Name-based Virtual Host Nel file httpd.conf, decommentare Creare due cartelle (loopback e localhost) in htdocs Nel file conf/extra/httpd-vhosts.conf creare due VirtualHost Include conf/extra/httpd-vhosts.conf <VirtualHost *:8080> ServerAdmin admin@educ.di.unito.it DocumentRoot “…/htdocs/localhost” ServerName localhost ServerAlias … ErrorLog “localhost-error_log” CustomLog “localhost-access_log” common </VirtualHost> (Lo stesso per loopback) Sperimentazioni di Sicurezza, A.A. 2009/2010

Accesso ai Virtual Host Da browser, digitare http://localhost:8080 http://127.0.0.1:8080 Appariranno le due diverse pagine che sono state definite nelle directory localhost e loopback Sperimentazioni di Sicurezza, A.A. 2009/2010

Autenticazione sicura con HTTPS Le password dell’autenticazione Basic sono inviate in chiaro! Una soluzione è rappresentata dall’uso di HTTPS, ossia il protocollo HTTP reso sicuro tramite SSL Sperimentazioni di Sicurezza, A.A. 2009/2010

Abilitazione di SSL: creazione dei certificati Con OpenSSL, creare una coppia di chiavi RSA ed un certificato autofirmato di una CA (ca-bundle.crt) Creare una coppia di chiavi RSA per il server. Rinominare la chiave segreta come server.key Con la chiave della CA, creare un certificato per il web server (server.crt) Sperimentazioni di Sicurezza, A.A. 2009/2010

Richiami OpenSSL: generazione certificati Per creare il certificato autofirmato della CA Per creare il certificato del server openssl genrsa –out CAkey.pem 2048 openssl rsa –pubout –in CAkey.pem –out CApub.pem openssl req –config openssl.cnf –key CAkey.pem –new –x509 –days 365 –out CAreq.pem openssl genrsa –out UsrKey.pem 2048 openssl rsa –pubout –in UsrKey.pem –out UsrPub.pem openssl req –config openssl.cnf –key UsrKey.pem –new –out UsrReq.pem openssl x509 -days 365 -CA CAreq.pem -CAkey CAkey.pem -CAcreateserial -req -in UsrReq.pem -out UsrCert.pem Sperimentazioni di Sicurezza, A.A. 2009/2010

Abilitazione di SSL: modifiche ad httpd.conf Le seguenti righe in httpd.conf devono essere decommentate Commentare anche la riga: Listen 8080 È una necessità particolare in questo laboratorio… Include conf/extra/httpd-ssl.conf <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> Sperimentazioni di Sicurezza, A.A. 2009/2010

Abilitazione di SSL: impostazione del VirtualHost Posizionare server.key e servert.crt in apache/conf Posizionare ca-bundle.crt in una nuova directory apache/conf/ssl.crt Modificare il file conf/extra/httpd-ssl.conf Listen 8443 … <VirtualHost *:8443> ServerName localhost:8443 DocumentRoot “…/apache/htdocs/ssl” SSLEngine on SSLCertificateFile “…/apache/conf/server.crt” SSLCertificateKeyFile “…/apache/conf/server.key” SSLCACertificateFile “…/apache/conf/ssl.crt/ca-bundle.crt” </VirtualHost> Sperimentazioni di Sicurezza, A.A. 2009/2010

Connessione tramite HTTPS Con un browser, accedere a https://localhost:8443 Verrà richiesto di dare fiducia al certificato della CA Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Common name mismatch Nel caso in cui il nome di dominio dell’URL richiesto dal browser e il common name del certificato del server non corrispondano, il browser mostra un disclaimer Provate, ad esempio, ad accedere al servizio specificando l’IP della macchina e non “localhost” Sperimentazioni di Sicurezza, A.A. 2009/2010

Successo! Se tutti i passi sono stati eseguiti correttamente il browser dovrebbe segnalare che la connessione è stata stabilita in modo protetto Sperimentazioni di Sicurezza, A.A. 2008/2009 Sperimentazioni di Sicurezza, A.A. 2008/2009

Buone proprietà di HTTPS L’uso di HTTP su SSL garantisce diverse buone proprietà Autenticazione del server Scambio di una chiave di sessione per cifrare flusso di dati (Autenticazione del client) Se il client è in possesso di un certificato di una sua chiave pubblica è possibile inviarlo al server in modo che la comunicazione sia two-way authenticated La possibilità dell’asimmetricità del protocollo di autenticazione rende questo schema molto utile in servizi reali, dove l’utente vuole avere assicurazione sull’identità del server ed inviare i propri dati in modo sicuro, ma senza dover possedere un certificato E.g.: servizi bancari on-line Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Installazione PHP Linguaggio di scripting server-side, necessario se si vuole sviluppare un servizio web non banale Scaricare la versione 5.1.6 (www.php.net) Scaricare la libreria LibXML 2.6.30 (ftp://xmlsoft.org/libxml2) Estrarre entrambi i pacchetti nella home Eseguire, per PHP, i seguenti comandi ./configure –prefix=$HOME/php –-with-apxs2=$HOME/apache/bin/apxs --with-libxml-dir=$HOME/libxml2… make Sperimentazioni di Sicurezza, A.A. 2009/2010

Installazione PHP: modifica configurazione Apache Nel file httpd.conf, aggiungere Copiare il file php-5.1.6/libs/libphp5.so in apache/modules LoadModule php5_module modules/libphp5.so <Files *.php> SetOutputFilter PHP SetInputFilter PHP LimitRequestBody 9524288 </Files> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.php Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Una pagina PHP di test Creare una pagina index.php accessibile via HTTP <?php phpinfo(); ?> Sperimentazioni di Sicurezza, A.A. 2009/2010

Problemi di installazione? Con la versione di Solaris che c’è in laboratorio si possono verificare alcuni problemi di configurazione dovuti alla incompatibilità di alcune particolari versioni dei diversi moduli Seguire alla lettera le istruzioni riportate in queste slides Se nonostante ciò non riuscite ancora a risolvere i problemi, provate uno switch di macchina (a volte funziona!) Alternativamente… Sperimentazioni di Sicurezza, A.A. 2009/2010

Piattaforme alternative Il pacchetto WAMP fornisce la possibilità di installare facilmente tutte le componenti per lo sviluppo di un web-service sicuro in ambiente Windows http://www.wampserver.com/ Con Ubuntu, Linux, Windows e Mac potete provare XAMPP http://www.apachefriends.org/en/xampp.html Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 Apache e HTTPS Grazie per l’attenzione! Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera, 185 – 10149, Torino, Italy aiello@di.unito.it Sperimentazioni di Sicurezza, A.A. 2009/2010

Sperimentazioni di Sicurezza, A.A. 2009/2010 ©2009 by Luca Maria Aiello. Permission to make digital or hard copies of part or all of this material is currently granted without fee provided that copies are made only for personal or classroom use, are not distributed for profit or commercial advantage, and that new copies bear this notice and the full citation. Sperimentazioni di Sicurezza, A.A. 2009/2010