Innanzitutto nella progettazione di un firewall si devono tenere in mente alcuni punti fondamentali che servono di conseguenza nella scelta del firewall da adottare:
Questo tipo di firewall è in genere uno screening router che filtra informazioni derivanti dal livello data-link o dal livello rete principalmente sugli IP del mittente e destinatario,ad esempio a livello aziendale si può bloccare in uscita i pacchetti che hanno come IP il server dell'azienda concorrente e in entrata i pacchetti con IP sempre dell'azienda concorrente. In pratica si deve creare una black list (lista nera) degli IP da respingere; siccome questo tipo di firewall lavora al massimo a livello rete(IP), i pacchetti che processa giungono con informazioni dei protocolli usati a livello applicazione, quindi si può già sullo screening router applicare politiche anche su questi protocolli, impedendo di usare un protocollo o limitandone l'uso.Riassumendo con il firewall a livello di rete si può agire sulle seguenti informazione, sulle quali poi applicare filtri:
Il firewall a livello applicazione viene comunemente chiamato server Proxy o più semplicemente Proxy; questi tipi di server comunicano con la rete esterna per conto degli host della rete interna, in altre parole i Proxy controllano il traffico tra due reti.L'indirizzo che un server esterno riceve è infatti quello del Proxy e questo rappresenta anche un metodo di protezione delle informazioni della rete interna.Con questo tipo di firewall abbiamo cosi una netta distinzione tra rete interna e esterna, infatti ogni pacchetto viene ricevuto processato e inoltrato dal Proxy sia verso l'interno che verso l'esterno, non c'è quindi un collegamento fisico tra le due reti.I firewall a livello applicazione operano sui protocolli di livello di applicazione quali HTTP, FTP, SMTP, BOOTP, TFTP, etc. abilitandoli disabilitandoli o limitandone l'uso; a differenza dei firewall a livello rete, qui abbiamo un server Proxy per ogni protocollo interessato http, Telnet, Gopher, Ftp; i server Proxy più diffusi tra sistemi UNIX sono TIS e SOCKS, sta inoltre prendendo fama nei sistemi Linux il Proxy Squid facile da configurare e molto veloce.Per la gestione dei server Proxy bisogna usare applicazioni client che lo supportino, esempio nel client Web della netscape è possibile settare il proxy per la navigazione. La sicurezza di questi firewall è maggiore di quelli precedenti perchè attuano una distinzione fisica tra rete interna e esterna a discapito però di una minore velocità.
Il firewall a livello di circuiti è sempre un firewall di livello applicazione cioè un Proxy, ma a differenza del precedente non richiede di utilizzare client specifici che supportino software Proxy.Il Proxy in questo caso si occupa solamente di creare il circuito di comunicazione tra client e server senza che le applicazioni lo sappiano; in pratica questo tipo di firewall esamina ogni tipo di collegamento in modo che segua una sessione di collegamento TCP giusta (handshake), e successivamente il firewall mantiene una tabella dei collegamenti valida che usa per far passare dati da una sorgente a una destinazione, una volta terminata la connessione la entry nella tabella viene rimossa e la connessione chiusa. Un primo vantaggio di questo Proxy è quello di supportare un ampia varietà di protocolli di livello applicazione senza avere client che supportino la collaborazione con il Proxy, poi la stessa gestione del server risulta semplificata in quanto non bisogna gestire più tanti server quanti sono i protocolli da filtrare, ma basta gestire un unico server.Il firewall di livello circuito registra queste informazioni sulla tabella:
Quando un firewall a livello di circuito riceve un pacchetto, lo processa e controlla a seconda dei dati contenuti se tale pacchetto a un 'entry nella tabella, e può quindi essere instradato.I principali svantaggi dei firewall a livello di circuito sono: