I Firewall sono dispositivi hardware o software che permettono di proteggere e quindi filtrare traffico da e verso una L.A.N. per evitare accessi non autorizzati. Il firewall viene normalmente chiamato Bastion host, termine che indicava nel medioevo un particolare punto della fortificazione dei castelli; L'idea sarebbe quella di far passare tutto il traffico diretto a una certa rete attraverso questo dispositivo.Nei sistemi Unix e quindi anche nei sistemi Linux, il firewall può essere associato semplicemente a una Workstation (anche a un 486 per reti non di grosse dimensioni) poichè questi sistemi hanno internamente nel kernel una gestione e configurazione del firewall IP; inoltre grazie a questa caratteristica si ha a disposizione un ambiente UNIX per il monitoraggio e la configurazione del Firewall, senza dover imparare sistemi propietari.Siccome le architetture dei firewall sono molteplici si possono combinare vari firewall che agiscono su livelli diversi dello stack TCP/IP, vedremo successivamente come una combinazione di firewall a livello applicazione e screen routing può fornire un livello di sicurezza ragionevole. Lo screen rotuing rappresenta un primo livello di filtraggio; questo tipo di firewall può lavorare solo a livello data-link e rete e quindi può filtrare pacchetti in base a numeri di porta, indirizzi IP, flag TCP etc., non presenta un meccanismo di auditing (avvertimento) e per questo deve essere affiancato da filtri del firewall che possono lavorare a livello rete di trasporto e a livello di applicazione nell'ambito dello stack TCP/IP. Ci sono 3 punti principali che un firewall non può gestire in una progettazione di una politica della sicurezza e che quindi rappresentano dei limiti: