Sommario Esercitazione 05 Angelo Di Iorio (Paolo Marinelli)! Packet Filtering ICMP! Descrizione esercitazione! Applicazioni utili: " Firewall: wipfw - netfilter " Packet sniffer: wireshark!"#!$#!%&'$(%)*+,')#$-!"#!$#!%&'$(%)*+,')#$- ).+/&'(+%!0 ).+/&'(+%!0 *+$1,",2.! *+$1,",2.! 2 Packet Filtering [ ICMP ]! Il packet filtering è una tecnica per implementare firewall! Un firewall di questo tipo filtra i pacchetti sulla base di regole applicate all header del pacchetto! E possibile bloccare o far passare pacchetti verificando gli indirizzi IP dell host sorgente o destinazione, il protocollo, le dimensioni dei pacchetti, le porte utilizzate! L esercitazione richiede di filtrare pacchetti ICMP destinati a specifici indirizzi IP " ICMP è un protocollo di servizio e diagnostica incapsulato nel protocollo IP " Le applicazioni ping e traceroute usano ICMP Esercitazione Descrizione generale! Lo studente installa sulla propria macchina un firewall packet filtering e un packet sniffer per monitorare la rete! Riceve una coppia di indirizzi IP di macchine del dipartimento (che chiameremo A e B)! Configura il firewall per far passare le richieste ICMP alla macchina A e bloccare quelle destinate alla macchina B! Esegue due richieste ICMP alle due macchine e verifica che il firewall funzioni! Inserisce nel report i log del firewall e del packet sniffer
! Firewall packet filtering " ICMP Passo 1: Requisiti di installazione " log testuali con i timestamp delle richieste/risposte " Due esempi: netfilter (Linux) o wipfw (Windows)! Packet sniffer " filtri ICMP " log con i timestamp delle richieste/risposte " Esempio: wireshark (Linux/Windows/Mac OS/etc.) (a fine presentazione trovate i link a queste risorse) Passo 2: recupero indirizzi IP! http://labsicurezza.nws.cs.unibo.it/cgibin/esercitazione05/index.php! Compilare la form " Nome, cognome, matricola (10 cifre) " Username del dominio cs.unibo.it! In risposta si riceve all indirizzo di cs.unibo.it una mail di conferma con " Subject: [Laboratorio Sicurezza 2008/09: Esercitazione 05]: Mail di conferma per Cognome Nome Matricola " I dati inseriti " Una coppia di indirizzi IP del cluster CS! Mail inviata in copia anche al tutor Passo 3: configurazione del firewall wipfw (1)! Lo studente configura il firewall per filtrare le richieste ICMP destinate agli indirizzi IP ricevuti via mail. In particolare: " permette le richieste all host A " blocca le richieste all host B! Wipfw è un firewall packet filtering, versione free per Windows del software ipfw sviluppato per FreeBSD! Esiste un interfaccia grafica (da scaricare separatamente) ma è possibile usarlo anche da linea di comando o via script: " config.cmd: carica le regole di filtraggio dal file wipfw.conf " install.cmd: lancia il firewall " uninstall.cmd: blocca l esecuzione del firewall
wipfw (2)! wipfw.conf contiene l insieme delle regole per filtrare i pacchetti! Tutte le regole seguono la stessa struttura: [prob match_probability] action [log [logamount number]] proto from src to dst [interface-spec] [options]! E possibile indicare le operazioni da riportare nei log e il livello di dettaglio desiderato " il path del file di log è configurabile e viene mostrato a video quando si esegue il firewall (via install.cmd) netfilter (1)! Nei sistemi Linux è possibile utilizzare il framework netfilter! In particolare, è possibile utilizzare l utility iptables, che permette di manipolare le regole applicate dal kernel ai pacchetti " N.B.: il comando iptables richiede privilegi di root netfilter (2)! Il kernel gestisce delle tabelle (tables)! raw, mangle, nat, e filter! Ogni tabella consiste di catene (chains), predefinite ed eventualmente definite dall utente! Una catena è una sequenza di regole (rules). Una regola specifica delle condizioni di match ed un target! se un pacchetto soddisfa una regola, allora viene eseguito il target! Altrimenti si passa a valutare la regola successiva nella catena! Se nessuna regola della catena viene soddisfatta allora viene applicata una regola di default, detta policy netfilter (3)! Le regole di packet filtering sono solitamente implementate nella tabella filter! La tabella filter ha tre catene predefinite! INPUT, per i pacchetti destinati all host! FORWARD, per i pacchetti che devono instradati verso altri host! OUTPUT, per i pacchetti generati localmente! Un esempio molto semplice di comandi iptables (blocca tutti i pacchetti!): iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP
Passo 4: configurazione ed attivazione del packet sniffer Wireshark (1)! Wireshark è un analizzatore di rete (packet sniffer): " largamente utilizzato (probabilmente il più diffuso) " multipiattaforma (Windows, Linux, Mac OS, Solaris, FreeBSD) " multi-protocollo (circa 100 protocolli supportati) " più di 8000 filtri di visualizzazione (diversi dai filtri del firewall!) Passo 4: configurazione ed attivazione del packet sniffer Wireshark (2) icmp! L esercitazione richiede di monitorare il traffico di rete dopo aver configurato Wireshark per: " visualizzare il timestamp delle richieste/risposte " filtrare le richieste ICMP (opzionale) Passo 5: Esecuzione e filtro delle richieste ICMP! I comandi ping e tracert usano il protocollo ICMP per spedire messaggi di diagnostica! Lo studente esegue uno tra questi comandi su entrambi gli indirizzi IP ricevuti via mail.! Il firewall fa passare una richiesta e blocca l altra: ping 130.136.1.110 PING 130.136.1.110 (130.136.1.110) 56(84) bytes of data. 64 bytes from 130.136.1.110: icmp_seq=1 ttl=63 time=0.614 ms 64 bytes from 130.136.1.110: icmp_seq=2 ttl=63 time=0.713 ms ping 130.136.4.145 PING 130.136.4.145 (130.136.4.145) 56(84) bytes of data. Destination host unreachable. Esercitazione Cosa inserire nel report! Uno screenshot di Wireshark che riporta il traffico di rete relativo alle due richieste: " meglio se è applicato il filtro icmp in fase di visualizzazione " dovrebbe essere visualizzata solo la richiesta permessa dal firewall! I log del firewall " che riportano sia la richiesta bloccata che quella eseguita con successo! Screenshot e log devono includere i timestamp
Un esempio di consegna Riferimenti! http://wipfw.sourceforge.net/! http://www.wireshark.org/! http://www.netfilter.org/ Destinazione IP da bloccare: 130.136.5.34 Destinazione IP da far passare: 130.136.4.145