Prima di entrare nel cuore della trattazione, conviene fare una piccola introduzione. Se già sapete cos'è un firewall e avete una discreta idea di come funzioni una rete, potete saltare senza troppi rimpianti questa sezione. Se invece non avete le idee tanto chiare o se per la prima volta vi trovate ad affrontare problematiche di questo tipo, vi consiglio di continuare...
Comunque sia, partendo da zero, un firewall linux non è altro che un semplice personal computer normalmente collegato fisicamente (con dei cavi) a più di una rete.
Un firewall avrà quindi installata una scheda di rete (interfaccia) per ogni rete cui sarà collegato. Inoltre, dovrà costituire l'unico punto di contatto tra le reti cui è connesso.
Per spiegarmi meglio, un firewall dovrà costituire l'unico punto di collegamento tra due o più reti. Un po' come un ponte che collega due o più isole. Senza entrare nei dettagli del protocollo ip, tutte le comunicazioni tra queste reti saranno quindi costrette a passare da questo computer.
Questo computer, una volta configurato come firewall, sarà in grado di decidere cosa far passare, cosa scartare o come reagire a determinati eventi. Tornando all'esempio del nostro ponte, configurare il computer come firewall può essere considerato equivalente a mettere una stanga e 2 finanzieri che controllano tutti i veicoli e le persone in transito. Questi 2 finanzieri saranno quindi in grado di agire secondo le istruzioni che gli verranno date dal ministero, bloccando veicoli, arrestando i contrabbandieri o sparando a vista ai ricercati.
In linux, la stanga e i finanzieri sono messi a disposizione direttamente dal kernel. Per controllare il kernel, per dare cioè le direttive ai finanzieri, vengono messi a disposizione diversi comandi: con il kernel 2.4, i principali e più avanzati sono comunque il comando ``ip'', ``tc'' e ``iptables'', i primi due inclusi nel pacchetto ``iproute'' mentre il terzo distribuito indipendentemente.
Procedendo con ordine, in linea di principio il comando ``ip'' vi consente di creare nuove isole e nuovi ponti, di gestire quindi le tabelle di routing e le interfacce di rete, il comando iptables di istruire i finanzieri dicendo cosa far passare e cosa non far passare o come reagire a determinate condizioni, consente cioè di creare dei filtri. Infine, il comando tc, vi consente di stabilire delle priorità e dei limiti sul traffico in ingresso ed in uscita. Ad esempio, un compito che esula dal filtraggio e che quindi riguarda tc potrebbe essere quello di riservare alcune corsie al passaggio di veicoli di emergenza o di servizio, limitando magari il traffico automobilistico, di riservare cioè determinate quantità di banda a determinate tipologie di traffico.
Riassumendo, quindi, si parlerà del comando