Firewall Types#
Un firewall e' un sistema che filtra il traffico di rete applicando regole per decidere cosa lasciar passare e cosa bloccare. Esistono diverse generazioni, ognuna con un livello crescente di contesto e visibilita' sul traffico.
Mappa Globale#
Firewall Types — Panoramica#
Packet Filtering (Stateless)#
Il packet filtering e' la forma piu' semplice di firewall: esamina ogni pacchetto in isolamento senza sapere nulla della connessione a cui appartiene. E' veloce ma cieco al contesto.
- Opera su Layer 3/4: IP sorgente/destinazione, porta, protocollo (TCP/UDP/ICMP)
- Decisione presa per ogni singolo pacchetto indipendentemente
- Regola tipica:
ALLOW TCP src:any dst:10.0.0.1 port:443 - Non distingue un SYN legittimo (nuova connessione) da un ACK fuori contesto (RST spoofato)
- Non capisce se un pacchetto fa parte di una sessione stabilita o e' anomalo
sequenceDiagram
participant C as Client
participant FW as Packet Filter
participant S as Server
C->>FW: SYN dst:443 (ALLOW - regola match)
FW->>S: SYN forwarded
S->>FW: SYN-ACK
FW->>C: SYN-ACK forwarded
Note over FW: Nessuna memoria — ogni pacchetto
viene valutato da zero
C->>FW: ACK spoofato fuori contesto
FW->>S: ACK forwarded (nessun controllo stato)
Esempi: iptables in modalita' stateless, ACL su router Cisco.
Mappa — Packet Filtering#
Stateful Firewall#
Un firewall stateful mantiene una connection table che traccia lo stato di ogni sessione TCP/UDP attiva. Permette solo pacchetti che appartengono a una connessione legittimamente stabilita.
- Traccia le fasi della connessione TCP: SYN sent, SYN-ACK, ESTABLISHED, FIN_WAIT, TIME_WAIT
- Un ACK in arrivo senza un SYN precedente in tabella viene scartato (out-of-state)
- Difesa naturale contro: RST spoofing, XMAS scan, SYN flood (parzialmente — esaurisce la connection table)
- Opera ancora su L3/4: non vede il contenuto applicativo (payload HTTP, query SQL, ecc.)
sequenceDiagram
participant C as Client
participant FW as Stateful FW
participant S as Server
C->>FW: SYN dst:443
FW->>FW: Crea entry: SYN_SENT
FW->>S: SYN forwarded
S->>FW: SYN-ACK
FW->>FW: Aggiorna entry: ESTABLISHED
FW->>C: SYN-ACK forwarded
C->>FW: ACK
FW->>S: ACK forwarded (entry ESTABLISHED ok)
Note over FW: Attaccante invia RST spoofato
C->>FW: RST (senza entry corrispondente)
FW->>FW: BLOCCO — pacchetto out-of-state
Esempi: iptables -m state --state ESTABLISHED,RELATED, Windows Defender Firewall, ASA in default mode.
Mappa — Stateful Firewall#
NGFW (Next-Generation Firewall)#
Il Next-Generation Firewall porta l'ispezione fino al Layer 7 con Deep Packet Inspection (DPI), aggiunge un IPS integrato e conosce l'identita' dell'utente tramite AD/LDAP. Non si limita a "porta 443 aperta" ma capisce cosa passa dentro quella porta.
- Application awareness: distingue Skype da una VPN su porta 443, identifica BitTorrent, classifica Netflix per categoria anche se usa HTTPS
- IPS integrato: analisi inline con signature note e behavioral detection — se un pacchetto corrisponde a un exploit noto, viene bloccato prima di arrivare al server
- SSL/TLS inspection: decifra il traffico HTTPS in ingresso, lo ispeziona, lo re-cifra verso la destinazione — richiede installazione di un certificato CA sul client (certificate injection)
- User identity: policy per utente/gruppo AD, non solo per IP — un amministratore ha regole diverse da un ospite sulla stessa rete
- URL filtering: categorie aggiornate da cloud threat intelligence (adult, gambling, phishing, malware C2)
flowchart TD
PKT[Pacchetto in arrivo]
subgraph L34[Layer 3/4]
IP_CHK[IP/Porta/Protocollo]
STATE_CHK[Connection State Check]
end
subgraph L7[Layer 7 - DPI]
APP_ID[App Identification]
TLS_INSP[TLS Decryption + Inspection]
IPS_SIG[IPS Signature Match]
URL_CAT[URL Category Lookup]
USER_ID[User Identity - AD/LDAP]
end
ACTION{Decisione}
ALLOW[Permetti]
BLOCK[Blocca]
LOG[Log + Alert]
PKT --> IP_CHK
IP_CHK --> STATE_CHK
STATE_CHK --> APP_ID
APP_ID --> TLS_INSP
TLS_INSP --> IPS_SIG
IPS_SIG --> URL_CAT
URL_CAT --> USER_ID
USER_ID --> ACTION
ACTION -->|Conforme| ALLOW
ACTION -->|Anomalia| BLOCK
BLOCK --> LOG
Esempi: Palo Alto Networks PA series, Fortinet FortiGate, Cisco Firepower, pfSense con plugin Snort/Suricata.

Mappa — NGFW#
WAF (Web Application Firewall)#
Il WAF opera specificamente a Layer 7 HTTP/HTTPS e conosce la semantica delle web request: metodi HTTP, header, URL, body, cookie. E' progettato per bloccare gli attacchi dell'OWASP Top 10 che un firewall tradizionale non vede perche' sono nascosti dentro traffico HTTPS legittimo.
- Capisce la differenza tra
GET /api/userseGET /api/users/../../../etc/passwd(path traversal) - Blocca payload SQLi nel body di un POST (
' OR 1=1 --) - Identifica XSS nei parametri URL (
<script>alert(1)</script>) - Puo' essere deployato in tre modalita':
- In-line (reverse proxy): tutto il traffico passa attraverso il WAF prima di arrivare all'app
- Passivo (mirror/TAP): copia del traffico per analisi, nessun blocco attivo
- Embedded (SDK): libreria integrata nell'applicazione stessa
Modelli di policy:
- Positive model (whitelist): definisce cosa e' permesso (es. "questo endpoint accetta solo JSON con questi campi") e blocca tutto il resto — piu' sicuro ma richiede piu' manutenzione
- Negative model (blacklist): blocca pattern noti malevoli (regex per SQLi, XSS) — piu' facile da mantenere ma soggetto a evasion tramite encoding o varianti
Dev parallel: Il WAF e' come un middleware globale in Express/Symfony che valida e sanitizza ogni request prima che arrivi ai controller. La differenza e' che il WAF opera a livello infrastrutturale, indipendente dal codice applicativo — un developer potrebbe dimenticarsi la validazione in un controller, ma il WAF la applica comunque a tutti gli endpoint.

Mappa — WAF#
Proxy Firewall#
Un proxy firewall termina la connessione del client e ne apre una nuova verso il server: e' un full proxy. Il server non vede mai l'IP del client reale, ma solo l'IP del proxy. Questo permette un'ispezione completa del payload a tutti i livelli.
- Forward proxy: il client lo usa esplicitamente (o trasparentemente) per accedere a internet — filtra contenuti, logga le richieste, puo' fare caching
- Reverse proxy: si mette davanti ai server interni — il client internet vede solo il proxy, che smista le richieste ai backend; permette TLS termination, load balancing, WAF integrato
- Ogni sessione ha due connessioni separate: client-proxy e proxy-server — nessun pacchetto "passa attraverso" in senso stretto
sequenceDiagram
participant C as Client
participant FP as Forward Proxy
participant I as Internet Server
C->>FP: CONNECT api.example.com:443
FP->>FP: Policy check (URL category, user)
FP->>I: Nuova connessione TLS (IP proxy)
I->>FP: Risposta (TLS verso proxy)
FP->>FP: Ispeziona contenuto decifrato
FP->>C: Risposta re-cifrata verso client
Note over FP: Server vede solo IP proxy
Client vede solo IP proxy verso server
Esempi: Squid (forward proxy), Nginx come reverse proxy, Zscaler Internet Access (cloud forward proxy SaaS).
Dev parallel: In un'architettura microservizi, un API gateway come Kong o AWS API Gateway e' esattamente un reverse proxy firewall: termina le connessioni in ingresso, applica autenticazione/rate limiting/logging, poi inoltra al microservizio corretto. E' la stessa architettura del proxy firewall, ma applicata al traffico tra servizi interni.
Mappa — Proxy Firewall#
UTM (Unified Threat Management)#
L'UTM e' una soluzione all-in-one pensata per le PMI che combina in un singolo box: firewall, VPN, IDS/IPS, WAF, antivirus gateway e content filtering. Il vantaggio e' la semplicita' di gestione, lo svantaggio e' che diventa un single point of failure e un collo di bottiglia.
Trade-off principale: un NGFW dedicato come Palo Alto gestisce ogni funzione con hardware ottimizzato; un UTM deve fare tutto sullo stesso hardware con risorse condivise, risultando meno performante sotto carico.
Tabella Comparativa#
I firewall operano su layer OSI diversi e hanno visibilita' crescente sul traffico man mano che si sale nella pila.
| Tipo | Layer OSI | Contesto connessione | Payload L7 | Identity | Deploy tipico |
|---|---|---|---|---|---|
| Packet Filtering | L3/4 | No | No | No | ACL router, iptables stateless |
| Stateful | L3/4 | Si (connection table) | No | No | iptables -m state, Windows FW |
| NGFW | L3-L7 | Si | Si (DPI) | Si (AD/LDAP) | Palo Alto, FortiGate, Firepower |
| WAF | L7 HTTP | Si | Si (HTTP) | Parziale | AWS WAF, ModSecurity, Cloudflare |
| Proxy FW | L7 full | Si (2 sessioni) | Si (tutto) | Parziale | Squid, Nginx, Zscaler |
| UTM | L3-L7 | Si | Si | Si | Fortinet SMB, pfSense tutto-in-uno |

Dev parallel per l'intera architettura: E' come il routing in un framework MVC. Il router (packet filter) decide la destinazione in base all'URL. Il middleware di sessione (stateful FW) verifica che la sessione sia autenticata. Il middleware di validazione (WAF) controlla che l'input sia conforme. Il guard/policy (NGFW) verifica che l'utente abbia i permessi per quella risorsa. Ogni layer aggiunge contesto — e ogni layer ha il suo costo in termini di latenza e risorse.


