Firewall (che significa letteralmente 'parafiamme', n.d.t.) è un termine utilizzato per una parte dell'automobile. In essa, i firewall sono degli oggetti fisici che separano il motore dai passeggeri. Servono per proteggere i passeggeri nel caso in cui il motore si incendi, fornendo nel contempo al guidatore la possibilità di accedere ai controlli del motore.
Un firewall nei computer è un dispositivo che protegge una rete privata dalla parte pubblica (ossia dal resto di Internet).
Un computer firewall, d'ora in poi denominato "firewall", è in grado di raggiungere sia la rete protetta, sia Internet. La rete protetta non può raggiungere Internet, e Internet non può raggiungere la rete protetta.
Alcuni, per raggiungere Internet dall'interno della rete protetta, devono eseguire un telnet al firewall e da qui possono utilizzare Internet.
La forma più semplice di un firewall consiste in un sistema "dual homed" (ossia, un sistema con due connessioni di rete). Se ci si può fidare completamente di TUTTI i propri utenti, è possibile configurare in modo semplice Linux (compilarlo disabilitando l'opzione di IP forwarding/gatewaying!) e fornire a tutti un account su di esso. In questo modo, gli utenti potranno collegarsi a tale sistema ed eseguire telnet, FTP, leggere la posta, e utilizzare ogni altro servizio fornito. Con questa impostazione, l'unico computer sulla propria rete privata che conosce tutto del mondo esterno è il firewall. Un altro sistema sulla propria rete protetta non necessita neanche di un instradamento predefinito ("default route").
Questo va sottilineato: affinché il firewall suddetto funzioni CI SI DEVE POTER FIDARE DI TUTTI I PROPRI UTENTI! Per questo motivo non lo consiglio.
Il problema con i firewall filtranti deriva dal fatto che inibiscono l'accesso alla propria rete da Internet. È posibile accedere ai soli servizi sui sistemi che contengono dei filtri di passaggio ("pass filter"). Con un proxy server gli utenti possono connettersi al firewall e accedere a ogni sistema all'interno della rete privata a cui hanno accesso.
Inoltre, stanno nascendo quasi ogni giorno nuove tipologie di client e server. Quando questo accade, è necessario trovare un nuovo modo per consentire un accesso controllato prima che il servizio possa essere utilizzato.
Esistono due tipologie di firewall.
Un firewall filtrante IP funziona a livello di pacchetto. È progettato per controllare il flusso di pacchetti basandosi sulla sorgente, sulla destinazione, sulla porta e sull'informazione sul tipo di pacchetto contenuto in ciascun pacchetto.
Questo tipo di firewall è molto sicuro ma è carente in ogni forma utile di registrazione delle attività ("logging"). Può bloccare l'accesso degli utenti al sistema privato ma non è in grado di dire chi ha eseguito l'accesso ai propri sistemi pubblici o chi ha usato Internet dall'interno.
I firewall filtranti sono filtri assoluti. Se si vuole dare a qualcuno un accesso esterno ai propri server privati, non è possibile farlo senza dare a tutti l'accesso ai server.
Linux ha nel kernel un software di filtraggio dei pacchetti a partire dalla versione 1.3.x.
I Proxy server consentono l'accesso indiretto a Internet attraverso il firewall. Il migliore esempio di come ciò funziona è fornito dal caso di una persona che esegue un telnet a un sistema e da qui esegue nuovamente il telnet a un altro sistema. Tale processo è automatico solo con un proxy server. Quando ci si connette a un proxy server con il proprio software client, il proxy server avvia il suo software client (proxy) e fornisce i dati.
Dal momento che i proxy server duplicano tutte le comunicazioni, sono in grado di mantenere il log di tutto quello che fanno.
Un grande vantaggio dei proxy server consiste nel fatto che sono completamente sicuri, se configurati correttamente. Non consentiranno a qualcuno di attraversarli. Non ci sono instradamenti IP diretti.