Progettare un Firewall Danilo Demarchi danilo@cuneo.linux.it GLUG Cuneo Corso Sicurezza 2006 Concetti introduttivi Come pensare un Firewall Argomenti trattati I Gli strumenti del Firewall Gli strumenti per costruire un Firewall Il Filtro dei pacchetti Il Proxy Conclusione Riferimenti e conclusione
Cosa è un Firewall 1 Serve a proteggere una sezione di rete rispetto ad un altra 2 Tipicamente separa la rete interna da quella esterna (Internet) 3 Un Firewall ha quindi solitamente almeno 2 schede di rete 4 È un filtro dei pacchetti TCP/IP che si interpone tra le reti che sono da esso interconnesse Cosa significa introdurre un filtro 1 Deve tenere conto delle poche informazioni che i paccheti portano con sè considerando i possibili tentativi di contraffazione 2 Diventa difficile poter dire: voglio escludere il traffico del servizio X 3 Si escludono quindi i pacchetti che dovrebbero servire a quel tipo di servizio o che servono alla sua instaurazione 4 In generale, meno compiti si attribuiscono a un filtro, meglio si riesce a controllare la situazione 5 Questo significa negare per definizione!!!
Esempio: il flag SYN - I 1 L instaurarsi di una connessione TCP avviene attraverso fasi differenti, in cui vengono usati degli indicatori all interno dei pacchetti per attribuire loro un significato speciale 2 Quando un pacchetto contiene il bit SYN attivo, si tratta di un tentativo di iniziare una nuova connessione 3 L individuazione del pacchetto SYN è importante per capire chi sia colui che inizia a fare qualcosa Esempio: il flag SYN - II 1 Se una connessione TCP avviene tra il nodo A con la porta 1083 e il nodo B con la porta 80, non vuol dire che si tratti di una connessione iniziata da A 2 Non è detto anche che si tratti dell utilizzo di un servizio HTTP 3 È utile individuare i pacchetti SYN in modo da poter intervenire sulle comunicazioni in base al verso che hanno
Come pensare un Firewall L approccio 1 Chiudere tutti gli accessi 2 Aprire ciò che è necessario: Stabilire cosa Trovare il giusto compromesso tra cosa LASCIAR fare e cosa è obbligatorio DOVER fare 3 Non è per nulla semplice lasciar lavorare e chiudere le possibilità di attacchi 4 Spesso si introducono complicazioni agli utenti 5 Valutare gli aspetti legali, soprattutto legati alla Privacy: per saper cosa e come chiudere occorre monitorare! 6... e molte altre cose: monitoraggio, sistemi di allarme, aggiornamento costante... Gli strumenti per costruire un Firewall Gli strumenti del mestiere 1 Filtro di pacchetti 2 Proxy: qualcuno che deleghiamo per noi 3 NAT (Network Address Translation): trasformiamo gli IP interni 4 PAT (Port Address Translation): giriamo l accesso a certe porte TCP/IP
Il Filtro dei pacchetti Il filtro di pacchetti: livelli cui si applica 1 Il filtro di pacchetto può intervenire al terzo o al massimo al quarto livello del modello ISO-OSI 2 È in grado di identificare e filtrare i pacchetti in base agli indirizzi IP, alle porte utilizzate e a poche altre informazioni Il Filtro dei pacchetti Il filtro di pacchetti: la struttura di principio 1 Si può intervenire in tre punti differenti 1 nel transito dei pacchetti da un interfaccia a un altra 2 nei pacchetti in arrivo attraverso una data interfaccia 3 nei pacchetti in uscita 2 La distinzione è importante perchè i risultati pratici che si ottengono possono essere molto diversi a seconda del punto in cui si inserisce il filtro
Il Filtro dei pacchetti Il filtro di pacchetti: cosa si può fare 1 I pacchetti intercettati possono essere trattati in modi differenti: possono essere lasciati passare possono essere bloccati possono essere bloccati, inviando all origine un messaggio di rifiuto attraverso un pacchetto ICMP possono essere semplicemente tenuti sotto controllo (contabilizzati) Il Proxy Cosa è il Server Proxy 1 Rappresenta una sorta di intermediario che si occupa di intrattenere le connessioni per conto di qualcun altro nella rete interna 2 È come se un utente aprisse una connessione TELNET verso il proxy, utilizzando da lì un programma cliente adatto per il tipo di collegamento che intende realizzare al di fuori della sua rete interna 3 Dal momento che il proxy ha un ruolo attivo nelle connessioni, può tenere un registro delle azioni compiute e identificare l utente che lo utilizza 4 Si possono proxare diversi servizi, non solo la navigazione
La NAT 1 Sta per Network Address Translation, descritta nell RFC 1631 2 Il Firewall interviene sui pacchetti, allo scopo di sostituire gli indirizzi IP interni con (solitamente) gli IP pubblici 3 Dà la possibilità di utilizzare dinamicamente gli indirizzi IP riservati alle reti private, permettendo ugualmente a tali reti di accedere all esterno, pur non essendo questi univoci a livello globale e gestiti dai router di frontiera Classi di indirizzi privati 1 Classi di indirizzi privati sono: 10.0.0.0 / 255.0.0.0 (10.x.y.z) 172.16.0.0 / 255.255.0.0 (172.16.x.y) 192.168.0.0 / 255.255.0.0 (192.168.x.y)
La PAT 1 Sta per Port Address Translation, descritta sempre nell RFC 1631 2 Il Firewall interviene sui pacchetti, allo scopo di sostituire le porte TCP e UDP 3 Permette di nattare più IP interni su di uno stesso IP, solitamete quello pubblico PAT per ridirezione di porte 1 Serve per dirigere le connessioni originate dall esterno e dirette a porte determinate 2 Posso ridirigere sistematicamente le connessioni provenienti dall esterno, dirette alla porta 80, verso il nodo locale 192.168.1.1 alla stessa porta 80, dal momento che questo offre un servizio HTTP.
Riferimenti e conclusione Riferimenti Daniele Giacomini, Appunti di informatica libera http://appunti.linux.it/a2.htm