Firewall
In informatica, nell'ambito delle Reti di computer, un firewall č un componente attivo che seziona e collega due o piů tronconi di rete. Usualmente la rete viene divisa in due sottoreti: una, detta esterna, comprende l’intera internet mentre l’altra, detta interna, comprende una sezione piů o meno grande di un insieme di computer locali.Grazie alla sua posizione strategica, il firewall risulta il posto migliore ove imporre delle logiche di traffico per i pacchetti in transito e/o eseguire un monitoraggio di tali pacchetti.
La funzione principale del firewall č quella di proteggere i sistemi informatici presenti nella sezione interna dal “caos” presente nel lato esterno. Il firewall agisce sui pacchetti in transito da e per la zona interna potendo eseguire su di essi operazioni di:
- controllo,
- modifica,
- monitoraggio.
Ma diamo una definizione chiusa di firewall: Computer che filtra tutti i pacchetti entranti ed uscenti, da e verso una rete o un computer, garantendo la sicurezza della stessa.
I piů attenti avranno notato una piccola incongruenza nella definizione, infatti, esistono firewall che si occupano di filtrare (ipchains, iptables) ed altri che per consentire la sicurezza, consentono un accesso alla rete esterna, solo indirettamente (proxy server)
I FIREWALL FILTRANTI
Un firewall FILTRANTE, ha la funzione di “filtrare" (appunto) tutti i pacchetti, come appena illustrato, con una pecca: non tiene traccia dei log, ovvero non registra l’attivitĂ di nessuno dei suoi sottoposti. Ma questo cosa vuol dire ai fini pratici? Significa che, da parte dell’amministratore di sistema, non si avrĂ modo di intercettare eventuali bachi di configurazione, se non con delle prove sul campo, mentre, per l’utente finale, si risolverĂ piů o meno come segue: quando aprirĂ un Browser per visualizzare una pagina web, farĂ partire una richiesta dal suo computer (la pagina web), verso Internet, da Internet, a sua volta, viene inviata la risposta (la pagina web che vuole visualizzare), in comodi pacchetti, ovvero: la pagina web richiesta, viene divisa in tanti piccoli pezzi, questi vengono segnati e trasmessi uno alla volta, questi pacchetti saranno analizzati dal firewall che deciderĂ in base alla destinazione e alla provenienza, se farli passare o bloccarli.
Il sistema “pacchettizzato", consente di raggiungere velocità nettamente superiori, in quanto, qualora un pacchetto non dovesse raggiungere la destinazione, sarebbe reinviato da capo, lui soltanto, non tutto il plico.... chiaro?
I pacchetti possono dunque essere di diverso tipo, visto che i protocolli sono diversi (il tcp/ip č in realtĂ una souite di protocolli e non uno soltanto) si pensi ad esempio al tcp, all'icmp e all'udp, oltre a tutte le porte verso i quali sono diretti.
Il firewall lascia passare soltanto i pacchetti richiesti o quelli autorizzati, o meglio, dovrebbe, se lo settate a puntino.
In Windows, non si hanno dei firewall “incorporati”, si possono tuttavia acquistare diversi “pacchetti” che ne contengono alcune versioni.
La stessa Microsoft, distribuisce un suo firewall, ovviamente a pagamento.
La struttura di un buon firewall, vorrebbe un computer con il solo S.O. ed il programma per il filtraggio dei pacchetti (il firewall), sistemato tra una linea esterna e la rete aziendale, di modo da porsi come scudo per gli attacchi esterni.
Questa struttura consente infatti ad un aggressore, il solo accesso al firewall stesso, impedendogli una corsa sfrenata verso il suo vero obiettivo.
Con Linux si hanno diversi sistemi per la protezione di una rete aziendale e, ad oggi, un firewall realizzato con tecnologia Linux (o *BSD) č assolutamente preferibile per diversi motivi:
tutto il software č assolutamente gratuito, dunque si abbatte il costo di acquisto delle licenze
si hanno due diversi tipi di protezione da firewall - ipchains o iptable (nuova edizione, se vogliamo, del passato ipchains) al livello stesso del kernel, i tcp_wrappers a livello applicativo (rappresentano un ulteriore filtraggio dei pacchetti in base a chi li spedisce o chi li riceve)
si ha la possibilitĂ di implementare con un semplice applicativo, la funzione di masquerading, ovvero, nascondere a possibili aggressori, gli indirizzi ip privati della vostra rete. (in genere questo può essere realizzato anche attraverso un router, avendo a disposizione degli ip dinamici, il cui costo č sempre da tener presente)
non si necessita di macchine costose, basterĂ un vecchio 486 con 500 Mb e 16 Mb di ram.
Avremo dunque un computer con due schede di rete, di cui una riceve informazioni da Internet, mentre l’altra le trasmette dalla rete interna. Ognuna delle due schede avrà un indirizzo ip statico, di modo tale che si possa consentire l’accesso ad un possibile server web (re-indirizzando le richieste che giungono verso la porta 80 o 8080) ed allo stesso tempo, si possa far uscire tutte le richieste che vengono dalla rete interna, come se fosse il firewall stesso a generarle, ovvero, come se - per assurdo - 2 persone usassero lo stesso pc, ricevendo posta e leggendo articoli in Internet.
La protezione a livello del kernel č ovviamente la piů sicura, tuttavia necessita di un ottima conoscenza dello strumento che si sta usando.
Poniamo per assurdo di voler negare l’accesso agli indirizzi privati della rete amministrativa, eccetto per il computer che emette fatture, esso sarà a sua volta collegato con un pc che dalla nostra stanza fornirà indicazioni sui clienti. Qualora la regola venisse indicata nel seguente ordine:
nega accesso a tutti coloro che hanno indirizzo compreso tra 192,168.0.1 e 192.168.0.255
e poi inserissimo una seconda regola per dare accesso al pc amministrativo che emette fatture, con una regola del tipo
consenti l’accesso alla porta TCP ...... dall’indirizzo 192.168.0.15
la seconda regola verrĂ scartata, in quanto soppiantata dalla prima!
in poche parole, il programma viene letto in ordine e, quando una regola aggiunta successivamente, contrasta con una precedente, viene ignorata.
Ecco dunque che si deve conoscere a fondo il proprio lavoro per poter lavorare bene.
Le regole di ipchains ed iptables sono identiche ed ovviamente lo č anche la sintassi. Per chiarire meglio andiamo ad analizzare la sintassi delle regole:
iptables - viene indicato sempre ovviamente, per indicare il programma
i comandi di seguito vengono sempre indicati con il - avanti, non per impaginazione, ma perchč dovranno essere così indicati all’atto della specifica della regola.
-A - sta per Append, ovvero aggiungi la regola alla precedenti
-D - sta per Delete, ovvero cancella la regola che andrete ad indicare di seguito
-L - richiede la lista delle regole elencate
-F - Flush, ovvero cancella tutte le regole una ad una
i parametri
-p - protocollo, con questo parametro, potrete indicare quale protocollo bloccare, per quali macchine o per quali indirizzi ip
-s - source, sorgente, da quale indirizzo di provenienza si deve rifiutare, bloccare o lasciar passare una data cosa
-i - interface, interfaccia in ingresso, attraverso cui devono passare o meno determinate cose. Questo torna molto utile, se come dicevamo, potete usare piů schede di rete
-o - output, interfaccia in uscita, attraverso la quale si devono operare le regole di cui sopra.
Come si vede dunque, č sufficientemente semplice configurare delle regole per la protezione aziendale, pur se da sole non bastano.
Ricapitolando, dunque, qualora decideste di adottare un firewall di questo tipo (filtrante) č necessario, per avere una discreta protezione, seguire alcuni passi di base:
analizzare a priori quali siano le regole principali, che maggiormente si addicono all’azienda si cui siamo parte;
riassumere le regole, in un numero abbastanza basso, in modo tale che, se si dovesse porre la necessitĂ di riscriverle, non dovremo sacrificare un lungo lavoro;
ordinare le regole in modo da non creare confusione e da rendere il firewall pienamente funzionante;
organizzare un Pc con il solo kernel Linux ed una interfaccia testuale (senza dunque installare X o altre utility che non avranno scopo sul firewall)
installare e configurare due schede di rete, una in ingresso ed una in uscita, ricordando bene che sbagliando interfaccia rischieremo di tagliare fuori la nostra rete;
strutturare una rete di Pc (anche mista, con Linux, *BSD, Mac ecc...) in modo tale che possano navigare in Internet solo attraverso il nostro firewall;
strutturare il masquerading, di modo che all’esterno non sia visibile la nostra rete in alcun modo (l’unica macchina visibile sarà il firewall)
Ben chiaro, non stiamo enunciando regole universali, tuttavia, una buona rete, viene realizzata “generalmente” con una simile configurazione.
Vedi anche:
Il contributo iniziale di questo articolo č stato prelevato da http://www.ebruni.it/it/pp/docs/lf/html/lf.htm che rilascia il testo con la GNU FDL.