FACOLTÀ DI SCIENZE E TECNOLOGIE Corso di Laurea in Informatiche. Dipartimento di Matematica e Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "FACOLTÀ DI SCIENZE E TECNOLOGIE Corso di Laurea in Informatiche. Dipartimento di Matematica e Informatica"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI CAMERINO FACOLTÀ DI SCIENZE E TECNOLOGIE Corso di Laurea in Informatiche Dipartimento di Matematica e Informatica TRAFFIC SHAPING Relazione di Politiche delle reti e sicurezza Professorssa Maria Laura Maggiulli Studente Mario Gabrielli ANNO ACCADEMICO 2006/ 2007

2 1. Il firewall Un firewall è un sistema o un gruppo di sistemi che realizza una metodologia di controllo degli accessi tra due o più reti. Può essere schematizzato attraverso una coppia di meccanismi: uno che realizza il blocco del traffico, l altro che lo accetta. Alcuni firewall ripongono maggiore enfasi sul primo aspetto, altri sul secondo. La prerogativa fondamentale consiste nel decidere la politica di sicurezza da adottare prima della realizzazione fisica della rete. È infatti di fondamentale importanza che l amministratore sappia con assoluta precisione quali e quanti servizi offrire al mondo esterno attraverso la propria rete, quali privilegi concedere agli utilizzatori dei terminali interni e come strutturare fisicamente la rete stessa. Spesso un sistema di protezione quale un firewall risulta complesso da configurare e richiede delle conoscenze avanzate che riguardano la struttura intrinseca e il funzionamento della rete, la conoscenza dei protocolli, i meccanismi di comunicazione tra le diverse tipologie di reti. 1.1 I vantaggi Secondo un principio generale, un firewall viene realizzato sia per concedere alle postazioni interne un numero limitato di operazioni (sarà l amministratore a dover valutare la fiducia che ripone nei proprio utenti), sia, soprattutto, per proteggere la rete interna da connessioni non autorizzate provenienti dal mondo esterno. Un altro elemento di forza viene realizzato progettando una struttura di rete che porti il firewall ad essere l unico punto di contatto tra la rete locale privata e la rete esterna. In tal modo sarà possibile mettere a disposizione un importante meccanismo di logging degli accessi e del transito delle informazioni oltre a permettere un effettivo controllo del traffico 2

3 nelle due direzioni. Un firewall mette inoltre a disposizione dell amministratore di rete dei dati molto importanti quali il traffico generato dalla rete stessa e insieme all IDS, l elenco dei tentativi di intrusione. 1.2 I punti deboli Un sistema illustrato in questi termini, presenta però alcuni punti deboli da non sottovalutare: infatti, un firewall non è ovviamente in grado di proteggere da attacchi che non transitano attraverso di esso. Per esempio, se venisse istaurato un collegamento di tipo dial-up da un terminale presente nella rete interna verso l esterno, il firewall non sarà in grado di attuare le misure di sicurezza per le quali è stato creato dato che la connessione generata dall utente non trasiterà più attraverso di esso e darà la possibilità ad un ipotetico intruso di utilizzarla per prendere il controllo della rete interna. Un sistema di firewalling, inoltre, non è in grado di proteggere la rete interna da attacchi generati dalla rete stessa. Infatti il traffico rimarrà contenuto all interno senza mia oltrepassarlo e pertanto escludendolo. 1.3 Tipologia di firewall Un firewall in genere è composto da uno o più computer che si pongono tra le reti private e quelle esterne (es. internet) con il preciso scopo di controllare ciò che transita da una rete verso l altra. In particolare sono utilizzati per stabilire a quali servizi (www, ftp, mail,...) presenti nella rete internet è possibile accedere dalla rete locale, e quali possono essere resi disponibili alle reti esterne. 3

4 La necessità di questi controlli è dovuta al fatto che i sistemi operativi (Windows, Mac, Linux,...), i protocolli utilizzati per lo scambio dei dati tra le reti (TCP/IP), e i programmi, hanno una serie di limiti, errori di programmazione che possono esporre la propria rete a diversi attacchi. Questi attacchi possono permettere ad una persona con le giuste informazioni e con particolari programmi (exploit) di individuare eventuali vulnerabilità e di accedere e modificare una macchina. L intruso potrebbe quindi apportare delle modifiche che gli consentano di accedere in qualsiasi momento senza essere scoperto (backdoor), oppure di sfruttarla per sottrarre informazioni (progetti confidenziali, password,...), per coinvolgerla in attacchi DoS (Denial of Service), DDoS (Distribuited Denial of Service)... Le soluzioni adottate per proteggere le reti, viste anche le diversità dei sistemi, sono varie. L'ICSA (www.icsalabs.com/), ente che certifica l affidabilità di un prodotto firewall, non è legato ad alcun produttore specifico di firewall ed esegue i test acquisendo i prodotti direttamente dal mercato e provandoli all interno delle proprie strutture. Il protocollo di analisi è rigoroso e solo i prodotti che risultano positivi a tutti i test divengono certificati e acquisiscono il diritto di esporre il marchio ICSA Labs Certified nella documentazione tecnica, nella scatola e in tutta la comunicazione commerciale. Tale ente, ha individuato tre tipologie di firewall: 4

5 packet filtering; application gateway; packet inspection. 1.4 Packet filtering La soluzione più semplice di firewall è rappresentata da router, posti tra le due reti, che filtrano i pacchetti. Lo scopo principale di questa soluzione è, infatti, quello di intercettare i pacchetti e consentire il passaggio esclusivamente al traffico autorizzato. Il firewall in questo caso esamina le informazioni del pacchetto dei dati, ossia rispettivamente gli indirizzi IP (di partenza e di destinazione) e i numeri di entrambe le porte contenuti nell header (testata del messaggio). La sua analisi non va in ogni caso oltre l header. I pacchetti vengono inoltrati o rifiutati in base alle regole di filtro impostate dall amministratore di rete. Il problema principale con la tecnica del packet filtering è che si tratta di un sistema basato sugli indirizzi IP, elementi che offrono labili garanzie di sicurezza. Un host è in grado di aggirare questo tipo di firewall sostituendo il proprio indirizzo IP di origine con uno autorizzato e accedere indisturbato alla rete privata. Con la tecnica del packet filtering, la gestione di alcuni protocolli risulta piuttosto critica perché obbliga all apertura di un varco nel firewall che, se non correttamente impostato, potrebbe mettere a repentaglio la sicurezza dell intera rete. Usare unicamente la tecnologia di filtro dei pacchetti, in linea di massima, non garantisce un livello adeguato di sicurezza. Le soluzioni oggi presenti sul mercato tendono, infatti, a fornire una combinazione di questa tecnica con altre, come per esempio quella che si basa su di un server proxy. 5

6 1.5 Application gateway Un gateway di applicazione intercetta il traffico e autentica gli utenti a livello di applicazioni TCP/IP. Un utente sulla rete privata accede al proxy che lo autentica, dopodichè ha accesso al server remoto che si trova su internet. In maniera analoga, tutte le comunicazioni provenienti da internet e dirette alla rete privata vengono ricevute dal proxy, analizzate e successivamente, previa autorizzazione, inoltrate a destinazione. Lavorando a questo livello, è necessario predisporre un server proxy per ogni applicazione. Per evitare accessi indesiderati, il sistema di autenticazione deve essere assolutamente sicuro. 1.6 Packet inspection L approccio di un firewall che si basa sulla tecnica della packet inspection è rappresentato dall analisi dei pacchetti piuttosto che dal solo filtraggio: in altri termini vengono controllati anche i contenuti del pacchetto IP oltre agli indirizzi. Questa tipologia di firewall, detta anche circuit-level gateway, offre il massimo grado di affidabilità. A differenza dell application gateway, questo tipo di soluzione richiede, al momento dell accesso da parte di un utente al server internet, la modifica del software client. La nuova generazione di browser, per esempio, ormai supporta automaticamente questo tipo di accesso. 6

7 2. Struttura e funzionalità principali di IPTables IPTables è un pacchetto open source operante in ambiente GNU/Linux che utilizza gli strumenti messi a disposizione dai kernel della serie 2.4, 2.6 e successivi. Il programma IPTables rappresenta solo un applicazione in spazio utente. Quando un pacchetto IP entra nel firewall, viene passato al corrispondente driver all interno del kernel. Quindi il pacchetto attraverserà una serie di stati prima di essere inviato ad un applicazione locale o inoltrato attraverso un altra interfaccia di rete. IPTables è strutturato internamente attraverso delle catene (chains). Un pacchetto, una volta immesso in una di queste, può essere bloccato o accettato, a seconda delle regole impostate dall utente. Un altro concetto importante è quello di tabella (table). Non appena IPTables viene caricato all interno del kernel, verranno create tre tabelle e diverse catene già preimpostate. 2.1 Le catene e le regole La configurazione di un firewall avviene attraverso la dichiarazione di regole (rules). Ogni regola dovrà essere inserita in un contesto più ampio, ossia all interno di una catena 7

8 (chain). Una regola può essere definita come un indicazione alla quale il firewall dovrà attenersi per decidere se accettare o rifiutare i pacchetti appartenenti alle differenti connessioni. In ultima analisi, consiste nell intraprendere una particolare azione nel caso in cui si verifichino alcune precondizioni. Per ogni pacchetto e per ogni regola, il kernel, verificherà che tutte le condizioni siano rispettate (match) e, in tal caso, inoltrerà il pacchetto verso la catena specificata (operazione di jump). Le catene principali, ordinate a partire dall arrivo del pacchetto fino alla sua successiva ripartenza attraverso un altra interfaccia di rete, sono: PREROUTING: ogni pacchetto che giunge al firewall proveniente da qualsiasi interfaccia, arriva in questa catena, a monte della decisione di routing. Viene quindi principalmente utilizzata per il DNAT. Infatti, la modifica dell indirizzo di destinazione, influenzerà direttamente la decisione di routing da prendere per quanto riguarda il pacchetto; INPUT: ogni pacchetto destinato direttamente al firewall entra in questa catena. In tal modo sarà possibile definire a quali servizi presenti sulla macchina permettere l accesso dalle diverse interfacce; OUTPUT: ogni pacchetto che viene generato direttamente dal firewall transita da questa catena; FORWARD: ogni pacchetto che viene generato da un interfaccia di rete destinato ad un altra entra in questa catena. Sarà quindi possibile gestire, a seconda delle esigenze della propria rete, le diverse interconnessioni permettendo, ad esempio, alla LAN interna di accedere ad internet ma impedendo l accesso dall esterno alla propria rete privata; POSTROUTING: ogni pacchetto arriva in questa catena a valle della decisione di routing, appena prima di lasciare il firewall. Viene 8

9 principalmente utilizzata per il SNAT. Infatti, la modifica dell indirizzo sorgente, appena prima che il pacchetto lasci il firewall, permette la sostituzione dell IP di rete privata, quindi non indirizzabile da internet, con un altro indirizzo pubblico (solitamente quello del firewall stesso). Ogni regola permette di ricercare dei riscontri su un ampia gamma di parametri; tra i più comuni ed utilizzati si devono citare la verifica del protocollo, l indirizzo di sorgente e di destinazione, le porte coinvolte nella connessione. Tutti questi elementi possono essere utilizzati per effettuare un corretto filtraggio e per prendere una decisione per quanto riguarda la sorte del pacchetto. Per capire quando e come agiscano queste catene seguiamo il percorso di un pacchetto IP dalla scheda di rete esterna a quella interna senza la presenza del software di firewall IPTables. Dopo essere entrato dalla scheda di rete esterna, il pacchetto viene aperto e ne viene analizzato l header alla ricerca dell indirizzo di destinazione. Questo indirizzo viene confrontato con la tabella di routing della macchina e quindi instradato verso una porta locale o verso la scheda di rete appropriata se l indirizzo di destinazione è differente da quello associato al firewall. Prima di proseguire, visto che abbiamo tirato in ballo la tabella di routing, vediamo che funzione svolge nel processo di trasporto del pacchetto. La tabella di routing, viene utilizzata per decidere dove instradare il pacchetto IP in base all indirizzo di destinazione presente nell header. Essa contiene un associazione tra blocchi di indirizzi internet e risorse con cui tali indirizzi possono essere raggiunti. Le risorse possono essere interfacce di rete locali o indirizzi IP di computer detti gateway. Di seguito vi è un esempio di una banale tabella di routing di una machina con una sola interfaccia ethernet. Linux nomina le interfacce di rete ethernet con il suffisso eth, numerandole poi in base alla posizione all interno degli slot ISA/PCI. 9

10 Dalla tabella sovrastante si evidenzia: l indirizzo , il così detto indirizzo di loopback, mappato sull interfaccia (virtuale) lo; gli indirizzi della rete locale da a mappati sulla scheda di rete eth0; l indirizzo / , l ultima risorsa nel caso che le altre rotte non vengano applicate al pacchetto e che, di solito, corrisponde all indirizzo del router/gateway verso internet. Ritorniamo all analisi del tragitto percorso dal nostro pacchetto IP e vediamo cosa accade in presenza del firewall IPTables. Il pacchetto entra dall interfaccia esterna e viene sottoposto, prima del processo di routing, all applicazione delle direttive presenti nella lista PREROUTING. Usualmente, in tale catena vengono inserite regole che tendono a evidenziare il pacchetto per distinguerlo dagli altri pacchetti ed eseguire su di esso adeguate operazioni nelle successive fasi del processo di trasporto. (DNAT). In tale fase vengono anche applicate le regole per la gestione del destination NAT 10

11 Il pacchetto subisce il processo usuale di routing in base alla tabella presente nella macchina locale. Se il pacchetto, in base alla tabella di routing, è destinato all interfaccia di rete interna vengono applicate le regole descritte nella lista di FORWARD. Usualmente sono questi i filtri più importanti in quanto definiscono cosa può passare dall esterno verso l interno e cosa no. Se il pacchetto è destinato, in base alla tabella di routing, alla macchina locale vengono applicate le regole descritte nella lista di INPUT. Questi filtri proteggono il firewall stesso da accessi indesiderati. Se il pacchetto ha come sorgente la macchina locale, ossia è stato generato da un processo della macchina locale vengono applicate, al pacchetto, le regole di OUTPUT. 11

12 Sia nel caso di forward che di output, prima di uscire dalla scheda di rete interna, il pacchetto subisce l applicazione delle direttive di POSTRUTING. In tale fase vengono di solito applicate le regole per il source NAT (SNAT). In ognuno di questi step ogni direttiva si chiede sostanzialmente: se l header del pacchetto verifica certe condizioni, che cosa devo fare del pacchetto? La risposta a questa domanda può essere o di accettare il pacchetto che continua nel suo percorso all interno delle altre direttive e degli altri step o rigettare il pacchetto che viene definitivamente buttato via. In ogni step, se il pacchetto non verifica nessuna delle condizioni impostate, può essere definita una regola di default da applicare al pacchetto che verrà quindi accettato o rigettato. Usualmente si ritengono sicuri ed accettabili i pacchetti provenienti dall interno e destinati verso l esterno e quindi, in particolare, i pacchetti che hanno come sorgente il firewall saranno permessi e quindi l impostazione ovvia di default del processo di OUTPUT sarà quella di ACCEPT. Quello che si vuole invece evitare, a meno di eccezioni, e che dall esterno si possa impunemente accedere verso l interno. Ecco perché è usuale impostare a DROP la configurazione di default dei processi di FORWARD e di INPUT. Sarebbe un errore lasciare ad ACCEPT queste regole e tentare di chiudere tutti i servizi interni. Il firewall serve, in particolare, per chiudere tutto, anche quello che neanche si sa di avere aperto. Negando tutto e accettando solo ciò che si considera come corretto si è 12

13 sicuri che se dall esterno si accede ad una data risorsa interna è perché siamo stati noi a richiederlo. Il primo banale script di configurazione del nostro firewall sarà quindi (il flag -P imposta per l appunto la politica di default per il processo): -P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT 3. Le tabelle Innanzitutto analizziamo in dettaglio le tabelle che vengono create: 3.1 FILTER Si tratta della tabella più importante e viene utilizzata per effettuare il filtraggio vero e proprio sui pacchetti che transitano attraverso le interfacce del firewall (packet filtering). 3.1 NAT Questa tabella deve essere utilizzata per eseguire NAT (Network Address Translation), quindi per tradurre l indirizzo sorgente o destinazione presente nell header dei pacchetti IP). IPTables implementa due tipi diversi di NAT: SNAT (Source Network Address Translation): Tecnicamente l SNAT modifica, nell header dei pacchetti, l indirizzo IP del sorgente facendo credere al destinatario del pacchetto che esso provenga da un altro indirizzo IP. 13

14 Questo permette anche a chi non è fisicamente in internet di navigare per la rete. Spieghiamo questo con un esempio: Consideriamo due computer, uno con Windows 2000 Professional e uno con Linux, collegati alla stessa rete locale. Ai due computer sono assegnati due indirizzi IP intranet del blocco /24 e, in particolare, la macchina Linux ha un indirizzo IP assegnato alla sua scheda di rete eth mentre la macchina Windows ha l indirizzo Il protocollo TCP/IP è indipendente dal sistema operativo e quindi, tramite esso, le due macchine si vedono sulla rete locale. Sulla macchina Linux vi è anche un altra scheda di rete eth0 alla quale viene assegnato un indirizzo internet aaa.bbb.ccc.ddd dal DHCP. La macchina Linux ha quindi, due indirizzi IP assegnati, uno interno, con cui vede la macchina Windows, e uno esterno, tramite il quale risulta visibile e vede la internet. La prima cosa da fare, per far accedere ad internet anche la macchina Windows, consiste nell informare il modulo TCP/IP della macchina, che esiste sulla rete locale, una macchina che sa come inviare pacchetti ad internet. Ciò consiste nel configurare il gateway di default della macchina Windows impostandolo con l indirizzo IP della macchina Linux. Per tale operazione viene utilizzato l indirizzo locale in quanto l altro è già un indirizzo internet e la macchina Windows 2000 non sa come raggiungere la rete. 14

15 Con questa configurazione una richiesta della macchina Windows destinata a internet giunge sulla macchina Linux che instrada il pacchetto sulla sua rotta di default che, risulta settata proprio su tale linea. Sembra che già tutto funzioni ma in realtà non funziona niente. L unica macchina che il router ha autorizzato a navigare è la macchina Linux. Quando il router vede arrivare dei pacchetti dalla macchina Windows con indirizzo di sorgente rigetta tali pacchetti in quanto, dal suo punto di vista, sono pacchetti anomali perché gli unici pacchetti che dovrebbero arrivare devono avere indirizzo di sorgente aaa.bbb.ccc.ddd. Quando arriva il pacchetto dalla macchina Windows, IPTables si segna l header che dovrebbe assumere il pacchetto di risposta ad esso associato e sostituisce l indirizzo di sorgente del pacchetto in transito con il suo indirizzo internet aaa.bbb.ccc.ddd instradandolo verso la eth0 connessa ad internet. Ora il router non ha più nessun motivo per rigettare il pacchetto in quanto, dal suo punto di vista, esso proviene dal soggetto legittimamente autorizzato a navigare lungo quella connessione. La cosa non finisce però qui in quanto il server remoto invia la risposta alla macchina Linux che si vede arrivare una risposta per una richiesta che non ha fatto. Qui interviene di nuovo il SNAT che si accorge, controllando l header del pacchetto con quello salvato sopra, che questo flusso di dati remoti va dirottato alla macchina Windows. Sostituisce allora all indirizzo del destinatario, attualmente settato sull header del pacchetto di risposta, l indirizzo IP della macchina Windows e glielo invia. La macchina Windows si vede arrivare il pacchetto di risposta che si aspettava. La macchina Windows naviga quindi per interposta persona in quanto è la macchina Linux che la fa navigare mascherando di volta in volta l indirizzo sorgente della macchina locale. Vediamo ora tecnicamente come si configurano le cose sulla macchina Linux con 15

16 IPTables. La configurazione dell SNAT è molto semplice e consiste nell attivazione della tabella di NAT nel processo di POSTROUTING tramite l impostazione: -t nat A POSTROUTING o eth0 j MASQUERADE deve eth0 è l interfaccia di uscita verso internet. Come si vede non appare alcun indirizzo IP nella configurazione in quanto il sistema provvede automaticamente a ricavare l indirizzo dinamico assegnato di volta in volta dal provider e di utilizzarlo per lo SNAT. Se la situazione è quella di un indirizzo statico con pochi indirizzi IP è meglio utilizzare questa configurazione: -t nat A POSTROUTING o eth0 j SNAT -to xxx.xxx.xxx.xxx dove eth0 è l interfaccia di rete lato internet e xxx.xxx.xxx.xxx è l indirizzo internet di questa interfaccia. Tale regola va applicata alla catena di POSTRUTING per far si, che almeno fino all ultimo momento, prima di uscire dall interfaccia verso internet, il pacchetto sia ancora identificato come proveniente dalla macchina interna e su cui poter applicare regole di filtro o di routing. Se questo mascheramento avvenisse prima, il pacchetto sembrerebbe del tutto indistinguibile da un pacchetto generato localmente dal box Linux e non potrebbero quindi essere applicati eventuali filtri personalizzati. DNAT (Destination Network Address Translation): Analogamente al source NAT anche il DNAT agisce modificando l header dei pacchetti in transito ed in particolare l indirizzo e la porta di destinazione. Al contrario dell SNAT, ma per lo stesso motivo, il DNAT viene applicato nel processo di PREROUTING così che tutti i restanti processi di IPTables e di routing 16

17 agiscono sul pacchetto già modificato. L operazione di DNAT può essere utilizzata per operazioni di port forwarding o di trasparent proxy. Ciò che ci interessa è il port forwarding che è quell operazione per cui una porta presente su di un server in realtà è un puntatore ad un servizio presente su di un altra porta molto spesso attiva su di un altro server. Tutte le richieste di connessione sulla prima porta vengono inoltrate al servizio reale attivo sulla seconda porta. Un utilizzo del port forwarding si ha nella situazione in cui uno o più servizi presenti in una rete con indirizzi intranet debbono essere esportati e visibili anche sulla rete internet. Portiamo quindi ad esempio una azienda che ha a disposizione quattro indirizzi IP nell intervallo da a con subnet Dei quattro indirizzi, lo zero è l indirizzo della rete, l uno è l indirizzo del router che collega l azienda al provider e il tre è l indirizzo di broadcast. L unico indirizzo libero risulta quindi e visto che l azienda in realtà possiede molti computer che desiderano navigare sulla Rete, ha utilizzato l SNAT attivandolo su di una macchina Linux. L indirizzo libero è stato assegnato all interfaccia di rete esterna mentre a quella interna è stata data un indirizzo intranet della classe /24. L azienda decide quindi di creare un proprio sito, e lo posiziona all interno, della rete aziendale per averne una migliore gestione e manutenzione. Attivare il server web sul firewall potrebbe essere impossibile per incompatibilità di sistema operativo ma, anche nel caso in cui non esistesse questa incompatibilità, l installazione di ulteriori servizi sul firewall è totalmente inaccettabile. Il firewall, come unico baluardo tra noi è il nemico deve essere totalmente sicuro e ogni servizio aggiuntivo tenderebbe a ridurre questo fattore di sicurezza. 17

18 Il server viene quindi agganciato alla rete interna e gli viene assegnato l indirizzo intranet Se è vero che l installazione del servizio web sul firewall è inaccettabile è però vero che tentare di mappare la porta web del firewall con la porta web del server non preclude assolutamente la sicurezza della rete. L idea è proprio questa: esternamente il server web verrà visto attivo sulla porta 80 (web) dell indirizzo ma tutti i pacchetti diretti su questa porta verranno poi dirottati dal firewall sulla porta 80 del server Seguiamo un ipotetico pacchetto TCP/IP di richiesta di una pagina dal sito e il relativo pacchetto di risposta, per comprendere il funzionamento. Il pacchetto di richiesta diretto verso la porta 80 del server entra dalla scheda esterna eth0 del firewall. Nel processo di PREROUTING il firewall verifica che questo pacchetto corrisponde ad una determinata regola e ne modifica il destinatario (DNAT) sostituendo l indirizzo di destinazione con il La tabella di routing vede ora un pacchetto destinato a questo host interno e lo instrada sulla scheda eth1 permettendo al pacchetto di giungere sul server web realmente presente sulla rete. Il server web interno processa la richiesta e prepara un pacchetto di risposta. Questo pacchetto torna quindi sul firewall che riconosce questo come pacchetto di risposta relativo al pacchetto che poco prima lui aveva modificato; lo modifica sostituendo all indirizzo di sorgente intranet il proprio indirizzo e lo inoltra all host remoto. 18

19 Risultato, dal punto di vista dell host remoto:. La configurazione di IPTables per ottenere questo risultato è molto semplice: -t nat A PREROUTING p tcp d dport 80 j DNAT -to Come si vede, non è stato necessario specificare la porta di destinazione in quanto la mappatura delle porte è la stessa. Se internamente il server web era attivato su una porta non standard e quindi differente dalla porta 80 si sarebbe dovuto aggiungere questa informazione alla riga di configurazione del DNAT. Ovviamente quello che funziona per un servizio funziona anche con molti. Si possono così avere più server interni e mapparli esternamente utilizzando il solo indirizzo IP del firewall. Se però si cerca di esportare due server dello stesso tipo, per esempio due server web attivati su due macchine differenti, solo uno dei due potrà essere visto esternamente presente su firewall sulla porta web standard. L altro dovrà essere mappato su una porta xx non standard e sarà visibile esternamente solo tramite l url. 3.3 MANGLE Impostando opportune regole in questa tabella sarà possibile modificare internamente il pacchetto che vi transita. Risultano possibili infatti modifiche ai valori ToS (Type of Service) e TTL (Time to Live) dell header. Si può inoltre imprimere una marcatura al pacchetto per destinarlo ad un trattamento successivo attraverso appositi programmi esterni. Ad esempio, in alcune situazioni, potrebbe essere conveniente stabilire una diversa 19

20 politica di routing basata sulla marcatura dei pacchetti o implementare un particolare sistema di QoS (Quality of Services). Tutto ciò è possibile utilizzando appositi strumenti messi a disposizione, per esempio, dal pacchetto iproute2. 4. Le catene speciali Quando avviene il match tra una regola e un pacchetto, l utente che configura IPTables è tenuto a specificare che sorte fare seguire al pacchetto stesso attraverso un operazione di jump. Un pacchetto può essere quindi inoltrato su un altra catena, accettato o eliminato. Vengono preconfigurate all avvio le seguenti catene: ACCEPT Il pacchetto smette di attraversare la catena e le altre presenti nella tabella corrente e viene direttamente accettato dal sistema e inoltrato all applicazione interessata ad esso; DROP Il pacchetto viene rifiutato dal sistema; LOG Alcune informazioni sul pacchetto vengono memorizzate nei log del firewall attraverso syslog. Il pacchetto continuerà quindi il suo percorso all interno della catena; DNAT Quando un pacchetto viene inoltrato nella catena DNAT, è possibile specificare a quale indirizzo IP inoltrare le connessioni (IPTables sostituirà quindi il campo destinazione del pacchetto con quello indicato dell utente); SNAT Quando un pacchetto viene inviato nella catena SNAT, è possibile specificare quale indirizzo IP utilizzare come sorgente del pacchetto. In questo modo sarà possibile mascherare la rete interna privata servendosi di un indirizzo IP pubblico; MASQUERADE Si tratta di un particolare tipo di SNAT nel quale l indirizzo 20

21 5. Le policy pubblico da impostare come mittente del pacchetto verrà individuato automaticamente dal sistema. Una volta che un pacchetto finisce di attraversare una catena senza che sia stata intrapresa nel frattempo alcuna azione, ritorna nella catena di partenza, al punto successivo in cui era stato dirottato. La sorte del pacchetto, una volta terminato l attraversamento delle catene INPUT, OUTPUT o FORWARD, è condizionato dalla policy della catena stessa impostata dall utente. A questo punto infatti potrà solamente essere accettato oppure rifiutato. 6. Introduzione al Traffic Shaping Traffic Shaping è un generico termine assegnato ad una moltitudine di tecniche atte a sviluppare politiche di prioritizzazione del traffico di dati in una rete. La maggior parte degli utenti di una rete hanno, prima o poi, sperimentato la frustrante esperienza della latenza e accodamento dei dati della rete internet. Chi ha usato servizi come telnet o ssh su un collegamento lento come un dial-up PPP o SLIP, ha visto gli effetti che il file transfer ha sul traffico interattivo. Il file transfer (download o upload che sia) divora facilmente le risorse di larghezza di banda costringendo il servizio interattivo ad un lungo accodamento in attesa di uno slot libero prima di poter trasmettere. Il problema è causato per il fatto che il flusso dei dati del file transfer ha uguale priorità rispetto a quello del servizio interattivo. Il traffico è regolato da una coda FIFO (First In, First Out). 21

22 Il Traffic Shaping ci permette di implementare una specifica politica che altera il meccanismo secondo cui vengono accodati i dati in trasmissione. È necessario a questo punto chiarire che una politica di shaping può essere applicata solo al traffico in uscita da un interfaccia. Il traffico in arrivo, nel momento in cui è giunto all interfaccia, ha ormai irrimediabilmente occupato una certa banda di trasmissione e non è più possibile operare alcun incodamento straordinario. Questo però non significa che sia impossibile modellare il traffico in download verso la nostra interfaccia. 7. La struttura e i comandi per il controllo del traffic Linux offre un ricco set di funzioni per il controllo del traffico come i comandi tc, iptables, iproute e così via i quali si appoggiano su una struttura definita nel kernel del sistema operativo. Cerchiamo di definire in che modo vengono elaborati i pacchetti all interno delle macchine linux. A livello più alto possibile possiamo immaginare una situazione come quella di figura: La figura mostra come il kernel processi i dati ricevuti dalla rete e come esso possa generare nuovi dati che dovranno essere spediti sulla rete: i pacchetti entranti possono sia essere reindirizzati immediatamente sulla rete (magari su diverese interfacce nel caso di un router), sia essere passati al livello superiore della pila protocollare (come ad esempio un 22

23 protocollo di trasporto) per essere processati. Il forwarding include la selezione dell interfaccia di uscita, la selezione del prossimo salto, l incapsulamento e così via. Una volta fatto questo i pacchetti sono accodati sulle rispettive interfacce dove vigeranno le discipline di accodamento per la gestione del traffico. 8. Iproute2 All interno del blocco input de-multiplex possiamo immaginare la routing table relativa ai pacchetti provenienti dall esterno e che devono essere reindirizzati. Il pacchetto per la gestione dell indirizzamento è iproute2. Questo risulta essere uno strumento molto flessibile e completo in quanto è possibile definire più tavole di routing da consultare a seconda della sorgente del pacchetto, della destinazione o semplicemente dell utente che richiede l utilizzazione della risorsa. Tra la miriade di comandi disponibili quelli di cui ha più senso parlare in questa sede sono: ip route: aggiunge o cancella una riga della routing table in cui sono contenute le informazioni sui percorsi per raggiungere gli altri nodi di rete; ip rule: definisce delle regole di instradamento non dipendenti solo dalla sorgente e dalla destinazione del pacchetto ma anche da altri campi dell header. Per fare ciò definisce più routing table a seconda del tipo di pacchetto. Ma le diverse routing table dovranno comunque essere gestite tramite ip route; ip link: setta le caratteristiche dei dispositivi di uscita (schede di rete, modem); ip address: associa indirizzi ip ai dispositivi di rete. Internamente ad iproute, il concetto di classe è utilizzato per aggregare traffico con 23

24 caratteristiche comuni. Si hanno quindi i filtri che servono a determinare quali pacchetti devono andare in ogni determinata classe. Avendo poi pacchetti presenti in più classi, è compito dello scheduler decidere in che ordine servire le diverse classi. Una delle caratteristiche più interessanti di iproute è la possibilità di avere una gerarchia di elementi. Supponiamo ad esempio di avere una configurazione come nella figura sottostante: Se ad un certo punto ci si rende conto che all interno di una certa classe ci sono diversi sottotipi di traffico che necessitano di essere trattati diversamente, è possibile sostituire la classe con uno scheduler sotto al quale porre diverse sottoclassi e i rispettivi filtri. Come risulta evidente nell immagine sottostante. 24

25 Non è poi obbligatorio utilizzare gli stessi algoritmi di incodamento (queueing) per le classi di uno stesso scheduler. Sempre nella figura sovrastante si potrebbe ad esempio utilizzare la tecnica FIFO per la classe1, RED per la classe2 e via dicendo. Questo consente di avere un alto grado di flessibilità. 9. Queueing discipline La queueing discipline di iproute altro non sono che schedulers. Nella tabella sottostante sono riportate le componenti di iproute divise per categoria. Non potendole vedere tutte in dettaglio, spiegherò il funzionamento delle più importanti. 25

26 9.1 PRIO Questo scheduler semplicemente mantiene più classi a diversa priorità e le serve in ordine decrescente di quest ultimo. Quando si utilizza questo tipo di scheduler, occorrerebbe assicurarsi che non sia possibile che il traffico a minor priorità possa soffrire di starving, ossia rimanga in attesa indefinita a causa della permanente presenza di traffico prioritario. Quando questo accade significa probabilmente che l assegnazione della priorità non è stata fatta correttamente. Una soluzione consiste ovviamente nel ridefinire le classi e i filtri (quale tipo di traffico in quale classe) o agganciare a una o più di queste una tecnica di incodamento che ne limiti la dimensione. In questo modo le classi prioritarie mantengono la precedenza sulle altre, ma, avendo un rate massimo associato, assicurano alle rimanenti di ricevere una parte della banda. 9.2 CBQ (Classs Based Queueing) CBQ rappresenta sicuramente lo scheduler più complicato tra quelli disponibili per Linux. I suoi principi consistono nella possibilità di ripartizionare la banda tra protocolli diversi e/o tra diversi utenti (o organizzazioni). Una loro combinazione (ripartizione sia per utenti che per protocolli) è ovviamente ancora possibile (l algoritmo è gerarchico e consente di ripartire a piacere ciascuna sottoclasse). Ci sono comunque altre interessanti opzioni, che però ne complicano l implementazione. Quando una delle classi non utilizza completamente la fetta di banda assegnata, i surplus potrebbe risultare uno spreco se riciclato opportunamente dalle altre classi, in particolare da quelle che si trovano ad avere bisogno di più banda di quella a loro disposizione. 26

27 Per ogni classe è inoltre possibile definire i seguenti flag: Bounded: La classe non può prendere in prestito alcuna banda dai suoi antenati. Se ad esempio classe 2 e classe 3 non hanno traffico, scheduler 1 si trova ad avere della banda a disposizione che è inutilizzata. Se dichiariamo classe 1 bounded, significa che questa non può usufruire di tale surplus; Isolated: La classe non può né prendere in prestito dagli antenati né prestare a classi non sue discendenti. Non solo classe 1 non può usare la banda di scheduler non utilizzata da classe 2 e 3, ma, nel caso classe 1 fosse dichiarata isolated, la banda assegnata a classe 1 che non viene usata non potrebbe essere riciclata da classe 2 e Algoritmi di incodamento Uno schedaler a senso quando sono presenti più code. In presenza di un unica coda, non si para più di scheduler, ma di strategia di incodamento. In realtà scheduler e strategia di incodamento sono la stessa cosa e differiscono solo nel numero di code (classi nel nostro caso) che gestiscono. Dopo tutto una tecnica di incodamento riceve elementi secondo una certa sequenza temporale e lì preleva con un altra sequenza o, nel caso particolare della coda FIFO, nella stessa sequenza. Al contrario della queueing disciplines, gli algoritmi di incodamento quindi lavorano (normalmente) su una singola classe. Essendo una sola la classe gestita da questi scheduler, coda o buffer è probabilmente un nome più appropriato. 27

28 10.1 CPFIFO/BFIFO (Packet FIFO/Byte FIFO) Questi due scheduler rappresentano due semplici varianti della versione base FIFO. L unica differenza consiste nel modo in cui viene specificata la lunghezza della coda. PFIFO definisce la dimensione della coda in termini di numero pacchetti mente BFIFO in termini di byte. In alcuni casi, ad esempio può essere più comodo definire la coda di lunghezza 100 pacchetti; in altri contesti invece può essere meglio dire che non può contenere più di 100 Kbyte RED (Random Early Detection) Il Grafico di figura mostra come varia la probabilità che un nuovo pacchetto venga posto in coda o scartato a seconda del valore di alcuni parametri. Una coda RED può essere vista come una variante particolare di una coda FIFO. Mente per FIFO occorre specificare solo la dimensione massima della coda e tutti i pacchetti che arrivano dopo che la coda è piena sono scartati incondizionatamente, i RED cambia il principio utilizzato per decidere se accettare un nuovo pacchetto (metterlo in coda) o scartarlo. I pacchetti sono comunque estratti secondo la logica FIFO. Quello che cambia quindi è solo il principio di inserimento. Anzitutto occorre definire due soglie anziché una: soglia minima e soglia massima. Serve inoltre specificare la probabilità con cui scartare i pacchetti. 28

29 Per semplicità chiamiamo questi pacchetti S1, S2, e P, come è possibile vedere nella figura sovrastante. Fin tanto che la lunghezza della coda si mantiene al di sotto di S1, i pacchetti sono aggiunti alla coda e questa si comporta in tutto e per tutto come una FIFO. Quando la coda ha una lunghezza maggiore o uguale a S2 i pacchetti sono scartati incondizionatamente, il che significa che la coda non potrà mai superare la lunghezza S2. Tra S1 e S2 invece, la probabilità che un pacchetto venga scartato, e quindi non inserito in coda varia linearmente tra 0 (in S1) e P (S2). Supponendo di avere le due soglie con valori S1=50, S2=100 e P=25%, la tabella riporta la probabilità in corrispondenza di diversi valori. GRED rappresenta una variante di RED, che consente di avere più classi di priorità su cui poter mappare diversi livelli di priorità di scarto. Per default le classi sono 16, ma il numero può essere cambiato TBF (Token Bucket Flow) Il token bucket viene normalmente utilizzato per limitare la banda di una classe di traffico. Sebbene CBQ e BFIFO consentano apparentemente di ottenere la stessa cosa, c è in realtà una sottile differenza. Il principio di funzionamento è molto semplice. Supponiamo di voler forzare una banda a 1 Mbit/s. Fissiamo un numero n a piacere ogni 1/n di secondo viene incrementata 29

30 la banda a disposizione di 1/n Mbits. Questo consente di distribuire la banda a disposizione uniformemente nell unità di secondo. Se ad esempio n valesse 100, allora ogni 1/100 di secondo verrebbe aggiunto 1/100 Mbits = 10 Kbits alla banda a disposizione, stando ovviamente sempre attenti a non superare il valore massimo (nell esempio 1Mbits). Il comportamento da seguire nel caso non ci fosse banda a disposizione dipende dalla configurazione dello scheduler. Normalmente il traffico in eccesso viene scartato. Una possibile variante consiste nel declassare il traffico, ovvero penalizzarlo riducendogli la priorità. 11. Classificatori Un classificatore altro non è che una coppia (condizione, classe) che associa il traffico che soddisfa la condizione alla classe. Ovviamente più filtri possono essere associati ad una stessa classe. Per ovvie ragioni non ha senso una classe senza alcun filtro associato. I classificatori si differenziano per il tipo di condizioni che consentono di esprimere, sebbene sia talvolta possibile esprimere lo stesso vincolo con diversi classificatori u32 Questo classificatore è tanto semplice quando potente: consente di esprimere condizioni sul valore di uno o più campi degli header IP,TCP,UDP,ICMP. 30

31 11.2 Fw (firewall IPTables) Uno dei flag utilizzati nelle ACL (access list) del firewall linux consente di marcare con uno specifico valore i pacchetti che lo soddisfano. Questo comando, presente nel file di configurazione del firewall (/etc/sysconfig/iptables) dice di marcare con il valore di 1 i pacchetti TCP appartenenti alla porta 80, entranti dall interfaccia eth1 e uscenti dall interfaccia eth0. -A FORWARD -p TCP -i eth1 -o eth0 --dport 80 -j MARK --set-mark 1 Il classificatore fw, quindi, è in realtà un classificatore piuttosto stupido che si limita a leggere il valore dell etichetta posta dal firewall. In questo caso, quindi, l intelligenza sta tutta nel firewall. 12. Introduzione alla CDL I due principali tool di configurazione sono ip e tc, sebbene, come abbiamo visto sopra, sia in realtà possibile usare applicazioni esterne, come il firewall IPTables per marcare (classificare) il traffico. Mentre ip lo si può vedere come sostituto di ifconfig e route, tc è invece utilizzato per la configurazione dello scheduler vero e proprio. I comandi principali di cui abbiamo bisogno sono quelli che consentono di: Definire lo scheduler da usare; Creare classi; Definire filtri per l associazione traffico->classe. Digitando il comando senza alcun parametro, o un comando incompleto seguito dalla 31

32 parola help, è possibile ottenere un aiuto sulla sintassi rispettivamente generale e contestuale, come mostrato dai due esempi che seguono: router# tc Usage: tc [ OPTION ] OBJECT { COMMAND help } where OBJECT := { qdisc class filter } OPTIONS := { -s[tatistics] -d[etails] - r[aw] } router# tc qdisc add dev eth0 cbq help Usage: cbq bandwidth BPS avpkt BYTES [ mpu BYTES ] [ cell BYTES ] [ ewma LOG] Ogni elemento (classificatore, scheduler, ) richiede alcuni parametri specifici che non avrebbero senso ad esempio per un altro elemento (es. isolated è usato solo da CBQ), mentre ce ne sono alcuni che sono necessari ed obbligatori per tutti: Device: indica l interfaccia a cui si riferisce. Ogni interfaccia può infatti avere il suo scheduler; Handle: È un numero a due cifre, rappresentato nella forma X:Y, dove in genere i valori X:0 sono assegnati ai nodi dell albero (quelli con figli, come scheduler 1 e 2) mentre X:Y sono utilizzati dalle foglie. Tutti i figli X:0 devono avere un handle della forma X:Y, ovvero ereditano X dal padre; Parent: Dovendo agganciare un elemento ad un altro, come un filtro ad un altro, come un filtro ad uno scheduler, occorre definire il nodo di aggancio, il parent appunto; Azione: Con ogni comando si aggiunge o rimuove un elemento (Add, Remove) o si stampano a schermo alcune statistiche su uno già esistente (Show). 32

33 Se volessimo creare una terza classe sotto scheduler 1, dovremmo usare un comando con i seguenti parametri. Device=eth0 Handle=1:3 Parent=1:0 Azione=add 13. Esempi pratici Nella seguente immagine è visibile lo schema di rete in cui ho applicato il traffic shaping. Sono presenti due schede di rete a 10 Mbit una affacciata su Internet l altra sulla LAN. 33

34 13.1 Prioritizzazione Supponiamo che al traffico web e ftp deve essere applicata la priorità massima, quindi marchiamo questo tipo di traffico con il firewall attraverso la tabella MANGLE: # Marca traffico HTTP -A FORWARD -p TCP -i eth1 -o eth0 --dport 80 -j MARK --set-mark 1 -A FORWARD -p UDP -i eth1 -o eth0 --dport 80 -j MARK --set-mark 1 # Marca traffico HTTPS -A FORWARD -p TCP -i eth1 -o eth0 --dport 443 -j MARK --set-mark 1 -A FORWARD -p UDP -i eth1 -o eth0 --dport 443 -j MARK --set-mark 1 # Marca traffico FTP -A FORWARD -p TCP -i eth1 -o eth0 --dport ftp -j MARK --set-mark 1 -A FORWARD -s 0/0 -p tcp! --syn --sport ftp -j MARK --set-mark 1 -A FORWARD -s /24 -p tcp --sport 1024: -d 0/0 --dport 1024: -j MARK --set-mark 1 -A FORWARD -s 0/0 -p tcp! --syn --sport 1024: -d /24 --dport 1024: -j MARK --set-mark 1 Agganciamo lo scheduler con priorità all interfaccia eth0: router# tc qdisc add dev eth0 root handle 1: prio Mappiamo il traffico marcato dal firewall sulla classe a maggior priorità: router# tc classied 1:1 filter add dev eth0 protocol ip parent 1:0 prio 1 handle 1 fw 13.2 Suddivisione di banda Successivamente ho provato a dividere la banda nel seguente modo: 10% della banda (1Mbit) assegnato al traffico web (HTTP,HTTPS); 30% della banda (3Mbit) assegnato al traffico ftp; 60% della banda (6Mbit) assegnato al traffico rimanente. 34

35 Quando una delle tre classi di traffico non utilizza tutta la banda allocatagli, la parte inutilizzata deve poter essere riciclabile dalle altre. Può quindi capitare che in un dato istante, non essendoci né traffico ftp né web, tutti i 10Mbit a disposizione sono utilizzabili per il resto del traffico. Marchiamo le tre categorie di traffico (web, ftp, altro) con tre diversi valori (1,2,3). # Marca traffico HTTP -A FORWARD -p TCP -i eth1 -o eth0 --dport 80 -j MARK --set-mark 1 -A FORWARD -p UDP -i eth1 -o eth0 --dport 80 -j MARK --set-mark 1 # Marca traffico HTTPS -A FORWARD -p TCP -i eth1 -o eth0 --dport 443 -j MARK --set-mark 1 -A FORWARD -p UDP -i eth1 -o eth0 --dport 443 -j MARK --set-mark 1 # Marca traffico FTP -A FORWARD -p TCP -i eth1 -o eth0 --dport ftp -j MARK --set-mark 1 -A FORWARD -s 0/0 -p tcp! --syn --sport ftp -j MARK --set-mark 1 -A FORWARD -s /24 -p tcp --sport 1024: -d 0/0 --dport 1024: -j MARK --set-mark 1 -A FORWARD -s 0/0 -p tcp! --syn --sport 1024: -d /24 --dport 1024: -j MARK --set-mark 1 # Marca traffico gtk-gnutella -A FORWARD -p TCP -i eth1 -o eth0 --dport 6346:6348 -j MARK --set-mark 2 -A FORWARD -p UDP -i eth1 -o eth0 --dport 6346:6348 -j MARK --set-mark 2 -A FORWARD -p TCP -i eth1 -o eth0 --dport j MARK --set-mark 2 -A FORWARD -p UDP -i eth1 -o eth0 --dport j MARK --set-mark 2 # Marca traffico emule -A FORWARD -p TCP -i eth0 -o eth1 --dport j MARK --set-mark 3 -A FORWARD -p TCP -i eth1 -o eth0 --dport j MARK --set-mark 3 -A FORWARD -p UDP -i eth0 -o eth1 --dport j MARK --set-mark 3 -A FORWARD -p UDP -i eth1 -o eth0 --dport j MARK --set-mark 3 -A FORWARD -p TCP -i eth1 -o eth0 --dport j MARK --set-mark 3 -A FORWARD -p UDP -i eth1 -o eth0 --dport j MARK --set-mark 3 -A FORWARD -p UDP -i eth0 -o eth1 --dport j MARK --set-mark 3 -A FORWARD -p TCP -i eth0 -o eth1 --dport j MARK --set-mark 3 Agganciamo lo scheduler CBQ all interfaccia eth0: router# tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt

36 Creiamo la classe radice: router# tc class add dev eth0 parent 1:10 classid 1:10 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000 Creiamo le tre sottoclassi: router# tc class add dev eth0 parent 1:10 classid 1:11 cbq bandwidth 10Mbit rate 1Mbit allot 1514 weight 100Kbit prio 5 maxburst 20 avpkt 1000 router# tc class add dev eth0 parent 1:10 classid 1:12 cbq bandwidth 10Mbit rate 3Mbit allot 1514 weight 300Kbit prio 5 maxburst 20 avpkt 1000 router# tc class add dev eth0 parent 1:10 classid 1:13 cbq bandwidth 10Mbit rate 6Mbit allot 1514 weight 600Kbit prio 5 maxburst 20 avpkt 1000 Definiamo i filtri che associano il traffico alle classi: router# tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 1 fw classid 1:11 router# tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 2 fw classid 1:12 router# tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 3 fw classid 1:13 A questo punto lo scheduler è configurato, ma per testarlo occorre vedere se i filtri si comportano bene assegnando il traffico alle giuste classi. Con l opzione show è possibile vedere i dettagli su classi, scheduler e filtri. In particolare si può avere un resoconto su quanti pacchetti e quanti byte le sono stati associati dai filtri, quanti sono stati scartati ecc. Nel caso di CBQ viene mostrata anche la quantità di banda di cui una classe è andata in prestito. Utilizzando i flag -s e -details è possibile ottenere maggiori dettagli. Successivamente vengono visualizzate le statistiche, dopo che ho impostato la banda 36

37 riservata al traffico web a 100Kbit e ho generato parecchio traffico web con l applicazione Teleport Pro. router# tc s qdisc show dev eth0 qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit Sent bytes pkts (dropped 0, overlimits 0) borrowed 0 overactions 0 avgidle 569 undertime 0 router# tc s class show dev eth0 class cbq 1:11 parent 1:10 rate 10Kbit prio 5 Sent bytes pkts (dropped 0, overlimits 0) borrowed 8375 overactions 0 avgidle undertime class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit Sent bytes pkts (dropped 0, overlimits 0) borrowed 0 overactions 0 avgidle 587 undertime 0 class cbq 1:10 parent 1: rate 10Mbit prio no-transmit Sent bytes pkts (dropped 0, overlimits 0) borrowed 8375 overactions 0 avgidle 605 undertime 0 class cbq 1:13 parent 1:10 rate 6Mbit prio 5 Sent bytes pkts (dropped 0, overlimits 0) borrowed 0 overactions 0 avgidle undertime 0 class cbq 1:12 parent 1:10 rate 3Mbit prio 5 Sent 9076 bytes 111 pkts (dropped 0, overlimits 0) borrowed 0 overactions 0 avgidle undertime 0 Come si nota dal codice sovrastante la 1:11 è andata in prestito di banda (borrowed!=0). Se poi si aggiungono i due flag bounded e isolated, rimanendo in condizioni di traffico in eccesso per la classe 1:11, possiamo vedere che il surplus viene scartato (dropped!=0 e borrowed=0): router# tc s qdisc show dev eth0 qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit Sent bytes pkts (dropped 62, overlimits 51045) backlog 99p borrowed 0 overactions 0 avgidle 587 undertime 0 router# tc s class show dev eth0 class cbq 1:11 parent 1:10 rate 10Kbit (bounded,isolated) prio 5 Sent bytes pkts (dropped 76, overlimits ) backlog 100p borrowed 0 overactions 8090 avgidle undertime class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit Sent bytes pkts (dropped 0, overlimits 0) borrowed 0 overactions 0 avgidle 624 undertime 0 class cbq 1:10 parent 1: rate 10Mbit prio no-transmit Sent bytes pkts (dropped 0, overlimits 0) borrowed overactions 0 avgidle 624 undertime 0 37

38 class cbq 1:13 parent 1:10 rate 6Mbit prio 5 Sent bytes pkts (dropped 0, overlimits 0) borrowed 0 overactions 0 avgidle undertime 0 class cbq 1:12 parent 1:10 rate 3Mbit prio 5 Sent bytes 164 pkts (dropped 0, overlimits 0) borrowed 0 overactions 0 avgidle undertime 0 È interessante osservare che 76 pacchetti destinati alla classe 1:11 sono stati scartati e la coda (backlog) associata contiene 100 elementi (il valore massimo), ossia è satura. Questo è un chiaro segnale che la banda assegnata a tale classe non è sufficiente. Per quanto flessibile ci sono anche alcune limitazioni, ad esempio non è possibile configurare uno scheduler da applicare a tutto il traffico in uscita o a tutto quello in ingresso; occorre sempre agganciarsi ad un interfaccia specifica. 14. Introduzione Master Shaper Master Shaperè un interfaccia web per le utilities per il traffico di rete sotto Linux. Essa è provvista di un interfaccia web facile da usare, per gestire la Qualità del Servizio (QoS). E funzionante in sistemi Linux con kernel 2.4 e 2.6. Gli utenti possono definire le regola per trattare il flusso di dati e anche ricevere l affidabilità attraverso un grafico di statistica che riguarda il consumo di banda e la situazione dello shaping. Attualmente Master Shaper è soltano un utility di shaping. Esso non include un analizzatore per il traffico di rete come i prodotti commerciali. Esso non è in grado di mostrare cosa fluisce nella rete. Esso visualizzerà soltanto quello che crede di vedere in accordo con le regole. 38

39 14.1 Requisiti Versione 2.4 o 2.6.x del kernel Linux; Iproute2 che contiene il comando tc; IMQ-Device (Se si vuole controllare il traffico in ingresso); Web-Server con supporta PHP (Apache2, mod_php4); PHP4 con JPEG, libgd e il supporto di MySQL (non testato con le PHP5); Database MySQL (MySQL 4.1); PHP pear modules DB & Net_IPv4; Perl con l iterfaccia DBD (DABI-MySQL); Phpplayersmenu; Jpgraph; Web-browser (con DHTML e il supporto per il JavaScript) IMQ Devices L utility tc è adatta per il traffico in uscita, e si hanno molte opzioni di configurazione per trattare il traffico di rete. Per quando riguarda il traffico in ingresso, invece, ci sono poche possiblitià di controllarlo e le utility sono alquanto rudimentali. Il problema della trattazione del traffico in ingresso, è che quando arriva nell iterfaccia, esso risulta in linea e quindi consuma banda. Si ha soltanto la possiblità di droppare i pacchetti in ingresso o spedire i pacchetti acknowledge (ACK) e sperare che il sender spedisca più lentamente i pacchetti. Tuttavia in questo caso si è in una posizione sfavorevole, rispetto al flusso di rete e il 39

40 trattamento in ingresso è meno efficace rispetto a quello in uscita. Tuttavia i prodotti commerciali risolvono questo problema e accusano i prodotti QoS dasati si Linux di essere dei cattivi prodotti. La soluzione ideale è trattare il traffico in entrambe le posizioni. IMQ Device Intermediate Queueing Device è una soluzione per risolvere questo problema. Con regole di IPtables il traffico di ingresso e uscita e forwardato sul dispositivo di coda. Il vantaggio di questo è la possiblità di usare le regole di traffico di uscita, sul traffico di ingresso. Per usare i dispositivi IMQ occorre patchare il kernel e IPtables. E possibile usare i comandi successivi per poter usare i dispositivi IMQ: ip link set imq0 up ip link set imq1 up iptables t mangle I PREROUTING i eth0 j IMQ todev 0 iptables t mangle I POSTROUTING o eth0 j IMQ todev 1 Quando si patcha il kernel per poter usare i dispositivi IMQ occorre ricordare di abilitare, durante la ricompilazione del kernel, le seguenti opzioni: CONFIG_IMQ e CONFIG_IP_NF_TARGET_IMQ. Non è possibli usare le regole IPtables per i dispositivi IMQ. Per essi è possibile usare soltanto tc-filter. IPtables non è ingrado di machare i pacchetti per farli apparire nei dispositivi IMQ Queuing Disciplines Dalla versione 0.30 è possibile usare tre discipline di coda: HTB (Hierarchical Token Buket); HFSC (Hierarchical Fair Service Curve); 40

41 CBQ (Class Based Queueing). Discipline di coda forniscono differenti aggiunte per fare tale lavoro. HTB: è capace di supportare un guaranteed minimum badwidth per una classe di traffico. Inoltre esso permette di difinire il maximum bandwidth, una classe può prendere in prestito la banda da altre classi se risultano non usate. E possibile definire burst levels e priorization della classe HTB. La prioritizzazione ha effetto soltanto sulla banda non usata e una classe può prestare banda alle altre classi. Chi ha alta priorità otterrà più banda. Se si sceglie HTB nel settaggio del Mastershaper. E possibile usare per classificare SFQ (Stochastic Fairness Queueing), come meccanismo di coda finale quando verranno spediti pacchetti fuori verso gli strati bassi. HFSC: è capace di supportare un guaranteed minimum delay di pacchetti di rete. Questo è importante per le applicazioni real time come Voce pramite IP (VoIP), dove il ritardo e segnali di disturbo a un impatto sulla qualità. Con HFSC è possibile definire un minimum guaranteed bandwidth per ogni classe, e un maximum bandwight il quale risulta usufruibile da questa classe. CBQ: esiste da molto più tempo rispetto HTB ma ha meno opzioni per il controllo del traffico. Mastershaper supporta CBQ nel caso in cui HTB non è disponibile. Mastershaper per default usa HTB, comunque è possibile cambiare questa scelta comodamente dall interfaccia web. 41

42 15. Uso Mastershaper usa delle condizioni per definire le regole di shaping Bandwidth Badwidth significa la velocità della rete nel link. Mastershaper usa la definizione della velocità in kbit per secondo (kbit/s) Protocolli E possibile trovare più protocolli in un ambiente di rete. In questo caso però consideriamo soltanto il traffico IP o il traffico ICMP (ping) ma ci sono molti altri protocolli come ESP & AH per IPSec, GRE per GRE-Packet-Tunnelling o i protocolli del Router come IGMP. Comunque ogni protocollo ha un unico numero assegnato dallo IANA Porte Le porte riflettono i comuni numeri di porta per il traffico TCP & UDP (http/80, IMAP/143, ). Durante l installazione è possibile istruire Mastershaper per riempire la tabella delle porte con tutte le porte assegnate dallo IANA Targets Targets significa IP-Addresses o MAC-Addresses. IP-Addresses può specificare un singolo host ( ), l indirizzo di rete ( /8) o un range ip ( ). MAC-Addresses può solo essere usato con IPTables. Più targets possono essere raggruppati insieme come target group. 42

43 15.3 Service Levels Service Levels significa limiti predefiniti di banda. E possibile definire i dettagli dei paramentri per le discipline di coda HTB, HFSC o CBQ. Per CBQ si può specificare il rate e la priorità. In aggiunta è possibile definire il limite massimo e la fuoriuscita con HTB per il traffico di ingresso e di uscita. (linee asimmetriche). Per HFSC è possible specificare il massimo ritardo dei pacchetti di rete Filtres Filters rappresenta il metodo per confrontare il traffico con delle regole definite. Per esempio è possibile definire una regola per filtrare il trffico Web controllando le porte HTTP e HTTPS rispettivamente 80/tcp e 443/tcp. Inoltre è possibile controllare Il flag-tos, TCP, IPP2P, layer7, tempo e lunghezza del pacchetto.. La disponibilità delle funzioni filtro dipende dal sistema di matching che viene usato. Mastershaper supporta tc-filter e iptables. Mentre tc-filter è veloce ed è già integrato nel pacchetto iproute2. Iptables è un sottosistema addizionale che supporta molte elaborate metodi di confronto. Se le molte funzioni di IPTables non sono richieste, è possibile usare tc-filter. Per scoprire se IPTables supporta tutte le caratteristiche di Mastershaper, occorre verificare se i necessari moduli di confronto sono disponibili nella directory dei moduli di IPTables (tipicamente /lib/iptables). Libipt_TOS.so Libipt_tcp.so Libipt_ipp2p.so Libipt_time.so Libipt_length.so Per il confronto TOS Per il confronto TCP-flag Per il confronto IP-P2P Per il confronto Time Per il confronto della lunghezza del pacchetto 43

44 Libipt_layer7.so Libipt helper.so Libipt_conntrack.so Per il confronto del protocollo layer7 Per il confronto ftp data channel Per il confronto ftp data canne Mastershaper generalmente non controlla se questi moduli sono presenti. Se si ricevono alcuni errori quando si leggono le regole di IPTables, occorre verificare se tutti i moduli sono installati correttamente Layer7 protocol matching Dalla versione V0.32 il layer7 protocol maching viene supportato ed è ben integrato all intermo di Mastershaper. Dal opzione Uptade L7 Protocol Mastershaper è possibile vedere il nome del protocollo e salvarlo nel database. Se si aggiorna l installazione dell l7- filter è possibile eseguire quest opzione in Mastershaper Catena Le catene sono canali di traffico. Ogni catena a assegnato un livello di servizio, ossia la massima banda disponibile all interno del canale. Se si ha una sola catena, questo livello di servizio è normalmente uguale alla velocità della linea. (2048/1024kbit/s per esempio). In aggiunta ogni catena ha un livello di servizio di fall-back e ogni traffico che non può essere confrontato attraverso una definizione di pipe può soltanto usare la banda del livello di servizio di fall-back. Cosi Mastershaper è sicuro che nessun traffico non conosciuto può consumare tutta la banda. Per iserire del traffico all interno di una catena, esso viene confrontato con una definizione di target. Le altre regole delle catene sono importanti. Il primo confronto vince, 44

45 non quello che è più giusto per un determinato tipo di traffico. Così se si ha due catene con i seguenti target (in questo ordine): / Il traffico tra sarà confrontato dalla catena con il target /24 e non dalla catena con il target Se non si vuole specificare gli ndirizzi IP targets è possibile usare any durante l ipostazione della catena. E anche possibile definire una catena che ignora completamente i settaggi QoS. Questo è utile se si vuole che il traffico non venga toccato da alcuni settaggi dello shaper (LAN DMZ). Le catene che ignorano i settaggi del QoS non sono memorizzate attraverso tc_collector.pl e non vengono visualizzate dal grafico di monitoraggio Pipes Le pipe tengono catene filters e livelli diservizio insieme. In aggiunta è possibile specificare la direzione della pipe (incoming, outgoing). E possibile anche assegnare un livello di servizio, con regolare uso della banda in questa pipe. La banda corrente distribuita tra le pipes può essere visualizzata dall opzione Pipes Bridge o Router Un Bridge è un dispositivo trasparente di rete. Normalmente si è connessi a un Router (cisco, nortel, ) direttamente allo switch di rete. Ora è possibile connettere il router alla prima interfaccia del bridge. La seconda interfaccia del bridge è connessa allo switch di rete. Il bridge agisce in modo invisibile per ogni connessione tra il router e la rete. Ma si è capaci di influire sul flusso di rete in entrambe le interfaccie del bridge. 45

46 Un Router connette insieme due differenti reti ( /24 e /24). Nessuno dei clients in differenti sottoreti conosce gli altri clients nelle altre reti. Loro conoscono solamente dove poter spedire il pacchetto per le altre reti (via default gateway, route, ) Il router conosce soltanto la sua tabella di routing, dove poter spedire i pacchetti. Il trattamento dei pacchetti è esattamente confrontato con le interfacce di rete ed è leggermente differente tra router e bridges. Tramite Mastershaper è possibile impostarlo. 16. Installazione del pacchetto Alcuni passi nella procedura di installazione a bisogno della conoscenza di alcuni comandi basilari di MySQL. Per semplificare la procedura è possibile utilizzare il tool phpmyadmin per far leggere il database a Mastershaper. Passi per poter installare Mastershaper: Creare un nuovo database MySQL I comandi successivi permette di creare a riga di il database shaper e assegnarlo ad un utente di nome shaper con password shaper. mysql u root -p create database shaper; GRANT ALL ON shaper.* TO IDENTIFIED BY shaper ; Estrarre il pacchetto Masteshaper Occorre estrarre il pacchetto mastershaper_x.xx.tar.gz su una directory temporanea: mkdir /tmp/shaper cd /tmp/shaper tar zxfv (PATH_WHERE_FILE_IS_LOCATED)/mastershaper_x.xx.tar.gz. 46

47 Spostare Mastershaper all interno delaa root del web server Muovere il contenuto della directory htdocs (PHP scripts, images, ) così i documenti presenti sotto il root web server (like /var/www/shaper/) saranno raggiungibili dal browser. Installare le jpgraph Occorre scaricare, decomprimere e inserire le jpgraph all interno della directory in cui è presente Mastershaper. Installare phplayersmenu Occorre scaricare il pacchetto phplayermenu dal sito e scomprimerlo all interno della directory in cui è installato Mastershaper. Installare il modulo PHP-Pear E necessario installare il modulo PHP-PEAR come segue: pear install DB Net_IPv4 Installare Mastershaper Dall installer di Mastershaper specificare i parametri e salvare i dati. Nel caso di errori l installer dirà dove ci sono problemi. Comunque, preventivamente, per poter installare questo tool occorre patchare il kernel e IPTables. Preparare IMQ Se si usa IMQ è necessario alcune regole di iptables per ricevere il traffico dall interfaccie IMQ (EXT_DEV significa l interfaccia dove si vuole controllare i traffico): 47

48 ip link set imq0 up ip link set imq1 up iptables t mangle I PREROUTING i eth0 j IMQ todev 0 iptables t mangle I POSTROUTING o etho j IMQ todev 1 Tali regole non vengono settate dal Mastershaper. Configurare Sudo Molti dei web server non girano con privilegi di root e quindi non hanno il permesso di parlare direttamente con il kernel e leggere le regole (tc o iptables). Per attivare le regole, Mastershaper usa lo script shaper_loader.sh, un piccolo script di shell che tratta entrambi i comandi tc e iptables-rules. Per garantire questi privilegi allo script, occorre aprire il file di configurazione di sudo che si trova in /etc/sudoers e aggiungere la seguente linea: apache ALL=NOPASSWD:/var/www/mastershaper/shaper_loader.sh 48

49 17. Configurazione Molte delle tante opzioni sono ben documentate sull intrfaccia web. Di seguito verra riportato soltanto alcune delle opzioni disponibili. L immagine successiva riporta la schermata di inzio che si ha quando si inserisce l url sul browser per il mastershaper, in cui è possibile fornire le credenziali per poter accedere alla sua configurazione. 49

50 Nella schermata successiva viene mostrata la schermata con cui è possibile impostare l esatta configurazione di mastershaper, in cui sono riportati: Brandwidth Fornire il valore della banda iniziale è fondamentale per inizializzare la classe e per specificare la massima velocità di una specifica interfaccia (Ethernet, DSL, ). Interfaces Occorre inoltre, specificare l interfaccia di ingresso e uscita a cui lo shaper può accedere. Se si usa i dispositivi IMQ occorre specificarlo nell interfaccia del mastershaper attraverso il IMQ-Option. MS Option E possibile anche specificare una direzione per gli ACK packets e altri small packets. E possibile configurare le discipline di coda come HTB,HFSC e CBQ, scegliere tra tc-filter o iptables-matching e se il mastershaper deve essere eseguito come router o come bridge. 50

51 17.1 Manage Service Levels Nell immagine successiva è evidente come è possibile specificare i service levels usati nel Chains, Pipes e nelle Option-View. Ogni livello di servizio ha una separata definizione dei parametri per HTB, HFSC e CBQ (discipline di coda). 51

52 Filters Nell immagine successiva viene riportato come è possibile amministrare le definizioni per i filtri. I filtri sono meccanismi per il matching del traffico, con il quale è possibli classificare il traffico e così è possibile indirizzarlo nelle corrette pipe. Il tipo di filtro che è possibile creare qui è dipendente dalle opzioni di Traffic filter Chains Nell immagine successiva viene riportato come è possibile amministrare le definizioni per le catene. Le catane sono necessarie per matchare il traffico rispetto ad un target. Se la definizione del target matcha il traffico di rete, il flusso di rete viene rediretto all interno di questa catena così potra essere matchato dalle definizioni delle pipe. 52

53 Una catena ha bisogno che sia definito l ammontare totale della banda e un livello di servizio di fall-back. Tutto il traffico che arriva all interno di questa catena e non è matchato da nessuna definizione di pipe cade nel livello di servizio di fall-back. Nell immagine successiva invece viene evidenziato come poter definire una catena, e quindi tutti i parametri ad essa associati. 53

54 Pipes Le pipes sono assegnate a una catena e matchano le definizioni dei filtri rispetto al traffico di rette che virtualmente fluisce attraverso la catena. La pipe gestisce anche come viene consumata la banda associata a un servizio. 54

55 L immagine successiva riporta in dettaglio come viene definita una pipe. 55

56 Monitoraggio Se le regole del mastershaper sono correttamente scritte e lo script tc_collector.pl è attivo, Mastershaper disegnerà un grafico: Chains: Visualizza se c è una corretta distribuzione della banda tra catene; Pipes: Visualizza se c è una corretta distribuzione della banda fra pipes; Bandwidth: Visualizza se è presente la totale banda in uscita e ingresso interfaccia shaper_loader.sh Dalla versione V0.31 del MasterShaper, è stato introdotto, una nuovo loader per le regole. Questo è stato necessario, perché lo script deve essere capace di cancellare tuuti i residui delle regole di MasterShaper iptables. E questo è possibile grazie a questo script. Inoltre riesce ad eseguire tc e iptables-ruleset, così solo lo script ha i privilegi di root. 56

57 collector tc_collector.pl tc_collector.pl è una piccola applicazione Perl che raduna le statistiche di traffico dall utility tc. A causa del fatto che non c è un metodo per richiamare la distribuzione delle pipe, esso raduna l ammontare totale di bytes trasferiti nell intervallo di 10 secondi e calcola la media dei kilobits per secondo. Occorre eseguire tc_collector richiamando:./tc_collector.pl Lo script inizierà a radunare il traffico con l utility tc e a memorizzarlo all interno del database MySQL. Occorre comunque inserire la sua configurazione all interno del file: config.dat. 57

58 18. Introduzione M0n0wall M0n0wall è un software firewall free che si differenzia dagli altri software per i seguenti motivi: È basato su FreeBSD, e non su Linux; È ottimizzato per PC non molto potenti, ed è compatibile con un gran numero di periferiche; È licenziato su piattaforme come FreeBSD più che GPL 2. M0n0wall è per la maggior una creazione di Manuel Kasper. Manuel Kasper ha iniziato la creazione di m0n0wall come una interfaccia grafica per FreeBSD utilizzandolo come filtro pacchetti per alcuni PC. Da qui il prodotto si è trasformato velocemente in un vero e proprio firewall con interfaccia grafica PHP. Manuel, non contento della mancanza di flessibilità dovuta all'utilizzo dello script di shell della piattaforma Unix, aggiunge al m0n0wall una interfaccia di configurazione basata su pagine PHP (tecnologia utilizzata per la creazione di pagine web dinamiche). L'utilizzo di pagine PHP in questo modo consente di ottenere tutte le configurazioni del firewall in un file XML. Allo stesso tempo permette di mantenere l'immagine del prodotto molto compatta (al momento occupa meno di 6MB). La prima versione beta del m0n0wall è stata rilasciata nel Febbraio del Durante un anno di lavoro sono state prodotte ben 26 versioni beta che hanno permesso la realizzazione della versione v1.0. Il m0n0wall è al momento un progetto collaborativo, ma Manuel Kasper provvede ancora alla produzione di nuove funzionalità e alla gestione delle versioni evolutive. Le funzionalità del m0n0wall v1.0 sono: filtro pacchetti con regole per permesso/blocco del traffico su tutte le reti; NAT & PAT (optional) incluso 1:1; 58

59 supporto client DHCP, PPPoE, PPTP per le WAN; Indirizzi statici; regolatore di traffico; Client DNS dinamico; server DHCP, configurabile separatamente per tutte le reti; memorizzazione dei forward DNS con indirizzi di ingresso statici opzionali; Supporto per Alias per host e network; Supporto per interfaccia Wireless; IPSEC VPN endpoint, network to network e clients mobile; PPTP VPN endpoint, con supporto autenticazione RADIUS; agent SNMP; Logging a un server Syslog remoto; Online firmware upgrade; Configurazione Backup/Restore. Il m0n0wall a differenza degli altri software è stato progettato per funzionare anche su piattaforme PC dedicate (AMD, VIA ecc). Una volta avviato il software funziona solamente nella memoria RAM e le configurazioni vengono salvate su un file XML. Le piattaforme PC dedicate si prestano ad essere degli ottimi routers e firewall per i seguenti motivi: Sono compatti, non richiedono molto spazio; Consumi ridotti, di norma consumano < 10W, questo è molto importante per dispositivi che devono rimanere accesi costantemente; Generano poco calore, importante per dispositivi che devono essere installati in luoghi piccoli e poco ventilati; Sicuri, non hanno parti meccaniche mobili. L'unico svantaggio nell'utilizzo di PC dedicati è che questi prodotti non sono facilmente aggiornabili, infatti la maggior parte dei componenti sono saldati direttamente sulla scheda madre. 59

60 Il m0n0wall ufficialmente supporta i net45xx / net48xx di Soekris (Santa Cruz, USA) e i WRAP (Wireless Router Application Platform) di PC Engines (Switzerland). Immagini compilate appositamente per queste piattaforme possono essere scaricate dal sito del produttore. La piattaforma net45xx/net48xx di Soekris sembra essere tra le più utilizzate tra gli utenti del m0n0wall Configurazione Standard con PC dedicato Il m0n0wall non necessita di PC specifici. Le immagini per PC funzionano sulla maggior parte dell' hardware esistente e le specifiche da rispettare sono minime: Processori Intel o compatibili (i ) o superiori 64MB RAM supporto per 2 interfacce network Hard Disk IDE o Compact Flash IDE superiore a 8MB or Floppy Disk ATAPI, CD- ROM Drive IDE e BIOS che supporti il boot da CD-ROM supporto VGA Le richieste minime coprono la maggior parte degli hardware. Per tutti gli utenti che intendono utilizzare hardware obsoleto, la richiesta più problematica sarà quella dei 64Mb di RAM. Questa richiesta di RAM si manifesta in quanto il prodotto funziona completamente memorizzato sulla RAM. Un altro problema che può presentarsi è per l'interfaccia Network, fortunatamente FreeBSD 4.9 supporta la maggior parte dei chipsets. Per maggiori informazioni si consiglia di visitare il sito del produttore. 60

61 17.2 net4801 di Soekris Il net4801 è il modello base della Soekris. La Soekris ha progettato il net48xx per utilizzarlo come router, firewall e access point wireless. Il processore AMD 133 Mhz ElanSC520 del net4801 fornisce delle performance paragonabili a quelle di un Intel Pentium P100. A differenza della linea mini-itx di VIA,che è stata progettata per un minimo ingombro, il net48xx di Soekris non possiede un sistema operativo con interfaccia grafica come ad esempio MS Windows o Linux/FreeBSD con X-Windows. La mancanza di hard disk e di ventole di raffreddamento fanno di questo prodotto uno tra i più silenziosi e dei meno soggetti a guasti sul mercato. Il net4801 è venduto come un "system board" con un case metallico opzionale. Quando viene ordinato con il case, la scheda madre viene pre assemblata nel case. Le specifiche sono le seguenti: 133 Mhz AMD ElanSC520 CPU; 64 MB SDRAM; CF Type I/II socket; 3 auto-sensing 10/100 Mbit Ethernet ports, RJ-45; 1 Serial port, DB9; Power LED, Activity LED, Error LED; Mini-PCI type III socket; PCI Slot, 3.3V, right angle; Temperatura di funzionamento 0-60 C; L'alimentatore esterno può essere acquistato direttamente da Soekris. Il case è di buona qualità con una verniciatura anti-polvere. Le dimensioni esterne del case sono 216mm X 150mm X 30mm, e con la scheda madre e il lettore CompactFlash (CF) installati pesa circa 750g. 61

62 Per installare il m0n0wall su un net4801 basta copiare l'immagine su una CF. L'immagine non compressa del m0n0wall richiede uno spazio di circa 5-6MB. Le ultime immagini per le varie piattaforme sono disponibili nella sezione download del sito del produttore all'indirizzo: Avviare m0nowall per la prima volta Le istruzioni dettagliate presenti sul sito del m0n0wall suggeriscono di accendere il net4801 e di loggarsi tramite HyperTerminal di Windows o tramite altri software simili. Come default l'interfaccia Net0 del net4801 è assegnata all'interfaccia LAN del m0n0wall ed è configurata con l'indirizzo /24 (Subnet mask ) con DHCP attivo. Per assicurarsi del corretto funzionamento, aprire il web browser e digitare l'indirizzo verrà presentata una interfaccia di login. La username di default è admin e la password è mono, entrambe in minuscolo e senza numeri. A questo punto è possibile configurare l'indirizzo di rete in modo da interfacciarlo con la propria rete PC generici Come detto in precedenza, le immagini per PC generici possono essere installate su qualsiasi prodotto che possiede hardware compatibile con Intel x86. L'unica decisione da affrontare è quale tipo di istallazione si desidera utilizzare (Compact Flash, IDE Hard Disk or CD-ROM)? Si consiglia, se possibile, di utilizzare sempre l'istallazione su CF. Adattatori IDE CF e CF cards sono relativamente economici ma soprattutto sono il supporto per cui il m0n0wall è stato sviluppato. L'unico inconveniente delle CF è il numero relativamente basso dei cicli di scritturta/cancellazione che la memoria sopporta prima di danneggiarsi. Questo viene calcolato in qualche centinaia di migliaia di volte, ma, in un firewall costantemente 62

63 connesso ad internet che è configurato per scrivere il log per ogni pacchetto di IP bloccati, questo limite viene raggiunto molto velocemente. Per risolvere questo problema, il m0n0wall accede alla memoria CF solo in tre occasioni: avvio del sistema e caricamento del software nella RAM salvataggio delle configurazioni su file XML salvataggio di una nuova immagine utilizzando la funzionalità Firmware Upgrade mentre il firewall è on-line. Qualsiasi altra azione viene effettuata in RAM. Questo spiega la richiesta di un minimo di 64Mb di RAM. Se non è possibile utilizzare le CompactFlash, si consiglia l'utilizzo di un hard disk. L'utilizzo di un firewall basato su un hard disk non è molto comune ma permette di usufruire della funzionalità di aggiornamento del Firmware. Il procedimento di installazione di una immagine su disco fisso non si discosta molto da quello descritto per le CompactFlash. L'unico inconveniente è che bisogna in parte smontare il PC e collegare l'hard disk. Si consiglia di porre attenzione su quale partizione viene istallato il m0n0wall perchè si potrebbe incorre nel problema di cancellazione del sistema operativo. L'ultima opzione è l'istallazione su CD-ROM. Da un punto di vista oggettivo, questa sembra essere la peggiore soluzione adottabile. Per utilizzare questo tipo di istallazione bisogna masterizzare l'immagine iso con un qualsiasi software di masterizzazione, assicurandosi che il software venga scritto in Mode-1 a 2048 byte/sector. In seguito bisogna formattare un disco floppy da 1.44MB 3.5" con file system FAT16. Inserire il floppy nell'apposito lettore e configurare l'avvio del pc da CD- ROM. 63

64 17.3 Primo avvio di m0n0wall Su un PC generico, il monowall non può assegnarsi automaticamente l'interfaccia di rete da utilizzare, anche perchè l'hardware può variare da PC a PC. Di norma il m0n0wall non ha problemi di funzionamento anche quando non sono collegati tastiera e schermo, ma questi, al primo avvio, sono necessari per la configurazione dell'interfaccia LAN. Il m0n0wall supporta la maggior parte delle schede di rete presenti sul mercato. Tuttavia è possibile controllare la lista di compatibilità del FreeBSD 4.9; si ricorda che le schede non compatibili non verranno rilevate e non sarà possibile nemmeno configurarle manualmente o aggiornare i driver presenti nell'immagine del m0n0wall. Al primo avvio si presenta un'interfaccia per la configurazione delle varie connessioni LAN, WAN e OPT. L'utente può distinguere i vari adattatori in base al loro indirizzo MAC. Suggerimento: il m0n0wall adotta un concetto di interfacce logiche. Come minimo, devono essere presenti due interfacce di rete, una LAN (Local Network) e una WAN (Wide Area Network). Tutte le interfacce aggiuntive rilevate vengono viste come OPTx (Optional) dove "x" indica il numero di interfaccia. Queste possono essere rinominate con nomi maggiormente esplicativi mediante l'interfaccia del m0n0wall. Un esempio è DMZ per indicare una connessione senza firewall. Dopo aver configurato il monowall basta effettuare un reboot del sistema e collegare il firewall alla rete privata e a internet. Una volta riavviato, la tastiera e il monitor possono essere scollegati dal firewall. 64

65 17.4 Traffic shaping con m0n0wall Generalmente ci sono tre parti nello shaper: Regole, code e pipes. Le regole sono il cervello dello shaper; funzionano tanto come le regole del firewall, tranne per il fatto che invece di far passare o ostruire il traffico, selezionano dove i pacchetti vanno: Direttamente ad un pipe, o attraverso una coda che a loro volta la passano sopra alla relativa pipe. Le code, shaper police sono frapposte fra le regole ed le pipes; mantengono i pacchetti in modo ordinato fino a che la pipe collegata non sia pronta per accettare più dati, e nel frattempo ripartisce la larghezza di banda su più pipes secondo le differenti code. Le pipes sono lo strato inferiore dello shaper, limitano semplicemente la larghezza di banda massima usata, così come opzione introduce un ritardo fisso per tutti i pacchetti che gli passano attraverso. Nota: Poiché lo shaper di traffico introduce un certo numero di strati in questo modo m0n0wall può processare i relativi pacchetti, comunque le varie limitazioni delle code riduce la banda disponibile o aumenta la latenza. Ciò deve essere prevista e nella maggior parte dei casi sarà più di quanto compensata dal aumento del rendimento realizzato con il trattamento adeguata del traffico. Il senso logico delle tre parti dello shaper sono dal basso verso l alto, cominciando dalle pipes, che accedono alle code che vengono rifinitre con le regole. E importante capire la logica per poter capire a fonodo come configurare lo shaper Pipes La proprità più importante delle pipes è l impostazione della larghezza di banda (o più precisamente, il limite di larghezza di banda ). Ciò determina il flusso massimo di traffico che passa tramite la pipe. Se più traffico prova a passare attraverso essa, la pipe avvierà la parte fall-back per la tenuta dei pacchetti (se i pacchetti sono in una coda, rimarranno semplicemente là fino a che la pipe non aspetta altro traffico). 65

66 Regole pratiche per quanto riguarda l'uso della larghezza di banda Accertarsi che la larghezza di banda totale di tutte le pipes (numero previsto di pipes virtuali ) non eccedi mai la larghezza di banda (nell'ambiente) reale (preferibilmente come viene rivelato da una velocità di prova, piuttosto chevcalcolandola dalla larghezza di banda dichiarata dall ISP. Se non è possibile occorre calcolarla, sottraendo almeno 10% della larghezza di banda dichiarata). Oltre al banda, una pipe può introdurre un ritardo simulando un collegamento di alto-strato latente. Soltanto un pacchetto è trasmesso tramite la pipe durante ogni intervallo, questo significa che se la spettrografia di massa è specificata a 10, solo 100 pacchetti entreranno ogni secondo. Tuttavia, potrebbe essere che ogni pacchetto viene ritardato semplicemente per l'intervallo specificato, in qual caso tutto il numero di pacchetti può passare ad ogni secondo, ma solo dopo aver aspettato il numero specificato di millisecondi. Ritardare il traffico non ha senzo a meno che realmente si desidera limitare severamente la velocità di determinati pacchetti e nondimeno questo è efficace per il traffico fuori banda, oppure come i pacchetti in banda con ritardo, quando raggiungono il firewall, che, in genere, causano un accumulo sull'isp, impedendo allo shaper di funzionare correttamente. Infine la pipe può avere un Maschera usata per determinare quando viene creata la pipe virtuale. Il motivo di questo è che ogni host IP confronta la maschera (sorgente o destinazione), e genera una pipe virtuale. Ciò può essere usata per dividere la larghezza di banda staticamente disponibile, fra gli hosts. Per esempio, una pipe che accetta il traffico outbound (come determinato da alcune regole) senza alcuna maschera, indurrà gli hosts locali a ripartire la larghezza di banda della pipe per tutto il traffico outbound che passa tramite questa pipe (larghezza di banda totale = larghezza di banda della pipe). Se la sorgente viene specificata per la maschera, ogni host locale otterrà la relativa pipe (virtuale) e ciascuna otterrà la larghezza di 66

67 banda specificata (larghezza di banda totale = larghezza di banda degli host locali della pipe x). Si potrebbe anche specificare una maschera di destinazione, in qual caso la pipe (outbound) genera una pipe virtuale per ogni host di destinazione sulla WAN. Occorre anche ricordare che il senso del traffico è determinato non solo tramite le regole, ma anche a quale interfaccia le regole sono applicate (lo stesso pacchetto potrebbe in primo luogo essere inbound sulla lan e outbound sulla WAN) così quando le regole si muovono da un'interfaccia ad un altra, si dovrà scambiare la maschera (se specificata). Alcuni esempi di pipes: No: Bandwidth, Delay, Mask, Description) 1: 232 Kbit/s, [blank], [blank], "<= ADSL Full" 2: 992 Kbit/s, [blank], [blank], "=> ADSL Full" Queste due pipe sono relative a una tipica connessione ADSL (che è disponibile tramite un modem ADSL di 1024/256 Kbit/s), in cui la banda disponibile viene divisa in due pipes Code Una coda ha effetto soltanto se esiste, realmente entra in gioco soltanto quando viene assegnato un peso differente ad un certo numero di code per mezzo della stessa pipe. In questo modo le code forniscono la priorità; più è alto il peso e più ottiene larghezza di banda dalle pipes (mentre sempre accertando che tutte le code ottengano la loro parte, anche se una coda con un peso più alto ha pacchetti in attesa, gli viene fornita soltanto la banda relativa al suo peso, così si ha l'uso del peso piuttosto che della priorità ). Regole pratiche per quanto riguarda l'uso del peso Occorre ricordare che questi sono i relativi rapporti. La coda che ha 20 dovrebbe ottenere due volte la larghezza di banda rispetto ad una coda che ha 10, ma poiché questo numero non è rigorosamente una priorità, anche se la coda che ha 20 ha tantissimi pacchetti in attesa è sicuro che la coda che ha 10 ottiene il relativo terzo della larghezza di banda. 67

68 Come le pipes, le code possono avere una maschera. La stessa logica che si applica alle pipes, si applica alle code. Le code virtuali sono generate basandosi su questa maschera. Mentre ci potrebbero essere altre possibilità ragionevoli, la più ovvia è che una coda dovrebbe tipicamente avere la stessa regolazione della maschera della relativa pipe collegata ed in molti casi la coda non dovrebbe avere nessuna maschera, anche se la pipe ne ha una. L'unico motivo per dare ad una coda una maschera, è dare ad ogni hosts una coda separata e una pipe separata, così da rendente il traffico per ogni hosts interamente independante dal traffico dagli altri hosts. Regole pratiche per quanto riguarda l'uso della maschena Occorre accertare che la maschera di una coda (se c'è) sia abbinata a quella della pipe (se c'è) che si sta usando. Poiché è possibile specificare una regola che trasmette i pacchetti direttamente alla pipe, escludente le code complessivamente, c è sempre una coda di prioritaria supplementare disponibile. Dovrebbe tuttavia, essere chiaro che alcuni piccoli pacchetti, (quali il ACK, SYN e DNS) dovrebbero attraversare lo shaper il più rapidamente possibile. Alcuni esempi di coda: (Num: Pipe, Weight, Mask, Description) 1: 1, 96, [blank], "<= High" 2: 1, 32, [blank], "<= Medium" 3: 1, 2, [blank], "<= Low" Queste sono le differenti code di uscita. Tutte loro usano alcune pipe ma differenti pesi per priotizzare differenti traffici. 4: 2, 96, [blank], "=> High" 5: 2, 32, [blank], "=> Medium" 6: 2, 2, [blank], "=> Low" Ci sono altre tre code di ingresso come sopra, ma per l altro traffico. 68

69 7: 3, 4, [blank], "<= Limited" 8: 4, 4, [blank], "=> Limited" Queste sono le code usate dagli guests che vanno su due pipes limitate e con maschera. Queste code vanno alle pipes separatamente, ed è evidente che si è scelti di usare una coda globale anziché quella virtuale minimizzando lo sforzo di m0n0wall Regole Come accennato le regole dello shaper sono uguali a quelle usate per il firewall, in cui è possibile specificare l'interfaccia, il protocollo, la sorgente, destinazione e il range di porte sono le stesse. Oltre questo, è possibile specificare una direzione (riguardante la scelta dell'interfaccia), un formato di pacchetto (o l'intervallo di grandezza) ed un certo numero di flag TCP che devono o non devono essere presenti nel pacchetto, interamente usate per raffinare i test di verifica. Infine ogni regola ha un obiettivo che può essere una pipe o una coda, a cui tutti i pacchetti di corrispondenza sono inviati. Come con le regole del firewall, l'ordine delle regole dello shaper sono relative, e un pacchetto sarà controllato in base alle regole dall alto verso i basso e la prima regola che corrisponde sarà usata per decidere a quale pipe o coda il pacchetto sarà trasmesso. La lista delle regola potrebbe essere separata per ogni interfaccia come per le regole del firewall. Creare queste regole è come fare le regole per il firewall, con alcune eccezioni: L'interfaccia, è tipicamente la WAN cioè la rete esterna che dovrà essere modellata. Inoltre una regola dello shaper ha un senso, che viene usato per dividere il traffico fra le pipe e le code di ingresso e uscita. Infine è possibile specificare un formato del pacchetto (o l'intervallo di grandezza) ed un certo numero di flag che devono essere contenute o al di fuori nel pacchetto. I flags sono usati per limitare i test di verifica di corrispondenza secondo determinate flags che non sono contenute o vengono usate principalmente per i casi speciali, come i pacchetti SYN o ACK. La limitazione di formato può essere usata quando esclude le code, per impedire ai grandi pacchetti ACK (IE. pacchetti uniti di dati e del ACK) di riempire la pipe e così di ostruire le code, o in altri casi dove i pacchetti devono essere separatamente trattati. Le regole dello Shaper hanno anche una direzione (in, out o any) che viene usata per splittare il traffico sulle pipes o sulle code d ingresso o uscita. 69

70 Alcune regole di esempio: (IF,Dir, Proto,Src/port(s),Dest/port(s),Length,Flags,Target,Description) LAN,any,any,IntraNet/any,IntraNet/any,[blank],[don't care],pipe 5,"LAN<=>WLAN" WLAN,any,any,IntraNet/any,IntraNet/any,[blank],[don't care],pipe 5,"WLAN<=>LAN" Queste regole sono impiegate per limitare il traffico della LAN <=> WLAN (per accetare che una certa larghezza di banda sia riservata per traffico dalla rete senza file). Occorre notare che non viene usato una coda per questo traffico. Infatti si presuppone che ci sarà raramente un accumulo/congestione su Intranet. IntraNet è il pseudonimo per la sottorete x.x.32.0/23 che comprende le sottoreti di WLAN (x.x.32.0/24) e LAN (x.x.33.0/24). Questo ha senso per evitare di avere un insieme di regole simile per ogni sottorete (lo stesso trucco può essere usato per il DHCP o altro range di IP, se fatto per adattare un formato e un contorno di sottorete). WLAN è l interfaccia OPT1, usata come AP senza fili in m0n0wall. WAN,out,TCP,PrioNet/any,*/any,0-128,ACK set,pipe 1,"<= ACK" WAN,in,TCP,*/any,PrioNet/any,0-128,ACK set,pipe 2, "=> ACK" Queste regole sono usate per accertare il trasferimento rapido di piccoli ACKs in entrambi i sensi (questi sono trasmessi direttamente alla pipe anziché attraverso una coda). Ho un insieme delle regole simile per SYNs (con il flag di SYN anziché il ACK ed il formato = 0-512) e per DNS (nessun flag, formato = 0-512, porta sorgente/destinazione = 53, con un insieme di regole supplementari per l UDP. PrioNet è uno pseudonimo per una piccola sottorete (x.x /30), comprendente l'ips assegnato ai miei hosts sulla WLAN. WAN,out,TCP,PrioNet/25,any/*,[blank],[don't care],queue 1,"<= SMTP" WAN,in,TCP,*/any,PrioNet/143,[blank],[don't care],queue 4,"=> IMAP" Queste regole sono per il traffico della posta (smtp fuori ed IMAP dentro in questo caso). Questo traffico è passato alla coda di prioritaria, per accertare che la posta otterrà un eccedenza di preferenza su qualunque altro genere di traffico (con l'eccezione dei pacchetti ACK, SYN e DNS). WAN,out,TCP,myhost/p2pp,any/*,[blank],[don't care],queue 3,"<=P2P(clients)" WAN,in,TCP,*/any,myhost/p2pp,[blank],[don't care],queue 6,"=>P2P(clients)" 70

71 Queste regole sono per i programmi p2p. Questo traffico viene passato alla coda di scarsa priorità, per accertare che nessun altro ottenga la preferenza al di sopra del traffico p2p. Facendolo questo, con una coda con peso basso che va allo stessa pipe associata all altro traffico, permette che il programma p2p usi tutta la larghezza di banda disponibile, mentre viene forzata per liberargli una determinata frazione di banda una volta che un altro tipo di traffico ha bisogno di banda. WAN, out,any,prionet/any,*/any,[blank],[don't care],queue 2,"<=Other Prio traffic" WAN,in,any,*/any,PrioNet/any,[blank],[don't care],queue 5,"=>Other Prio traffic" Queste regole sono catch alls per tutto il traffico non abbinato alle regole precedentementi specificate, ma che va a o da gli hosts di priorità. Questo è passato alla coda priorità media, dandogli la priorità al di sopra del traffico p2p. WAN,out,any,*/any,*/any,[blank],[don't care],queue 7,"<=Other Prio traffic" WAN,in,any,*/any,*/any,[blank],[don't care],queue 8,"=>Other Prio traffic" Queste regole controllano tutto il taffico che non è stato controllato precedentemente dalle altre regole, presupponendo che questo sia traffico di un generico host sulla WAN. Questo traffico è passato alle code limitate, che a loro volta lo passano alle pipes limitate e mascherate (che, come accennato, forniranno una ripartizione di larghezza di banda statica per ciascuno di questi hosts). 71

72 Configurazione grafica di regole con m0n0wall Per poter comporre delle regole con m0n0wall occorre accedere alla comoda interfaccia web che esso fornisce e andare a configurare i più svariati parametri per quanto riguarda firewall, traffic shaping e molto altro. L immagine successiva riporta come è possibile impostare semplicemente il traffic shaping con l apposito wizard fornito da m0n0wall. In questo esempio, come è possiblie osservare dall immagine, la banda in download e upload è stata imposta a 80 kbps, 72

73 73

74 L immagine precedente ci mostra il risultato automatico che tali impostazione provoca alle impostazioni del traffic shaping e le regole create dal wizard in automatico. Come risulta dall immagine le regole si riferiscono al traffico entrante che al traffico uscente dall interfaccia di rete e su questo traffico viene effettuata la limitazione di 80 kbps. L immagine riporta le pipes creata automaticamente dal wizard, come si vede i valori impostati sono leggermente diversi dagli 80 kbps impostati sul wizard, per l upload è di 72 kbit/s per il download 76 kbit. L immagine successiva invece riporta le code che vengono create in automatico. 74

75 L immagine successiva riporta le code che vengono automaticamente create. Le 8 code vengono creata automaticamente dal wizard, come si vede ci sono 5 code per l upload e 3 code per il download, con il diverso peso per ogni tipo di traffico che può transitare attraverso il firewall. Di seguito viene riportata l immagine che riporta la velocià di download per il taffico ftp con l impostazione del limite di 80 kbps. 75

Esercitazione 7 Sommario Firewall introduzione e classificazione Firewall a filtraggio di pacchetti Regole Ordine delle regole iptables 2 Introduzione ai firewall Problema: sicurezza di una rete Necessità

Dettagli

Filtraggio del traffico IP in linux

Filtraggio del traffico IP in linux Filtraggio del traffico IP in linux Laboratorio di Amministrazione di Sistemi L-A Dagli appunti originali di Fabio Bucciarelli - DEIS Cos è un firewall? E un dispositivo hardware o software, che permette

Dettagli

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall Firewall e NAT A.A. 2005/2006 Walter Cerroni Protezione di host: personal firewall Un firewall è un filtro software che serve a proteggersi da accessi indesiderati provenienti dall esterno della rete Può

Dettagli

CAPITOLO 1 PANORAMICA SUI PROBLEMI DI SICUREZZA

CAPITOLO 1 PANORAMICA SUI PROBLEMI DI SICUREZZA INTRODUZIONE INTRODUZIONE Quando un PC è connesso ad internet esso diventa, a tutti gli effetti, un nodo della rete. Il sistema connesso, può esporre dei servizi di rete, cioè delle applicazioni che hanno

Dettagli

PACKET FILTERING IPTABLES

PACKET FILTERING IPTABLES PACKET FILTERING IPTABLES smox@shadow:~# date Sat Nov 29 11:30 smox@shadow:~# whoami Omar LD2k3 Premessa: Le condizioni per l'utilizzo di questo documento sono quelle della licenza standard GNU-GPL, allo

Dettagli

Sicurezza nelle reti

Sicurezza nelle reti Sicurezza nelle reti Manipolazione indirizzi IP 1 Concetti Reti Rete IP definita dalla maschera di rete Non necessariamente concetto geografico Non è detto che macchine della stessa rete siano vicine 2

Dettagli

Crittografia e sicurezza delle reti. Firewall

Crittografia e sicurezza delle reti. Firewall Crittografia e sicurezza delle reti Firewall Cosa è un Firewall Un punto di controllo e monitoraggio Collega reti con diversi criteri di affidabilità e delimita la rete da difendere Impone limitazioni

Dettagli

Esercitazione 5 Firewall

Esercitazione 5 Firewall Sommario Esercitazione 5 Firewall Laboratorio di Sicurezza 2015/2016 Andrea Nuzzolese Packet Filtering ICMP Descrizione esercitazione Applicazioni da usare: Firewall: netfilter Packet sniffer: wireshark

Dettagli

Linux Network Testing

Linux Network Testing Introduzione agli strumenti per il testing di rete su Linux 6, 13 Novembre 2007 Sommario 1 Introduzione Panoramica sugli strumenti di misura 2 I tool di base per l amministrazione di rete Configurare le

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Corso avanzato di Reti e sicurezza informatica

Corso avanzato di Reti e sicurezza informatica Corso avanzato di Reti e sicurezza informatica http://www.glugto.org/ GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 1 DISCLAIMER L'insegnante e l'intera associazione GlugTo non si assumono

Dettagli

Il firewall ipfw. Introduzione ai firewall. Problema: sicurezza di una rete. Definizione di firewall. Introduzione ai firewall

Il firewall ipfw. Introduzione ai firewall. Problema: sicurezza di una rete. Definizione di firewall. Introduzione ai firewall Il firewall ipfw Introduzione ai firewall classificazione Firewall a filtraggio dei pacchetti informazioni associate alle regole interpretazione delle regole ipfw configurazione impostazione delle regole

Dettagli

Corso GNU/Linux Avanzato Uso e configurazione di un firewall usando iptables

Corso GNU/Linux Avanzato Uso e configurazione di un firewall usando iptables Corso GNU/Linux Avanzato Uso e configurazione di un firewall usando iptables Marco Papa (marco@netstudent.polito.it) NetStudent Politecnico di Torino 04 Giugno 2009 Marco (NetStudent) Firewalling in GNU/Linux

Dettagli

Sommario. Introduzione ai firewall. Firewall a filtraggio dei pacchetti. Il firewall ipfw. Definizione e scopo Classificazione

Sommario. Introduzione ai firewall. Firewall a filtraggio dei pacchetti. Il firewall ipfw. Definizione e scopo Classificazione Sesta Esercitazione Sommario Introduzione ai firewall Definizione e scopo Classificazione Firewall a filtraggio dei pacchetti Informazioni associate alle regole Interpretazione delle regole Il firewall

Dettagli

Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo)

Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo) iptables passo-passo Prima del kernel 2.0 ipfwadm, dal kernel 2.2 ipchains, dopo il kernel 2.4 iptables Firewall (packet filtering, Nat (Network Address Translation)) NetFilter (layer del kernel per il

Dettagli

Il FIREWALL LINUX Basare la sicurezza della rete su un sistema operativo gratuito

Il FIREWALL LINUX Basare la sicurezza della rete su un sistema operativo gratuito Il FIREWALL LINUX Basare la sicurezza della rete su un sistema operativo gratuito Cosa si intende per sicurezza di rete Accesso a sistemi, servizi e risorse solo da e a persone autorizzate Evitare di essere

Dettagli

Prof. Filippo Lanubile

Prof. Filippo Lanubile Firewall e IDS Firewall Sistema che costituisce l unico punto di connessione tra una rete privata e il resto di Internet Solitamente implementato in un router Implementato anche su host (firewall personale)

Dettagli

FIREWALL. Firewall - modello OSI e TCP/IP. Gianluigi Me. me@disp.uniroma2.it Anno Accademico 2005/06. Modello OSI. Modello TCP/IP. Application Gateway

FIREWALL. Firewall - modello OSI e TCP/IP. Gianluigi Me. me@disp.uniroma2.it Anno Accademico 2005/06. Modello OSI. Modello TCP/IP. Application Gateway FIREWALL me@disp.uniroma2.it Anno Accademico 2005/06 Firewall - modello OSI e TCP/IP Modello TCP/IP Applicazione TELNET FTP DNS PING NFS RealAudio RealVideo RTCP Modello OSI Applicazione Presentazione

Dettagli

Livello di Rete. Gaia Maselli maselli@di.uniroma1.it

Livello di Rete. Gaia Maselli maselli@di.uniroma1.it Livello di Rete Gaia Maselli maselli@di.uniroma1.it Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. All material copyright 1996-2007 J.F Kurose

Dettagli

Iptables. Mauro Piccolo piccolo@di.unito.it

Iptables. Mauro Piccolo piccolo@di.unito.it Iptables Mauro Piccolo piccolo@di.unito.it Iptables Iptables e' utilizzato per compilare, mantenere ed ispezionare le tabelle di instradamento nel kernel di Linux La configurazione di iptables e' molto

Dettagli

Il firewall Packet filtering statico in architetture avanzate

Il firewall Packet filtering statico in architetture avanzate protezione delle reti Il firewall Packet filtering statico in architetture avanzate FABIO GARZIA DOCENTE ESPERTO DI SECURITY UN FIREWALL PERIMETRALE È IL PUNTO CENTRALE DI DIFESA NEL PERIMETRO DI UNA RETE

Dettagli

FIREWALL Caratteristiche ed applicazioni

FIREWALL Caratteristiche ed applicazioni D Angelo Marco De Donato Mario Romano Alessandro Sicurezza su Reti A.A. 2004 2005 Docente: Barbara Masucci FIREWALL Caratteristiche ed applicazioni Di cosa parleremo Gli attacchi dalla rete La politica

Dettagli

Reti basate sulla stack di protocolli TCP/IP

Reti basate sulla stack di protocolli TCP/IP Reti basate sulla stack di protocolli TCP/IP Classe V sez. E ITC Pacioli Catanzaro lido 1 Stack TCP/IP Modello TCP/IP e modello OSI Il livello internet corrisponde al livello rete del modello OSI, il suo

Dettagli

Packet Filter in LINUX (iptables)

Packet Filter in LINUX (iptables) Packet Filter in LINUX (iptables) Laboratorio di Reti Ing. Telematica - Università Kore Enna A.A. 2008/2009 Ing. A. Leonardi Firewall Può essere un software che protegge il pc da attacchi esterni Host

Dettagli

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli) Sommario Esercitazione 05 Angelo Di Iorio (Paolo Marinelli)! Packet Filtering ICMP! Descrizione esercitazione! Applicazioni utili: " Firewall: wipfw - netfilter " Packet sniffer: wireshark!"#!$#!%&'$(%)*+,')#$-!"#!$#!%&'$(%)*+,')#$-

Dettagli

Sicurezza applicata in rete

Sicurezza applicata in rete Sicurezza applicata in rete Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi di traffico e dei

Dettagli

Sicurezza delle reti. Monga. Tunnel. Sicurezza delle reti. Monga

Sicurezza delle reti. Monga. Tunnel. Sicurezza delle reti. Monga Sicurezza dei sistemi e delle 1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it Lezione XIX: Virtual Private Network a.a. 2015/16 1 cba 2011 15 M.. Creative Commons

Dettagli

TCP e UDP, firewall e NAT

TCP e UDP, firewall e NAT Università di Verona, Facoltà di Scienze MM.FF.NN. Insegnamento di Reti di Calcolatori TCP e UDP, firewall e NAT Davide Quaglia Scopo di questa esercitazione è: 1) utilizzare Wireshark per studiare il

Dettagli

Sicurezza delle reti 1

Sicurezza delle reti 1 1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2012/13 1 cba 2011 13 M.. Creative Commons Attribuzione-Condividi allo stesso modo 3.0 Italia License. http://creativecommons.org/licenses/by-sa/3.0/it/.

Dettagli

Linux Firewall: metti una marcia in più nella tua rete

Linux Firewall: metti una marcia in più nella tua rete Linux Firewall: metti una marcia in più nella tua rete Emiliano Bruni, info@ebruni.it Ultima modifica: 24/02/2002 20.33 Copyright 2001 Emiliano Bruni Licenza: GNU Free Document License (http://www.gnu.org/licenses/fdl.html)

Dettagli

Petra Internet Firewall Corso di Formazione

Petra Internet Firewall Corso di Formazione Petra Internet Framework Simplifying Internet Management Link s.r.l. Petra Internet Firewall Corso di Formazione Argomenti Breve introduzione ai Firewall: Definizioni Nat (masquerade) Routing, Packet filter,

Dettagli

Reti e Linux. Andrea Bontempi. Corsi Linux 2012. POuL

Reti e Linux. Andrea Bontempi. Corsi Linux 2012. POuL POuL Corsi Linux 2012 Una breve introduzione: le reti Una rete di calcolatori è un mezzo fisico sul quale è possibile inviare e ricevere messaggi o flussi di dati. La prima rete a commutazione di pacchetto

Dettagli

Classe bit: 0 1 2 3 4 8 16 24 31. 0 net id host id. 1 0 net id host id. 1 1 0 net id host id. 1 1 1 0 multicast address

Classe bit: 0 1 2 3 4 8 16 24 31. 0 net id host id. 1 0 net id host id. 1 1 0 net id host id. 1 1 1 0 multicast address CAPITOLO 11. INDIRIZZI E DOMAIN NAME SYSTEM 76 Classe bit: 0 1 2 3 4 8 16 24 31 A B C D E 0 net id host id 1 0 net id host id 1 1 0 net id host id 1 1 1 0 multicast address 1 1 1 1 0 riservato per usi

Dettagli

Appunti configurazione firewall con distribuzione Zeroshell (lan + dmz + internet)

Appunti configurazione firewall con distribuzione Zeroshell (lan + dmz + internet) Appunti configurazione firewall con distribuzione Zeroshell (lan + dmz + internet) Il sistema operativo multifunzionale creato da Fulvio Ricciardi www.zeroshell.net lan + dmz + internet ( Autore: massimo.giaimo@sibtonline.net

Dettagli

Elementi di Sicurezza e Privatezza Lezione 10 Firewall and IDS

Elementi di Sicurezza e Privatezza Lezione 10 Firewall and IDS Elementi di Sicurezza e Privatezza Lezione 10 Firewall and IDS Chiara Braghin chiara.braghin@unimi.it Firewall Firewall Sistema di controllo degli accessi che verifica tutto il traffico in transito Consente

Dettagli

FIREWALL OUTLINE. Introduzione alla sicurezza delle reti. firewall. zona Demilitarizzata

FIREWALL OUTLINE. Introduzione alla sicurezza delle reti. firewall. zona Demilitarizzata FIREWALL OUTLINE Introduzione alla sicurezza delle reti firewall zona Demilitarizzata SICUREZZA DELLE RETI Ambra Molesini ORGANIZZAZIONE DELLA RETE La principale difesa contro gli attacchi ad una rete

Dettagli

Modulo 8. Architetture per reti sicure Terminologia

Modulo 8. Architetture per reti sicure Terminologia Pagina 1 di 7 Architetture per reti sicure Terminologia Non esiste una terminologia completa e consistente per le architetture e componenti di firewall. Per quanto riguarda i firewall sicuramente si può

Dettagli

Firewall con IpTables

Firewall con IpTables Università degli studi di Milano Progetto d esame per Sistemi di elaborazione dell informazione Firewall con IpTables Marco Marconi Anno Accademico 2009/2010 Sommario Implementare un firewall con iptables

Dettagli

esercizi su sicurezza delle reti 2006-2008 maurizio pizzonia sicurezza dei sistemi informatici e delle reti

esercizi su sicurezza delle reti 2006-2008 maurizio pizzonia sicurezza dei sistemi informatici e delle reti esercizi su sicurezza delle reti 20062008 maurizio pizzonia sicurezza dei sistemi informatici e delle reti 1 supponi i fw siano linux con iptables dai una matrice di accesso che esprima la policy qui descritta

Dettagli

Corso GNU/Linux - Lezione 5. Davide Giunchi - davidegiunchi@libero.it

Corso GNU/Linux - Lezione 5. Davide Giunchi - davidegiunchi@libero.it Corso GNU/Linux - Lezione 5 Davide Giunchi - davidegiunchi@libero.it Reti - Protocollo TCP/IP I pacchetti di dati vengono trasmessi e ricevuti in base a delle regole definite da un protocollo di comunicazione.

Dettagli

INTRODUZIONE ALLA SICUREZZA: IL FIREWALL

INTRODUZIONE ALLA SICUREZZA: IL FIREWALL INTRODUZIONE ALLA SICUREZZA: IL FIREWALL Fino a qualche anno fa la comunicazione attraverso le reti di computer era un privilegio ed una necessità di enti governativi e strutture universitarie. La sua

Dettagli

La rete è una componente fondamentale della

La rete è una componente fondamentale della automazioneoggi Attenti alle reti La telematica si basa prevalentemente sulle reti come mezzo di comunicazione per cui è indispensabile adottare strategie di sicurezza per difendere i sistemi di supervisione

Dettagli

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls Università degli Studi di Pisa Dipartimento di Informatica NAT & Firewalls 1 NAT(NETWORK ADDRESS TRANSLATION) MOTIVAZIONI NAT(Network Address Translation) = Tecnica di filtraggio di pacchetti IP con sostituzione

Dettagli

Laboratorio del corso Progettazione di Servizi Web e Reti di Calcolatori Politecnico di Torino AA 2014-15 Prof. Antonio Lioy

Laboratorio del corso Progettazione di Servizi Web e Reti di Calcolatori Politecnico di Torino AA 2014-15 Prof. Antonio Lioy Laboratorio del corso Progettazione di Servizi Web e Reti di Calcolatori Politecnico di Torino AA 2014-15 Prof. Antonio Lioy Soluzioni dell esercitazione n. 2 a cura di Giacomo Costantini 19 marzo 2014

Dettagli

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO okfabian@yahoo.com Fabian Chatwin Cedrati Ogni scheda di rete ha un indirizzo MAC univoco L'indirizzo IP invece viene impostato dal Sistema Operativo HUB 00:50:DA:7D:5E:32

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Transparent Firewall

Transparent Firewall Transparent Firewall Dallavalle A. Dallavalle F. Sozzi 18 Febbraio 2006 In un sistema operativo Linux con un kernel aggiornato alla versione 2.6.x è possibile realizzare un transparent firewall utilizzando

Dettagli

C) supponendo che la scuola voglia collegarsi in modo sicuro con una sede remota, valutare le possibili soluzioni (non risolto)

C) supponendo che la scuola voglia collegarsi in modo sicuro con una sede remota, valutare le possibili soluzioni (non risolto) PROGETTO DI UNA SEMPLICE RETE Testo In una scuola media si vuole realizzare un laboratorio informatico con 12 stazioni di lavoro. Per tale scopo si decide di creare un unica rete locale che colleghi fra

Dettagli

Guida pratica all utilizzo di Zeroshell

Guida pratica all utilizzo di Zeroshell Guida pratica all utilizzo di Zeroshell Il sistema operativo multifunzionale creato da Fulvio.Ricciardi@zeroshell.net www.zeroshell.net Proteggere una piccola rete con stile ( Autore: cristiancolombini@libero.it

Dettagli

Filtraggio del traffico di rete

Filtraggio del traffico di rete Laboratorio di Amministrazione di Sistemi L-A Filtraggio del traffico di rete Si ringraziano sentitamente: Angelo Neri (CINECA) per il materiale sulla classificazione, le architetture ed i principi di

Dettagli

Sicurezza dei calcolatori e delle reti

Sicurezza dei calcolatori e delle reti Sicurezza dei calcolatori e delle reti Proteggere la rete: tecnologie Lez. 11 A.A. 2010/20011 1 Firewall I firewall sono probabilmente la tecnologia per la protezione dagli attacchi di rete più diffusa

Dettagli

Sommario. Introduzione. Creazione di un firewall su GNU/Linux con iptables.

Sommario. Introduzione. Creazione di un firewall su GNU/Linux con iptables. Sommario Firewall con iptables Fabio Trabucchi - Giordano Fracasso 5 Febbraio 2005 Diario delle revisioni Revisione 0.2 7 Febbraio 2005 fabio.trabucchi@studenti.unipr.it giordano.fracasso@studenti.unipr.it

Dettagli

Gli indirizzi dell Internet Protocol. IP Address

Gli indirizzi dell Internet Protocol. IP Address Gli indirizzi dell Internet Protocol IP Address Il protocollo IP Prevalente è ormai diventato nell implementazione di reti di computer la tecnologia sintetizzata nei protocolli TCP- Ip IP è un protocollo

Dettagli

Reti standard. Si trattano i modelli di rete su cui è basata Internet

Reti standard. Si trattano i modelli di rete su cui è basata Internet Reti standard Si trattano i modelli di rete su cui è basata Internet Rete globale Internet è una rete globale di calcolatori Le connessioni fisiche (link) sono fatte in vari modi: Connessioni elettriche

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall I firewall Perché i firewall sono necessari Le reti odierne hanno topologie complesse LAN (local area networks) WAN (wide area networks) Accesso a Internet Le politiche di accesso cambiano a seconda della

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

Aspetti di sicurezza in Internet e Intranet. arcipelago

Aspetti di sicurezza in Internet e Intranet. arcipelago Aspetti di sicurezza in Internet e Intranet La sicurezza in reti TCP/IP Senza adeguate protezioni, la rete Internet è vulnerabile ad attachi mirati a: penetrare all interno di sistemi remoti usare sistemi

Dettagli

Scritto da Administrator Lunedì 01 Settembre 2008 06:29 - Ultimo aggiornamento Sabato 19 Giugno 2010 07:28

Scritto da Administrator Lunedì 01 Settembre 2008 06:29 - Ultimo aggiornamento Sabato 19 Giugno 2010 07:28 Viene proposto uno script, personalizzabile, utilizzabile in un firewall Linux con 3 interfacce: esterna, DMZ e interna. Contiene degli esempi per gestire VPN IpSec e PPTP sia fra il server stesso su gira

Dettagli

Internet e protocollo TCP/IP

Internet e protocollo TCP/IP Internet e protocollo TCP/IP Internet Nata dalla fusione di reti di agenzie governative americane (ARPANET) e reti di università E una rete di reti, di scala planetaria, pubblica, a commutazione di pacchetto

Dettagli

Reti di Calcolatori. Lezione 2

Reti di Calcolatori. Lezione 2 Reti di Calcolatori Lezione 2 Una definizione di Rete Una moderna rete di calcolatori può essere definita come: UN INSIEME INTERCONNESSO DI CALCOLATORI AUTONOMI Tipi di Rete Le reti vengono classificate

Dettagli

Livello di Rete. Prof. Filippo Lanubile. Obiettivo

Livello di Rete. Prof. Filippo Lanubile. Obiettivo Livello di Rete Circuiti virtuali e datagram La funzione di instradamento Costruzione della tabella di routing Algoritmi di routing adattivi: distance vector routing e link-state routing Routing gerarchico

Dettagli

TCP/IP. Principali caratteristiche

TCP/IP. Principali caratteristiche TCP/IP Principali caratteristiche 1 TCP/IP Caratteristiche del modello TCP/IP Struttura generale della rete Internet IL MONDO INTERNET Reti nazionali e internazionali ROUTER Rete Azienade ROUTER ROUTER

Dettagli

Kernel Linux 2.4: firewall 1985

Kernel Linux 2.4: firewall 1985 Kernel Linux 2.4: firewall 1985 Mark Grennan, Firewalling and Proxy Server HOWTO Peter Bieringer, Linux IPv6 HOWTO

Dettagli

DEPLOY DI ZEROSHELL IN AMBIENTE VIRTUALE. Lorenzo Comi

DEPLOY DI ZEROSHELL IN AMBIENTE VIRTUALE. Lorenzo Comi DEPLOY DI ZEROSHELL IN AMBIENTE VIRTUALE Lorenzo Comi Introduzione: software ed hardware 2 Software per la virtualizzazione: VMware Fusion. 3 macchine virtuali Zeroshell 3.0.0 con profilo attivo. Macchina

Dettagli

Il modello TCP/IP. Sommario

Il modello TCP/IP. Sommario Il modello TCP/IP Il protocollo IP Mario Cannataro Sommario Introduzione al modello TCP/IP Richiami al modello ISO/OSI Struttura del modello TCP/IP Il protocollo IP Indirizzi IP Concetto di sottorete Struttura

Dettagli

Seminario Open Routing. Corso di Sistemi di Commutazione A.A. 2002/2003

Seminario Open Routing. Corso di Sistemi di Commutazione A.A. 2002/2003 Seminario Open Routing Corso di Sistemi di Commutazione A.A. 2002/2003 Argomenti Un PC per fare routing? Elementi base di un personal computer Architetture dei BUS: ISA, VESA, PCI, Performance e bottlenecks

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Netfilter: utilizzo di iptables per

Netfilter: utilizzo di iptables per Netfilter: utilizzo di iptables per intercettare e manipolare i pacchetti di rete Giacomo Strangolino Sincrotrone Trieste http://www.giacomos.it delleceste@gmail.com Sicurezza delle reti informatiche Primi

Dettagli

Alcuni elementi di sicurezza sulle reti

Alcuni elementi di sicurezza sulle reti Alcuni elementi di sicurezza sulle reti La sicurezza è un aspetto centrale per le attuali reti dati. Come tutti sanno le minacce provenienti da Internet aumentano di continuo, e le possibilità di attacco

Dettagli

Networking Wireless con Windows XP

Networking Wireless con Windows XP Networking Wireless con Windows XP Creare una rete wireless AD HOC Clic destro su Risorse del computer e quindi su Proprietà Clic sulla scheda Nome computer e quindi sul pulsante Cambia Digitare il nome

Dettagli

La sicurezza delle reti

La sicurezza delle reti La sicurezza delle reti Inserimento dati falsi Cancellazione di dati Letture non autorizzate A quale livello di rete è meglio realizzare la sicurezza? Applicazione TCP IP Data Link Physical firewall? IPSEC?

Dettagli

Analizziamo quindi in dettaglio il packet filtering

Analizziamo quindi in dettaglio il packet filtering Packet filtering Diamo per noti I seguenti concetti: Cosa e un firewall Come funziona un firewall (packet filtering, proxy services) Le diverse architetture firewall Cosa e una politica di sicurezza Politica

Dettagli

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta auletta@dia.unisa.it

Dettagli

Protocollo TCP/IP & Indirizzamento IP

Protocollo TCP/IP & Indirizzamento IP Protocollo TCP/IP & Indirizzamento IP L architettura TCP/IP: Nasce per richiesta del Dipartimento della Difesa degli USA che intendeva poter creare una rete in grado di funzionare in qualsiasi tipo di

Dettagli

Firewall. Alfredo De Santis. Maggio 2014. Dipartimento di Informatica Università di Salerno. ads@dia.unisa.it http://www.dia.unisa.

Firewall. Alfredo De Santis. Maggio 2014. Dipartimento di Informatica Università di Salerno. ads@dia.unisa.it http://www.dia.unisa. Firewall Alfredo De Santis Dipartimento di Informatica Università di Salerno ads@dia.unisa.it http://www.dia.unisa.it/professori/ads Maggio 2014 Pacchetti I messaggi sono divisi in pacchetti I pacchetti

Dettagli

Livello Trasporto Protocolli TCP e UDP

Livello Trasporto Protocolli TCP e UDP Livello Trasporto Protocolli TCP e UDP Davide Quaglia Reti di Calcolatori - Liv Trasporto TCP/UDP 1 Motivazioni Su un host vengono eseguiti diversi processi che usano la rete Problemi Distinguere le coppie

Dettagli

Bandwidth Limiting HOWTO

Bandwidth Limiting HOWTO Bandwidth Limiting HOWTO Introduzione Mi è stato chiesto di fornire un firewall, con GNU/Linux, che permettesse anche di limitare e gestire in modo intelligente, il traffico generato da alcuni host e/o

Dettagli

Autenticazione ed integrità dei dati Firewall

Autenticazione ed integrità dei dati Firewall Pagina 1 di 9 Autenticazione ed integrità dei dati Firewall Per proteggere una rete dagli attacchi provenienti dall'esterno si utilizza normalmente un sistema denominato Firewall. Firewall è un termine

Dettagli

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica.

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica. Sistemi e tecnologie per la multimedialità e telematica Fabio Burroni Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena burronif@unisi unisi.itit La Sicurezza delle Reti La presentazione

Dettagli

Sicurezza architetturale, firewall 11/04/2006

Sicurezza architetturale, firewall 11/04/2006 Sicurezza architetturale, firewall 11/04/2006 Cos è un firewall? Un firewall è un sistema di controllo degli accessi che verifica tutto il traffico che transita attraverso di lui Consente o nega il passaggio

Dettagli

Comandi di Rete. Principali Comandi di Rete. Verificare, testare ed analizzare da Riga di Comando

Comandi di Rete. Principali Comandi di Rete. Verificare, testare ed analizzare da Riga di Comando Comandi di Rete Principali Comandi di Rete. Verificare, testare ed analizzare da Riga di Comando PING: verifica la comunicazione tra due pc Il comando ping consente di verificare la connettività a livello

Dettagli

In questo Workshop: Settare il networking di base sulla nostra macchina GNU/LINUX. Imparare a NATTARE la connetività

In questo Workshop: Settare il networking di base sulla nostra macchina GNU/LINUX. Imparare a NATTARE la connetività 1 MSACK::Hacklab msack.c4occupata.org In questo Workshop: Settare il networking di base sulla nostra macchina GNU/LINUX Imparare a NATTARE la connetività Configurare la nostra piccola workstation come

Dettagli

Modulo 8 Ethernet Switching

Modulo 8 Ethernet Switching Modulo 8 Ethernet Switching 8.1 Ethernet Switching 8.1.1 Bridging a livello 2 Aumentando il numero di nodi su un singolo segmento aumenta la probabilità di avere collisioni e quindi ritrasmissioni. Una

Dettagli

Vedremo. Introduzione. Cosa sono i Firewall. Cosa sono i Firewall. Perché un Firewall? I FIREWALL I FIREWALL I FIREWALL I FIREWALL I FIREWALL

Vedremo. Introduzione. Cosa sono i Firewall. Cosa sono i Firewall. Perché un Firewall? I FIREWALL I FIREWALL I FIREWALL I FIREWALL I FIREWALL Docente: Barbara Masucci Vedremo Cosa sono i Firewall Cosa fanno i Firewall Tipi di Firewall Due casi pratici: 1. IPCHAIN Per Linux 2. ZONE ALARM Per Windows 1 2 Introduzione Perché un Firewall? Oggi esistono

Dettagli

Realizzazione di una rete dati IT

Realizzazione di una rete dati IT Realizzazione di una rete dati IT Questo documento vuole semplicemente fornire al lettore un infarinatura di base riguardo la realizzazione di una rete dati. Con il tempo le soluzioni si evolvono ma questo

Dettagli

Elementi di Sicurezza e Privatezza Laboratorio 6 - Sniffing. Chiara Braghin chiara.braghin@unimi.it

Elementi di Sicurezza e Privatezza Laboratorio 6 - Sniffing. Chiara Braghin chiara.braghin@unimi.it Elementi di Sicurezza e Privatezza Laboratorio 6 - Sniffing Chiara Braghin chiara.braghin@unimi.it Sniffing (1) Attività di intercettazione passiva dei dati che transitano in una rete telematica, per:

Dettagli

Realizzazione e gestione di Local Area Network

Realizzazione e gestione di Local Area Network Realizzazione e gestione di Local Area Network Ceracchi Fabiana Mansi Luigi Tutor Angelo Veloce NETWORK La rete è un insieme di sistemi per l elaborazione delle informazioni messi in comunicazione tra

Dettagli

Proteggere la rete: tecnologie

Proteggere la rete: tecnologie Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Proteggere la rete: tecnologie Alessandro Reina Aristide Fattori

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Reti di Calcolatori Claudio Marrocco Componenti delle reti Una qualunque forma di comunicazione avviene: a livello hardware tramite un mezzo fisico che

Dettagli

Architetture di router IP

Architetture di router IP Torino, novembre 2004 Reti e sistemi telematici Architetture di router IP Gruppo Reti TLC giancarlo.pirani@telecomitalia.it http://www.telematica.polito.it/ GIANCARLO PIRANI TELECOM ITALIA LAB ROUTER IP

Dettagli

Progettazione di reti AirPort

Progettazione di reti AirPort apple Progettazione di reti AirPort Indice 1 Per iniziare con AirPort 5 Utilizzo di questo documento 5 Impostazione Assistita AirPort 6 Caratteristiche di AirPort Admin Utility 6 2 Creazione di reti AirPort

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

Informazioni Generali (1/2)

Informazioni Generali (1/2) Prima Esercitazione Informazioni Generali (1/2) Ricevimento su appuntamento (tramite e-mail). E-mail d.deguglielmo@iet.unipi.it specificare come oggetto Reti Informatiche 2 Informazioni Generali (2/2)

Dettagli

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema contenuto della comunicazione sistema per la gestione della comunicazione sottosistema C sottosistema B sottosistema A

Dettagli

Besnate, 24 Ottobre 2009. Oltre il Firewall. pipex08@gmail.com

Besnate, 24 Ottobre 2009. Oltre il Firewall. pipex08@gmail.com Besnate, 24 Ottobre 2009 Oltre il Firewall Autore: Gianluca pipex08@gmail.com Cos'è un firewall i FIREWALL sono i semafori del traffico di rete del nostro PC Stabiliscono le regole per i pacchetti che

Dettagli

Reti di calcolatori. Lezione del 25 giugno 2004

Reti di calcolatori. Lezione del 25 giugno 2004 Reti di calcolatori Lezione del 25 giugno 2004 Tecniche di attacco Denial of Service : impedisce ad una organizzazione di usare i servizi della propria rete; sabotaggio elettronico Gli attacchi DoS possono

Dettagli

Sviluppo siti e servizi web Programmi gestionali Formazione e Consulenza Sicurezza informatica Progettazione e realizzazione di reti aziendali

Sviluppo siti e servizi web Programmi gestionali Formazione e Consulenza Sicurezza informatica Progettazione e realizzazione di reti aziendali 1 Caratteristiche generali Nati dall esperienza maturata nell ambito della sicurezza informatica, gli ECWALL di e-creation rispondono in modo brillante alle principali esigenze di connettività delle aziende:

Dettagli

Il routing nelle reti IP

Il routing nelle reti IP Il routing nelle reti IP A.A. 005/006 Walter Cerroni IP: instradamento dei datagrammi Routing : scelta del percorso su cui inviare i dati i router formano una struttura interconnessa e cooperante: i datagrammi

Dettagli