Lezione n.10 del 14/12/2007 =========================== Argomenti --------- * Introduzione ai firewall - definizione e scopo - classificazione * Firewall a filtraggio dei pacchetti - informazioni associate alle regole - interpretazione delle regole * Il firewall ipfw - configurazione - impostazione delle regole Riferimenti ::::::::::: * Capitolo 28 (Firewalls) del FreeBSD Handbook: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls.html Esercizio --------- (Mandare in esecuzione il server Apache mettendolo in ascolto sulla porta 8080 e visualizzare una pagina html) * bloccare tutto il traffico TCP in ingresso alla macchina con esclusione di quello diretto al web server * verificare se da un altro computer si riesce a visualizzare una pagina html * provare ad accedere alla macchina con il comando ssh * accettare tutto il traffico TCP diretto alla macchina con esclusione di quello diretto al web server, bloccando la fase di setup della connessione TCP * verificare se dalla macchina del vicino si riesce a visualizzare una pagina html * provare ad accedere alla macchina con il comando ssh * ripetere i punti 4, 5, 6 bloccando questa volta le connessioni gia' stabilite * notare il diverso messaggio presentato dal browser * bloccare il traffico ICMP per la macchina locale, garantendo il funzionamento del comando ping sull'interfaccia locale Soluzione --------- (Le soluzioni suppongono di avere un firewall di tipo inclusivo) * ipfw -f -q flush ipfw add allow tcp from any to me 8080 ipfw add allow tcp from me to any ipfw add deny tcp from any to me ipfw add allow ip from any to any * dalle altre macchine si riesce ad accedere alle pagine del web server * il comando ssh viene bloccato dal firewall * ipfw -f -q flush ipfw add deny tcp from any to me 8080 setup ipfw add allow ip from any to any * dal client non deve essere possibile accedere al server web * il comando ssh deve funzionare correttamente * ipfw -f -q flush ipfw add deny tcp from any to me 8080 established ipfw add allow ip from any to any * ipfw -f -q flush ipfw add allow icmp from any to me icmptype 8 ipfw add allow icmp from me to any icmptype 0 ipfw add deny icmp from any to any ipfw add allow ip from any to any (provare i comandi ping e traceroute verso il proprio host e vedere il diverso comportamento)