Un firewall ("parete tagliafuoco") è una struttura intesa ad impedire la diffusione del fuoco. Negli edifici i firewall sono i muri in mattone che dividono completamente le sezioni. In un auto un firewall è la parete metallica che separa l'abitacolo dal motore.
I firewall di Internet sono intesi per tenere le fiamme dell'inferno di Internet fuori dalla propria LAN privata, oppure per conservare i membri della propria LAN puri e casti negandogli l'accesso a tutte le tentazioni della diabolica Internet. ;-)
Il primo computer firewall era un host Unix non instradante con connessioni a due reti diverse. Una scheda di rete era connessa ad Internet e l'altra ad una LAN privata. Per raggiungere Internet dalla rete privata, si doveva effettuare il login sul server firewall (Unix). Poi si utilizzavano le risorse del sistema per accedere ad Internet. Per esempio, si poteva usare X-Windows per lanciare il browser Netscape nel sistema firewall e poi esportare il display sulla propria workstation. Il browser in funzione sul firewall aveva quindi accesso ad entrambe le reti.
Questo tipo di sistema "dual homed" (un sistema con due connessioni di rete) è una gran cosa se ci si può FIDARE DI TUTTI i propri utenti. Si potrebbe quindi semplicemente configurare un sistema Linux e dare un account a chiunque abbia bisogno di accedere ad Internet. Con questa impostazione, il solo computer nella propria rete privata che sa qualcosa del mondo esterno è il firewall. Nessuno può scaricare qualcosa sulla workstation personale, si deve prima scaricare un file sul firewall e poi scaricarlo dal firewall nella propria workstation.
NOTA IMPORTANTE: il 99% delle irruzioni iniziano guadagnando l'accesso a livello utente sul sistema da attaccare. Per questo motivo non raccomando questo tipo di firewall. Inoltre è molto limitante.
Non si creda che il firewall sia tutto quello di cui si ha bisogno. Per prima cosa si decidano delle politiche.
I firewall sono usati con due scopi:
Quando ho iniziato a lavorare sui firewall mi sorpresi di scoprire che la compagnia per la quale lavoravo era più interessata a "spiare" i propri dipendenti che a tenere fuori dalla propria rete i cracker.
Almeno nel mio stato (Oklahoma) i datori di lavoro hanno il diritto di cominciare a controllare le chiamate telefoniche e l'attività Internet non appena informati i propri dipendenti.
Il Grande Fratello non è il governo. Grande Fratello = Grande Business.
Non mi si fraintenda. La gente dovrebbe lavorare, non giocare mentre è al lavoro. E sento che l'etica nel lavoro si sta sgretolando. Comunque, ho osservato anche che i tipi del management sono i primi ad abusare delle regole da loro imposte. Ho visto continui rimproveri diretti a lavoratori perché cercavano, per andare al lavoro, gli itinerari dei bus su Internet, quando poi gli stessi manager spendevano ore cercando ristoranti raffinati o nightclub per ricevere potenziali clienti.
La mia soluzione per questo tipo di abusi consiste nel pubblicare su una pagina Web, a disposizione di chiunque, i log del firewall.
L'affare sicurezza può essere spaventoso. Se amministri un firewall, guardati le spalle.
Ho consultato diversa documentazione di rilievo su come creare una politica per la sicurezza. Dopo anni di esperienza posso adesso affermare: non si creda ad una parola. Creare una politica è semplice.
La politica diventerà sempre più complicata nel tempo, però ora non si provi a coprire troppi aspetti. La si realizzi semplice e chiara.
Esistono due tipologie di firewall.
Il Packet Filtering è il tipo di firewall presente nel kernel Linux.
Un firewall filtrante funziona a livello di rete. È permesso ai dati di lasciare il sistema solo se lo permettono le regole del firewall. Come i pacchetti arrivano sono poi filtrati in base alle informazioni sul tipo, sull'indirizzo di provenienza, sull'indirizzo di destinazione e sulle porte contenute in ciascuno di essi.
Molti router di rete hanno l'abilità di effettuare alcuni servizi di firewall. Un firewall filtrante può essere pensato come un tipo particolare di router. Per questo motivo è necessaria una profonda conoscenza della struttura dei pacchetti IP per lavorarci.
Poiché sono analizzati e registrati pochissimi dati, i firewall filtranti occupano meno la CPU, e creano minor latenza nella propria rete.
I firewall filtranti non forniscono un controllo a livello di password. Gli utenti non possono identificarsi. La sola identità che un utente ha consiste nel numero IP assegnato alla sua macchina. Ciò può essere un problema se si intende usare DHCP (assegnazione dinamica dell'IP). Poiché le regole sono basate sui numeri IP, dovranno essere aggiustate non appena saranno assegnati nuovi numeri. Non saprei come automatizzare questo processo.
I firewall filtranti sono più trasparenti per gli utenti. L'utente non deve impostare regole nella sua applicazione per utilizzare Internet. Con la maggioranza dei proxy server questo non è vero.
I Proxy sono principalmente usati per controllare, o monitorare, il traffico. Alcuni proxy di applicazioni possono fare la cache dei dati richiesti, ciò abbassa le richieste di banda e diminuisce il tempo d'accesso per il successivo utente che vuole accedere a quegli stessi dati. Inoltre fornisce un'evidenza inequivocabile su quanto è stato trasferito.
Esistono due tipi di proxy server.
Il miglior esempio è quello di una persona che effettua un telnet su un altro computer e poi da qui al resto del mondo. Solo con un proxy server di applicazione il processo è automatizzato. Non appena si fa telnet verso l'esterno il client per prima cosa vi manda al proxy. Il proxy poi si connette al server che si è richiesto (il mondo esterno) e restituisce i dati.
Poiché i proxy server gestiscono tutte le comunicazioni, possono registrare qualsiasi cosa vogliono (si vuole). Per i proxy HTTP (web) ciò può includere qualsiasi URL che si visita, per i proxy FTP qualsiasi file si scarica. Possono anche filtrare parole "inappropriate" dai siti che si visitano o controllare la presenza di virus.
Gli application proxy server possono autenticare gli utenti. Prima di effettuare una connessione verso l'esterno, il server può richiedere all'utente, per prima cosa, di effettuare il login. Ad un utilizzatore del web ciò comporterà la necessità di un login per ogni sito che desidera visitare.
Un server SOCKS è molto simile ad una vecchia switch board. Semplicemente incrocia, attraverso il sistema, i "cavi" della propria connessione con un'altra connessione esterna.
La maggior parte dei server SOCKS funziona solamente con connessioni di tipo TCP e come i firewall filtranti non fornisco l'autenticazione degli utenti. Possono comunque registrare dove si è connesso ogni utente.