Firewall
Il firewall non solo protegge la LAN aziendale o domestica da attacchi provenienti da Internet, ma viene utilizzato anche come protezione dai pericoli interni, provenienti da computer presenti nella stessa sottorete (ad esempio per evitare la propagazione di un virus accidentalmente introdotto a causa di una chiavetta USB infetta): è buona norma dividere la nostra rete in diversi segmenti, ordinati per affidabilità, dove ogni segmento rappresenta una diversa sottorete, e per ciascuna di esse attivare delle protezioni specifiche. Naturalmente su questi server vengono inoltre istallati i programmi appositi di antispam e antivirus.
esempio
Nel caso di un attacco a una LAN la zona più esposta è quella intermedia e l'attaccante deve superare le difese successive del firewall che regola e limita il traffico tra i server front-end e back-end che comunicano tra loro solo su porte TCP o UDP strettamente necessarie e ben controllate.
Un firewall è un sistema hardware-software dedicato alla difesa perimetrale di una rete che agisce filtrando il traffico di pacchetti entranti e/o uscenti. Un firewall di rete è costituito da più macchine differenti che lavorano assier per prevenire accessi non voluti: il router esterno, quello connesso a Internet, invia tutto il traffico entrante all'application gateway che seleziona i pacchetti utilizzando apposite liste accesso (AGL Access control list) e li inoltra alla rete interna: quindi il gateway filtra il traffico entrante e uscente, eliminando i pacchetti che non soddisfano i requisiti di sicurezza individuati (filtering router).
Nella progettazione di un firewall bisogna tenere presente tre principi fondamentali:
-
il firewall deve essere l'unico punto di contatto della rete interna con quella esterna.
-
Solo il traffico "autorizzato" può attraversare il firewall.
-
il firewall deve essere un sistema altamente sicuro esso stesso.
Classificazione di firewall
Primo tipo di classificazione
Ingress firewall: vengono controllati i collegamenti incoming, gli accessi ai servizi che sono offerti dall'esterno della LAN;
egress firewall: vengono controllati collegamenti outgoing, cioè l'attività del personale interno nella LAN verso l'esterno, in modo da filtrare il traffico in modo che quello non autorizzato non lasci mai la rete interna.
Secondo tipo di classificazione
Personal firewall: proteggono il singolo host consentendo, generalmente di default, qualsiasi traffico verso esterno (outbound ) e bloccando quello dall'esterno (inbound);
Network firewall: si interpone fra la LAN e Internet e controlla tutto il traffico passante.
Terzo tipo di classificazione
Filtri di pacchetti: permettono di bloccare o abilitare selettivamente il traffico che attraversa il firewall definendo i protocolli (o meglio, il tipo di pacchetto), gli indirizzi IP e le porte utilizzate;
collegamenti proxy:rappresentano una sorta di intermediario che si occupa di intrattenere le connessioni per conto di qualcun altro nella rete interna.
Personal firewall
è un semplice programma installato sul proprio rete, che protegge quest'ultimo da ayyacchi indesiderati: in esso il traffico da interno verso esterno è consentito per default mentre il traffico dall'esterno verso interno è vietato per default. Personal firewall sono utilizzabili solo a scopo personale.
Network firewall
Sono i classici firewall aziendali dove una (o più) macchine sono dedicate al filtraggio di tutto il traffico da e per una rete locale e solo il traffico autorizzato deve attraversare il firewall facendo in modo di mantenere i servizi di rete ritenuti necessari.
A seconda del livello di rete nel quale si fanno i controlli i network firewall possono essere classificati in:
-
packet-filtering router
-
circuit gateway
-
proxy server
Ogni router che effettui funzioni di NAT protegge da accessi estemi in quanto gli host interni possiedono indirizzi privati, non accessibili da Internet: non è quind i possibile attivare una connessione dall'esterno e ogni tentativo di port scan viene bloccato su tutte le porte tranne quelle per cui è abilitato il forwarding. Non vengono però fatti controlli di outbound e, quindi , se viene installato un programma di backdoor su un host, questo può connettersi verso un server esterno e trasmettere informazioni della rete, senza alcuna possibilità di controllo: non effettua neppure il controlio a livello applicativo e quindi permette il download di virus ecc.
Packet filter router
Analizza le informazioni contenute nell'header TCP/IP a livello di rete e di trasporto per individuare:
-
IP del mittente o del destinatario;
-
Indirizzo MAC sorgente o di destinazione;
-
numero di porta verso cui è destinato il pacchetto;
-
Protocollo da utilizzare.
Il firewall decide se il pacchetto può essere accettato o meno attraverso un algoritmo di scelta che si basa su una lista di regole (in ordine di priorità): le filosofie applicabili come regola di funzionamento sono quindi due:
-
permit
-
deny
le regole di controllo possono essere configurate in modo statico (manuale) con validità temporale illimitata oppure dinamico.
Quindi in base a queste regole i pacchetti possono essere:
-
accept/allow: il firewall permette al pacchetto di raggiungere la sua destinazione;
-
deny:il firewall scarta il pacchetto, senza che questo passi attraverso il firewall e viene inviato un messaggio d'errore all'host sorgente;
-
discard/reject: il firewall scarta il pacchetto senza restituire nessun messaggio d'errore all'host ". implementando quella che viene chiamata metodologia black hole, che elimina il pacchetto senza che la sua presenza venga rivelata agli estranei.
Fisicamente i firewall viene disposto su un router fra la rete locale e Internet: dato che devono eseguire molteplici elaborazioni deve disporre di una veloce e di notevole memoria dinamica.
ACL
Le regole vengono disposte in liste apposite chiamate ACL (Access Control List) dove è possibile dettagliare i filtri da applicare a ogni pacchetto in funzione delle informazioni presenti negli header, quindi a livello 3 (i networking); a volte vengono analizzati anche gli header di livello 4 (transport) ma si ignorano le informazioni del protocollo applicativo al quale il pacchetto si riferisce.
Le ACL si basano o su indirizzo sorgente o destinazione o sui protocolli e sui numeri di porta dei livelli superiori e le filosofie alla loro base sono due, tra loro opposte:
Open security policy: tutto è permesso per default e nella lista è presente l'elenco dei divieti;
closed security policy: tutto è vietato per default e nella lista ACL sono elencati i pochi accessi che vengono permessi, ed è la politica maggiormente adottata.
Esistono varie ragioni per decidere di adoperare le ACL:
-
Fornire un livello base di sicurezza: si può per esempio restringere gli accessi a una determinata rete o sottorete;
-
Limitare il traffico e aumentare la performance della rete: si può, infatti, decidere che alcuni pacchetti vengano processati prima di altri. Questo viene in particolare riferito come queuing
-
Decidere quale tipo di traffico può essere trasmesso: si può permettere l’invio di e-mail e impedire allo stesso tempo il Telnet.
Le ACL vengono elaborate dal router in maniera sequenziale in base all’ordine in cui sono state inserite le varie clausole. Appena un pacchetto soddisfa una delle condizioni, la valutazione s’interrompe e il resto delle ACL non viene preso in considerazione. Il pacchetto viene quindi inoltrato o eliminato secondo l’istruzione eseguita (figura 1). Se il pacchetto non soddisfa nessuna delle condizioni viene scartato (si considera cha alla fine di un ACL non vuota ci sia l’istruzione deny any ovvero nega tutto).
Posizionamento di un’ACL
Uno degli aspetti fondamentali da ricordare è il posizionamento delle ACL. Questo è di non secondaria importanza, in quanto un cattivo posizionamento delle ACL può aver un impatto negativo sulla rete:
- maggiori risorse utilizzate dal router nel processare i pacchetti;
- decadimento delle prestazioni della rete;
- collasso della rete stessa.
Due sono gli aspetti fondamentali da tenere in considerazione nel posizionamento di un’ACL:
-
I pacchetti scartati non andranno a utilizzare risorse della rete;
-
Processare le ACL richiede risorse aggiuntive per il router (questo è anche uno dei motivi per cui non bisogna abusare delle ACL, specie in presenza di processori poco potenti).
Cisco consiglia, a riguardo, di posizionare le ACL standard più vicino alla destinazione e le ACL Estese più vicino alla sorgente.
Per creare una ACL su un router Cisco occorre seguire i seguenti passi in configuration mode:
1. Definire la ACL con il seguente comando:
Router(config)# access-list access-list number {permit|deny} {test-conditions}
– access-list number è il numero univoco che identifica ogni ACL e che ne definisce il tipo (vedi tabella 1). Dalla versione 11.2 del Cisco IOS si può utilizzare un nome al posto del numero.
– Permit e deny definiscono le condizioni (permetti e nega) su come devono essere maneggiati i pacchetti:
Permit indica che il pacchetto ha il permesso di utilizzare una o più interfacce specificate di seguito;
deny indica che il pacchetto deve essere droppato.
– Il termine finale specifica la condizione da soddisfare.
2. si deve applicare la ACL a una o più interfacce:
Router(config-if)# access-group access-list number
La wildcard mask
La wildcard mask è un numero di 32-bit diviso in 4 ottetti, simile alla subnet-mask. La differenza sostanziale è che la wildcard-mask indica quali bit di un indirizzo IP devono essere controllati in un’ACL: il valore 0 nella wildcard-mask indica che il bit corrispondente deve essere controllato, il valore 1 che deve essere ignorato.
Le ACL standard vengono utilizzate per bloccare o permettere il traffico da una rete o da un host specifico o per negare una suite di protocolli. L’aspetto fondamentale delle ACL standard è che il controllo viene esclusivamente effettuato sull’indirizzo sorgente.
La sintassi del comando per i router Cisco è
Router(config)# access-list access-list number {permit|deny} source [source wildcard] [log]
dove
Parametri
Descrizione
Access-list-number
Numero della ACL. Ne indica il nome e il tipo (es. da 1 a 99 per le ACL IP standard)
Permit
Permette l’accesso se le condizioni sono soddisfatte
Deny
Nega l’accesso se le condizioni sono soddisfatte
Source
Indirizzo sorgente del pacchetto
Souce wildcard
(Optional) La wildcard mask che deve essere applicata all’indirizzo sorgente
Log
(Optional) Attiva i messaggi di log. Questi comprendono l’indirizzo sorgente, il numero di pacchetti e l’esito del controllo (permit o deny). I log vengono generati a intervalli di 5 minuti.
Per eliminare una ACL bisogna utilizzare il comando
Router(config)# no access-list access-list number
Le ACL estese forniscono una maggiore flessibilità e controllo se paragonate a quelle standard. Le ACL estese, infatti, possono effettuare il controllo non solo sull’indirizzo del mittente, ma anche su quello del destinatario, su uno specifico protocollo, sul numero di porta o su altri parametri.
Per definire un’ACL Estesa sui router Cisco entrare in configuration mode ed eseguire i seguenti passi:
-
Definire l’ACL secondo la sintassi:
Router(config)# access-list access-list-number {deny | permit} protocol source source-wildcard destination destination-wildcard [operator operand] [established] [precedence precedence] [log]
Parametri
Descrizione
Access-list-number
Numero dell’ACL. Ne indica il nome e il tipo (es. da 100 a 199 e da 2000 a 2699 per le ACL IP Estese). E’ importante ricordare che le ACL estese utilizzano access-list number differenti da quelli utilizzati dalle standard, anche se riferiti allo stesso protocollo.
Permit
Permette l’accesso se le condizioni sono soddisfatte
Deny
Nega l’accesso se le condizioni sono soddisfatte
Protocol
Il protocollo di comunicazione; es. IP, TCP, UDP, ICMP, IGRP, …
Source e Destination
Indirizzo del mittente e del destinatario.
Souce-wildcard e Destination-wildcard
La wildcard mask che deve essere applicata all’indirizzo sorgente e a quello di destinazione.
Operator operand
Un operatore logico: lt, gt, eq, neq, range (less than, greater than, equal, not equal, range) e il numero o il nome della porta TCP o UDP (vedi Tabella n.1). Nel caso dell’operatore range occorre inserire due valori operand (es. range 21 25)
Established
(Optional) Si utilizza solo con il protocollo TCP: indica una “estabilished connection”. Il controllo viene effettuato solo se il datagramma ha settato il bit di ACK o RST, mentre non ci sono controlli sul pacchetto iniziale per stabilire la connessione.
Precedence
(Optional) Indica un numero da 0 a 7, che specifica la precedenza del pacchetto rispetto a un altro (Queuing).
Log
(Optional) Attiva i messaggi di log. Questi comprendono l’indirizzo sorgente, il numero di pacchetti e l’esito del controllo (permit o deny). I log vengono generati a intervalli di 5 minuti.
-
Applicare l’ACL a una o più interfacce:
Router(config-if)# ip access-group access-list number {in|out}
Parametri
Descrizione
Access-list-number
Indica il numero della ACL che deve essere legata all’interfaccia.
In|out
Specifica se la ACL va applicata all’interfaccia in entrata o in uscita. Un’ACL in input fa sì che il router applichi prima l’ACL e poi effettui il routing, mentre in output prima il routing e poi l’ACL. Se non è specificato, per default è out.
Nota: Per cancellare un ACL o rimuoverla da un’interfaccia del Router occorre utilizzare rispettivamente i seguenti comandi:
Router(config)# no access-list access-list number
Router(config-if)# no ip access-group access-list number
E’ consigliabile, prima di cancellare un’ACL, rimuoverla da tutte le interfacce.
Per visualizzare le informazioni sulle ACL si possono utilizzare i seguenti comandi:
– Router> show access-list [access-list number]: mostra il contenuto di tutte le ACL caricate sul router (utilizzando l’opzione access-list number vengono elencate solo le condizioni di una determinata ACL);
– Router> show ip interface [interface-type number] : mostra le informazioni sulle interfacce IP e quindi anche la presenza di un’eventuale ACL collegata all’interfaccia (le opzioni interface-type e number permettono di indicare una determinata interfaccia).
Regole fondamentali
Quando si utilizzano le ACL ci sono alcune regole e consigli da seguire:
-
Studiare bene lo scopo che si vuole ottenere con le ACL;
-
Inserire le clausole più restrittive e quelle più utilizzate all’inizio;
-
Posizionare le ACL Standard più vicino al destinatario;
-
Posizionare le ACL Estese più vicino al mittente;
-
Poiché non è possibile cambiare l’ordine in cui vengono inserite le varie condizioni di un’ACL, può essere opportuno scriverle con un editor di testo e poi esportarle sul router, avendo cura di salvarne una copia. Questo è utile anche in caso di future modifiche.
-
Ricordare che le ACL, in ogni caso, richiedono l’utilizzo di risorse aggiuntive al processore del router.
DMZ
La zona demilitarizzata è una porzione di rete che separa la rete interna dalla rete esterna: i server nella DMZ sono accessibili dalla rete pubblica, perciò non sono trusted (dalla rete interna) e quindi devono essere segregati in quanto, se venissero compromessi, questo non deve produrre effetti collaterali nella rete aziendale. La DMZ permette di effettuare la sicurezza perimetrale, cioè protegge una rete nei punti in cui essa è a contatto con il mondo esterno, interponendosi tra la LAN aziendale e la WAN esterna.
La principale difesa contro gli attacchi a una rete è proprio una corretta organizzazione topologica della rete stessa: l'approccio ormai condiviso è quello di suddividere la rete in zone di sicurezza modo che:
i dispositivi e le risorse sono posizionati nelle zone in base ai loro livelli e requisiti di sicurezza;
la rete acquisisce una maggiore scalabilità e una conseguente maggiore stabilità.
Per essere definita, la DMZ necessita di un IP statico e permette di esporre al WWW un solo indirizzo IP , quindi un solo computer , al quale vengono inoltrate tutt e le richieste di connessione.
Nelle ditt e in cui la sicurezza dei dati è vitale è possibile introdurre un sistema di stratificazione della DMZ inserendo anche più di due firewalls e più DMZ.