Quello dei firewall è un argomento molto trattato sui manuali scolastici di Sistemi & Reti. Facciamo il punto di quello che ci occorre sapere per progettare una rete con questi dispositivi.
Letteralmente “muro di fuoco“, il firewall è un dispositivo che viene posto a difesa di una rete filtrando il traffico in entrata o in uscita dalla rete stessa. Dove conviene piazzarlo? A meno di particolari necessità, il firewall si trova al confine di una rete, ad esempio la LAN di casa, ufficio o scuola, tra il router o il modem che collega la rete verso l’esterno e il resto dei pc della rete LAN. Altra applicazione che si trova molto spesso è quella di usare un firewall per proteggere una DMZ, una zona demilitarizzata, ovvero che riceve traffico esterno o interno alla rete non controllato strettamente. E’ la classica area dove inserire server web, database ed altri servizi che devono essere raggiunti dall’esterno della nostra rete e che vengono divisi dalla restante rete amministrativa.
Tipi di firewall
Come possiamo catalogarli? Innanzi tutto in base alla tecnologia i firewall possono essere hardware o software. I firewall hardware sono dispositivi che nascono in modo dedicato alla funzione di filtro, ed essendo fisici, non risentono di attacchi, bug software, filtrano tutto il traffico al 100% con prestazioni elevate. Possono costare parecchio a seconda delle caratteristiche. Assomigliano ai classici switch ma ovviamente con funzionalità completamente differenti e dei sistemi operativi dedicati come il CiscoOS. Marche di firewall molto diffuse e sono sicuramente Cisco, WatchGuard, con prezzi che possono oscillare tra i 300 e 2000 euro a seconda delle performance richieste. Sono decisamente consigliati per applicazioni e reti professionali di medie e grandi dimensioni. In alcuni casi poi firewall hw possono essere già incorporati nei router, vedi dispositivi Cisco serie 1800. Sfruttano una configurazione mediante ACL, Access List per permettere e negare determinati ip o tipologie di protocolli con l’uso di maschere host.


I firewall software hanno decisamente meno pretese, ma non nascono per essere disposti perimetralmente, quanto più integrati su un dispositivo come il pc di casa od ufficio. I firewall software sono esempi classici che conosciamo quotidianamente col nome di antivirus anche se non è proprio esatto, meglio se parliamo di Windows Firewall, il software incluso in tutte le recenti versioni di Windows. Essendo software hanno lo svantaggio di essere passibili di bug, prestazioni non esaltanti e incapacità oggettiva a filtrare accuratamente tutto il traffico oltre che una configurabilità spesso molto limitata ma semplice, costi pressoché nulli, e col vantaggio di coprire un ampio spettro di traffico.
Esiste un terzo tipo di firewall che preferisco citare a parte, contrariamente a molti volumi, che sono quelli ibridi hw/sw: i vantaggi di un firewall software ma che gira nello spazio kernel riservato dal sistema operativo. Sono i classici esempi di firewall del mondo dei sistemi operativi Linux molto noti e con una grande diffusione sul mercato professionale con due nomi su tutti: Iptable e Pf. Sono firewall meno semplici magari da configurare ma dai vantaggi innegabili. Sono sempre intesi come filtri perimetrali. Spesso nascono all’interno di distribuzioni Linux o BSD ideate su misura per scopi di firewalling o router come ZeroShell, pfSense e già preinstallate su dispositivi simili a switch ma dei veri mini pc componibili con processori Atom o Celeron serie J1800/2900, hard disk ssd e ram ddr di ultima generazione, con case industriali (in foto) o da rack

Queste soluzioni sono si economiche, ma garantiscono prestazioni elevate e scalabili e soprattutto facilmente configurabili/modificabili anche da utenti non espertissimi.
Come funziona un firewall? Anche sul funzionamento possiamo individuare delle classificazioni. Nei corsi di Sistemi e Reti, e su queste pagine, abbiamo spesso parlato di pila ISO/OSI o di pila TCP/IP. Beh, un firewall può agire a diversi livelli della pila, eccezion fatta per il livello 1, quello fisico.
Filtraggio MAC
A livello 2 della pila TCP/IP, un firewall filtra gli indirizzi MAC. Come il lettore sa o ricorda, le schede di rete, sia le più conosciute 802.3 ethernet o le 802.11 wireless, sono contraddistinte da una impronta fisica, un codice, un indirizzo stampato sul firmware della scheda, ovvero l’indirizzo MAC, che possiamo quindi immaginare come il seriale di telaio di un’auto, un identificativo unico del tipo e0:d5:5e:0a:12:cd con 6 cifre esadecimali come quelle della mia scheda di rete dove le prime tre coppie identificano il produttore della scheda a livello globale. L’idea è quella di creare all’interno del firewall una blacklist o whitelist di MAC address ammissibili e quindi possono transitare. Il codice MAC ricordo è stampato in ogni pacchetto o trama di livello 2 nella relativa intestazione dove ci sono il MAC della scheda che invia e di quella destinataria. Non è una misura di sicurezza forte: il MAC può sempre essere dissimulato con tecniche semplici ma certamente non è facilissimo sapere a priori quali sono abilitati quindi comunque dissuade l’utente meno esperto. E’ una tecnica molto usate negli alberghi o aree wifi gratuite dove, oltre a fornivi una SSID per la rete, vi richiedono il MAC da abilitare e/o rintracciare per motivi di sicurezza. E’ molto semplice come tecnica da implementare e la potete trovare anche tra le opzioni di sicurezza del vostro modem casalingo.
Filtraggio IP
Sempre nella logica simile del filtraggio MAC, salendo al livello 3, i firewall trovano la loro applicazione nativa principale: filtrare traffico da e verso determinati indirizzi IP. Vengono detti “packet filter”, proprio perchè vanno a filtrare i pacchetti, leggendo semplicemente l’intestazione del pacchetto IP e decidendo mediante delle policy impostate dal sistemista di rete se accettare o rifiutare un determinato traffico. Esempi di firewall con queste funzionalità sono i famosi ed diffusi IPTable e PF già citati.
Filtraggio Trasporto
Perché limitarsi a filtrare i pacchetti IP quando con poche e semplici regole possiamo anche bloccare la tipologia di pacchetto? Qui il lettore magari è più disorientato ma al livello 4 detto esistono diversi servizio classificati come TCP, UDP, ICMP (il ping), FTP e i meno conosciuti SMB, AEP, ATP ed altri. A questo tipo di filtro, è possibile aggiungere ulteriormente un filtro anche sulla porta del servizio, come la porta 80 per le pagine web, la 443 per https, 21 per lo ftp ecc. Ne viene fuori che ogni catena di regole può andare a filtrare il traffico in modo molto selettivo consentendo pochi e adeguati servizi da e verso un ufficio, una scuola, una zona dmz con server pubblici. Sotto un esempio di una lista di regole IPTable che gestisce il traffico in ingresso INPUT, uscita OUTPUT, sulla pota 22 ed una delle schede di rete del pc e il traffico tcp da e verso l’indirizzo 10.1.1.0.
# question 1: allow ssh over eth0
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT
# question 2: Allow icmp(ping) anywhere
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type any -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type any -j ACCEPT
# question 3: allow http from internal(leftnet) to external(rightnet)
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp --sport 80 -j ACCEPT
# question 4: allow ssh from internal(leftnet) to external(rightnet)
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp --sport 22 -j ACCEPT
# allow http from external(rightnet) to internal(leftnet)
# iptables -A FORWARD -i eth2 -o eth1 -p tcp --dport 80 -j ACCEPT
# iptables -A FORWARD -i eth1 -o eth2 -p tcp --sport 80 -j ACCEPT
# allow rpcinfo over eth0 from outside to system
# iptables -A INPUT -i eth2 -p tcp --dport 111 -j ACCEPT
# iptables -A OUTPUT -o eth2 -p tcp --sport 111 -j ACCEPT
Filtraggio applicativo
Il filtraggio dei pacchetti TCP/IP è istantaneo. Il firewall deve solo leggere le intestazioni dei pacchetti per effettuare le sue decisioni. Le prestazioni di questo filtro sono piuttosto elevate e non inficiano di molto la velocità della rete e del suo traffico. Si tratta infatti di fare un mapping di cifre binarie corrispondenti agli indirizzi e le porzioni di intestazione con numeri di porta e servizi. Diverso il discorso se saliamo al livello 5, quello applicativo con i dati veri e propri. La necessità nasce dal bloccare categorie di siti di cui a priori non è possibile conoscere o elencare tutti gli IP. Mettiamo caso che a scuola o in ufficio voglia bloccare tutti i siti che hanno a che fare con scommesse, gioco d’azzardo o pornografia che non sono di interesse professionale. Come posso elencare tutti i siti web sul tema? Impossibile o comunque molto difficile. In questo caso il firewall allora deve spacchettare i pacchetti nella loro parte dati, leggere il contenuto parola per parola e verificare tramite una lista fornita se sono consentite o no, bloccando eventualmente quindi la visione dell’intera pagina o scartando a priori l’intero pacchetto in transito. Il lettore comprende da se che l’operazione non è semplice come quelle di livello 3, ma richiede più tempo e risorse di calcolo a prescindere, generando degli overhead alla rete e rischia di appesantire o rendere malfunzionante il firewall centrale responsabile, che a questo punto deve avere risorse hardware non più molto economiche. Un esempio dei filtraggio applicativo, seppur più semplice, è quello dei nostri antivirus, che in base a liste di definizioni aggiornabili, ricercano nei software o pagine che scarichiamo elementi corrispondenti. Un esempio di firewall applicativo è l’open source Squid, ovviamente solo software e non hardware. Spesso i firewall vengono detti anche server o nodi proxy, che in realtà sono dispositivi che nascono con altre funzionalità ma che spesso ospitano anche questo servizio di filtraggio del traffico.
Ultima modifica 18 Gennaio 2022