Corso di Laurea in Informatica Reti e Sicurezza Informatica Esercitazione 1 Prof.Mario Cannataro Ing. Giuseppe Pirrò Sommario Introduzione alla sicurezza I firewall (Windows e Linux) Introduzione ai Web Services Installazione di Tomcat Le librerie AXIS Installazione di AXIS su Tomcat Ambiente di sviluppo di Web Services 1
La sicurezza informatica Problematiche inerenti il controllo degli accessi ai propri dati da parte di utenti esterni. Fattori che hanno amplificato il problema: - Disponibilità di connessioni di tipo xdsl - Abbattimento dei costi - Enorme diffusione di Internet I firewall Firewall: E un dispositivo Hardware/Software che si occupa di collegare due tronconi di rete Firewall Intranet Router Modo per controllare lo scambio dati tra Internet e la rete interna 2
Posizione dei firewall Tra reti LAN e reti esterne Ai gateways di sottoreti sensibili all interno di una LAN organizzativa Sullemacchineutente Personal firewall Microsoft s Internet Connection Firewall (ICF) diventa standard con Windows XP Tipi di firewall Packet-type - Agiscono sui dati dell header IP - Non sono in grado di individuare virus Application-type - Agiscono sull informazione contenuta nei dati che il pacchetto trasporta - Sono tipicamente implementati via software - Sono poco performanti 3
Limiti dei firewall Cosa può fare: Concentrare le decisioni sulla politica di sicurezza Controllare e filtrare il traffico Internet/rete Limitare l esposizione e separare la rete interna Cosa NON può fare Proteggere da attacchi dall interno Proteggere da attacchi Social Engineering Controllare i files infetti da virus Come è fatto un firewall Tipicamente è un componente costituito da: - Due o più schede di rete. - Ambiente operativo che analizza e gestisce il traffico in base alla configurazione stabilita dall amministratore. 4
Operazione che effettua un firewall Controllo Modifica Monitoraggio Questo grazie alla capacità di aprire i pacchetti IP e leggere le informazioni presenti sull header. Alcuni Firewall Il firewall di Microsoft Windows Zone Allarm Il firewall di Linux 5
Il firewall di Microsoft Windows Se è in esecuzione Windows XP Service Pack 2 (SP2), Windows Firewall è attivato per impostazione predefinita. Zone Alarm E firewall windows gratuito e facile da usare per tenere al riparo il sistema da hacker o semplici intrusi che possono rubare informazioni personali. Perché Zone Alarm: - SEMPLICE - INTUITIVO - GRATUTITO 6
Zone Alarm Tutto quello che serve per configurare e utilizzare il programma è incluso nella finestra a cui si può accedere facendo doppio clic sulla piccola icona che si crea sulla TRAYBAR. Finestra principale Queste barre Questo tasto Visualizzano in Qui viene visualizzato lo consente in tempo reale il stato delle reti LAN o maniera flusso di dati in remota. istantanea di entrata e uscita In questo caso il PC fa chiudere le parte di una LAN ritenuta comunicazioni attendibile(dall utente ) di rete Icone dei programmi che trasferiscono dati da e verso la nostra macchina 7
Stato del sistema LINUX E I FIREWALL 8
Le porte Ogni software che abbia necessità di comunicare con la rete apre una porta di accesso al nostro calcolatore Porte 1 65536 1 1024 privilegi di sistema Assegnate in modo standard a particolari servizi 21 = ftp; 25 = smtp; 80 = www; 110 = pop3; molto pericolose Altre sono porte non privileggiate Possono essere aperte dinamicamente da altri software o da quelli sopra citati Come vengo sfruttati questi software Se il software di rete è ben costruito è quasi impossibile fare breccia attraverso esso Software fatti da esseri umani quindi non esenti da errori. Sono gli errori dei software di rete ad essere utilizzati per l accesso non autorizzato L esigenza di un software di rete esente da errori è PRIMARIA!!! Gli errori si correggono solo se si hanno i sorgenti Microsoft non ce li da!!! Modello Open Source è inequivocabilmente più sicuro 9
Il modello Open source Un modello filosofico di sviluppo, di diffusione e di cooperazione nel campo della I.T. Libertà (0) di eseguire il programma per qualunque scopo senza vincoli sul suo utilizzo. Libertà (1) di studiare il funzionamento del programma e di adattarlo alle proprie esigenze Libertà (2) di ridistribuire copie del programma Libertà (3) di migliorare il programma e distribuire i miglioramenti Linux vs Windows Linux è OpenSource QUINDI è più sicuro!!! Windows ha usualmente attivi molti meno software di rete Le due regole dell amministratore di rete Mai usare Microsoft Internet Information server Se proprio devi Preparati a passare ogni giorno per Windows Update Preparati a pregare che il problema sia già stato risolto 10
Introduzione a Iptables Soluzione completa di firewall su Linux Implementata a livello di kernel dalla versione 2.4.0 - Vantaggi Gira da un 486 in su File di configurazione testuale Manipolazione dei pacchetti in diversi momenti del processo di trasferimento del pacchetto da una scheda ad un altra Catene Valido contro i DOS (Denial of service) Iptables Consente di controllare il traffico di rete in diversi momenti del processo di trasferimento tramite l applicazione di regole. Prerouting Input Forward Output Postrouting 11
Iptables concetti fondamentali E costituito da 3 catene fondamentali: INPUT (pacchetti in entrata) OUTPUT (pacchetti in uscita) FORWARD (pacchetti in transito) Inserendo le regole in queste catene saremo in grado di controllare i dati Iptables concetti fondamentali Per ogni regola ci sarà un TARGET: - ACCEPT (lascia passare il pacchetti) - DROP (scarta il pacchetto) - QUEUE (passa il pacchetto all userspace) - RETURN (blocca la catena e ritorna alla catena chiamante) 12
Iptables comandi di base -L catena lista di regole in quella catena -F catena ripulisce la catena dalle regole -Z catena azzera i contatori di tutte le reg. -A catena appende una nuova regola -I catena num. regola - ins. la reg. al num. -D catena num. regola cancella la regola -v informazioni sul comando invocato -j target se matcha la regola salta al target indicato Iptables Le regole Una regola è una espressione del tipo: parametri regola opzioni I principali parametri sono i seguenti: -p [tcp,udp,icmp,all] Protocollo (def. all) -s source address/mask -Indirizzo sorgente -d destination address/mask -Indirizzo dest. -sport Porta di origine o intervallo -dport Porta di destinazione o intervallo 13
Iptables Salvataggio e ripristino Iptables save - iptables-save >/tmp/rules.txt Iptables- restore - iptables-restore </tmp/rules.txt Esempio 1 Supponiamo di voler consentire l accesso alla porta 80 locale: - Iptables t filter I INPUT p tcp dport 80 j ACCEPT - -t filter (indica che ci stiamo riferendo alla tabella filter che è anche quella di default) - Tabella nat (attività di natting) - Tabella nangle (interviene sulle alterazioni di pacchetti) 14
Esempio 2 Supponiamo di voler consentire ad un pacchetto con IP 10.0.0.0.4 di raggiungere il server 192.168.0.1 attraverso il firewall: - Iptables I FORWARD s 10.0.0.4 d 192.168.0.1 j ACCEPT Tracking con Iptables Consente di gestire il traffico in base sulla base dei flussi dati e delle connessioni dei protocolli usati. Ciò viene realizzato attraverso il comando ip_conntrack. La gestione del traffico viene effettuata richiamando il modulo state che permette di dividere il traffico secondo diversi stati. 15
Stati del traffico NEW primo pacchetto relativo ad una nuova connessione. ESTABLISHED pacchetti relativi a connessioni già stabilite. RELATED pacchetti correlati a connessioni esistenti established. INVALID pacchetti che non rientrano in nessuno dei precedenti stati, di solito vengono scartati. Esempio Supponiamo di voler permettere ad un host in uscita tutto e in entrata solo ciò che è correlato a quanto uscito: -iptables I INPUT m STATE state ESTABLISHED,RELATED jaccept -iptables I OUTPUT m state state NEW,ESTABLISHED,RELATED j ACCEPT 16
Guarddog Linux Firewall 17
18
I WEB SERVICES I Web Services Un Servizio Web (Web Service) è un applicazione on-line Consente l interoperabilità di sistemi eterogenei Consente di sfruttare risorse che non sono localmente disponibili 19
Web Server È il processo che tipicamente viene utilizzato da una macchina server per rendere disponibile un insieme di risorse tra le quali si collocano anche i Servizi Web Apache Tomcat Tomcat è un Servlet/JSP engine. Esso può essere usato da solo (principalmente utile agli sviluppatori per testing e debugging) o in congiunzione con uno tra i più diffusi web server (per le applicazioni real world), tra i quali: - Apache, versione 1.3 o successiva - Microsoft Internet Information Server 20
Requisiti Tomcat richiede per il suo funzionamento un Java Runtime Enviroment JRE 1.1 o successivo. E possibile scaricare l'archivio nel formato più adatto al proprio sistema operativo da http://java.sun.com/j2se/1.5.0/download.jsp Installazione di Tomcat Prelevare il file di installazione direttamente dal sito web del progetto (http://tomcat.apache.org/) Tomcat di default resta in ascolto sulla porta 8080. Se sul vostro sistema tale porta è già in uso, aprite il file server.xml contenuto nella directory /web/tomcat/conf e cambiatela ad esempio in 10080, come illustrato sotto: <Connector classname="org.apache.tomcat.service.pooltcpconnector"> <Parameter name="handler" value="org.apache.tomcat.service.http.httpconnectionhandler"/> <Parameter name="port" value="10080"/> </Connector> Settare in /etc/profile le relative variabili d'ambiente: A questo punto aprite il browser preferito e digitate: http://nomemacchina:10080/. Se il browser visualizza la pagina di default di Tomcat, l'installazione è andata a buon fine. 21
Avvio e arresto di Tomcat Per avviare Tomcat usare lo script o il file batch che si trovano nella directory TOMCAT_HOME/bin. - Su UNIX utilizzare % startup.sh - Su Windows utilizzare C:\TOMCAT_HOME\bin>startup Per arrestare Tomcat, ci sono due comandi che si trovano nella stessa directory dei comandi di avvio. - Su UNIX utilizzare % shutdown.sh - Su Windows utilizzare C:\TOMCAT_HOME\bin>shutdown Da Windows è possibile l arresto e l avvio dall elenco dei servizi Struttura delle directory di Tomcat 22
Nome della directory bin common Descrizione Contiene gli script/batch per lo startup-shutdownd Le classi contenute nelle sue sotto-directory sono disponibili sia a Tomcat che a tutte le web-application in esecuzione sotto Tomcat conf doc lib logs webapps Contiene i file di configurazione tra cui server.xml che è il principale file di configurazione di Tomcat, e web.xml che serve a settare i valori di default per le varie applicazioni gestite da Tomcat Contiene vari documenti riguardanti Tomcat Contiene diversi file jar usati da Tomcat. Su UNIX ogni file in questa directory viene appeso al classpath. Directory utilizzata per i file di log è la cartella predefinita da Tomcat in cui vengono inserite tutte le web-application (tutto ciò che viene copiato qui è automaticamente deployed) AXIS Axis è il motore open source più famoso per la creazione di WebServices in Java. E un progetto dell'apache Software Foundation e deriva da SOAP4J della IBM In combinazione con Tomcat rappresenta uno strumento molto diffuso per la realizzazione di web services. 23
Requisiti Server Web (tomcat) Dopo averlo installato dobbiamo scaricare Axis dal sito di apache, http://ws.apache.org/axis/. Unzippiamo questo zip e copiamo il tutto nella cartella TOMCAT_HOME/webapps (TOMCAT_HOME è dove abbiamo installato Tomcat). Dopo averlo copiato dovete avviare Tomcat e puntare il browser all'indirizzo http://localhost:8080/axis. In questa pagina troverete lo stato dell'installazione di Axis. Se manca qualche libreria vi verrà indicato e voi dovrete copiarle dentro la cartella TOMCAT_HOME/webapps/axis/WEB-INF/lib. Una volta che non viene indicato più nessun errore abbiamo completato la corretta installazione di Axis e possiamo anche vedere i primi esempi di WebServices. 24