Firewall e sicurezza perimetrale

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.

Posizione

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.

Posizione classica di un firewall

Nel caso di DMZ dove sono presenti diversi server e servizi che devono avere accesso dall’esterno in modo più semplificato, la configurazione firewall potrebbe e dovrebbe essere più complessa. Un firewall dovrebbe proteggere la DMZ in modo flessibili e poco “pesante” dal traffico esterno, magari per evitare o contenere attacchi informatici noti come i DDoS, mentre un secondo firewall con regole più robuste e stringenti che difende la rete LAN dal traffico non idoneo.

Il doppio firewall per DMZ / LAN

Tipi di firewall

Come possiamo catalogarli? Innanzi tutto in base alla tecnologia i firewall possono essere hardware o software. Più una terza categoria che spesso non è annoverata in modo esplicito su libri e manuali: i firewall ibridi.

Firewall hardware

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 3000 euro (anche oltre!) a seconda delle performance richieste. Sono decisamente consigliati per applicazioni e reti professionali di medie e grandi dimensioni. In alcuni casi poi firewall hardware 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.

Un ASA 5000 della Cisco
www.researchgate.net/profile/Vic_Grout/publicat...
Una configurazione della ACL di un firewall

Firewall software

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 (host based). 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 e alal portata di tutti, costi pressoché nulli, e col vantaggio di coprire un ampio spettro di traffico.

Firewall ibridi

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 (lo spazio kernel è una porzioni di memoria particolarmente perché non accessibile a programmi o utenti). Sono i classici esempi di firewall dei sistemi operativi Linux, molto noti e con una grande diffusione sul mercato professionale con due nomi su tutti: Iptable e Pf. Sono meno semplici, magari, da configurare ma hanno 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 pfSense (o la sua versione opensource OpnSense) o OpenWrt, già preinstallate su dispositivi simili a switch ma dei veri mini pc componibili con processori Atom o Celeron serie J1800/2900 o N5000 dalle prestazioni e consumi energetici ridotti, hard disk ssd e ram ddr comunque di ultima generazione, con case industriali (in foto) o da rack. Il vantaggio di avere un firewall su disto Linux sta nel fatto che il firewall gira nello spazio di memoria ram del kernel (kernel space), ovvero inacessibile a software utente o maleintenzionti ma gestita unicamente dal sistema operativo. Se il firewall girasse in spazio utente (user space), come un normale programma, sarebbe facilmente disattivabile o attaccabile da hacker.

Firewall Router Intel Celeron J1900 J1800 N2806 Mini PC PFsense ...
Un pc industriale predisposto a firewall

Queste soluzioni sono decisamente economiche, ma garantiscono prestazioni elevate e scalabili e soprattutto facilmente configurabili/modificabili anche da utenti non espertissimi.

Tipi di filtraggio

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 (per quello basta staccare il cavo…).

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. E’ utilizzata nei captive portal, i classici software di login delle reti aperte/pubbliche. Se vi registrate al servizio, il mac address del vostro dispositivo viene abilitato e consente quindi la navigazione nella rete.

 

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 porta 22, 80 e 111 su tre interfacce di rete ethernet.

# Consenti ssh sulla scheda di rete eth0
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT

# Consenti icmp(ping) ovunque
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

# Consenti http dalla rete interna verso l'esterno
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

# Consenti ssh dalla rete interna verso l'esterno
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

# Consenti http dalal rete esterna verso l'interno(DMZ?)
# 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

# Consenti traffico rpcinfo su eth0 dall'esterno verso l'interno
# 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 scolastico o aziendale. Come posso elencare tutti i siti web sul tema? Impossibile o comunque molto difficile. Il firewall deve spacchettare i pacchetti nella loro parte dati, leggere il contenuto parola per parola e verificare tramite una lista nera fornita se sono consentite o no, bloccando eventualmente quindi la visione dell’intera pagina e scartando a priori per intero i pacchetti in transito. Il lettore comprende da se che l’operazione non è semplice come quelle di livello 3, ma richiede più tempo e più risorse di calcolo a prescindere, generando degli overhead alla rete. Il carico di lavoro rischia di appesantire il firewall centrale responsabile, che a questo punto deve avere risorse hardware più spinte.

Un esempio dei filtraggio applicativo, seppur più semplice, è quello dei nostri antivirus casalinghi. In base a liste di definizioni aggiornabili, ricercano nei software o pagine che scarichiamo elementi corrispondenti. I firewall di questo tipo vengono detti host based perché si trovano sui nodi della rete e non al perimetro.

Un esempio di firewall applicativo è l’open source Squid, ovviamente un software e non un 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 13 Marzo 2024