Skip to main content
  1. Concetti/

Firewall Types: Packet Filtering, Stateful, NGFW, WAF, Proxy

·7 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

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.

firewall-types-overview.webp

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/users e GET /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.

firewall-types-stateless-stateful.webp

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.

TipoLayer OSIContesto connessionePayload L7IdentityDeploy tipico
Packet FilteringL3/4NoNoNoACL router, iptables stateless
StatefulL3/4Si (connection table)NoNoiptables -m state, Windows FW
NGFWL3-L7SiSi (DPI)Si (AD/LDAP)Palo Alto, FortiGate, Firepower
WAFL7 HTTPSiSi (HTTP)ParzialeAWS WAF, ModSecurity, Cloudflare
Proxy FWL7 fullSi (2 sessioni)Si (tutto)ParzialeSquid, Nginx, Zscaler
UTML3-L7SiSiSiFortinet SMB, pfSense tutto-in-uno

firewall-concepts-overview.webp

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.

Related