Packet Filter

Indice dei contenuti

    Il packet filter è la prima generazione di firewall, sviluppata alla fine degli anni ‘80. Ispeziona ogni pacchetto IP in modo stateless — indipendentemente dal contesto della connessione a cui appartiene — analizzando esclusivamente i campi delle intestazioni di livello 3 (rete) e livello 4 (trasporto):

    • Indirizzo IP sorgente e destinazione
    • Porta TCP/UDP sorgente e destinazione
    • Protocollo (TCP, UDP, ICMP)
    • Flag TCP (SYN, ACK, RST, FIN)

    Ogni pacchetto viene confrontato in sequenza con una lista ordinata di regole (ACL, Access Control List): alla prima regola che corrisponde, il pacchetto viene accettato (ACCEPT), scartato silenziosamente (DROP) o rifiutato con notifica (REJECT). Una regola di default-deny alla fine blocca tutto ciò che non è esplicitamente permesso.

    Regole tipiche

    In notazione iptables Linux:

    # Permetti traffico HTTPS in ingresso dalla rete locale
    -A INPUT -s 192.168.1.0/24 -p tcp --dport 443 -j ACCEPT
    # Permetti risposte a connessioni già stabilite
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    # Blocca tutto il resto
    -A INPUT -j DROP

    Limiti strutturali

    Il packet filter è stateless: non mantiene alcuna memoria delle connessioni in corso. Questo causa due classi di problemi fondamentali.

    IP spoofing: un attaccante può forgiare pacchetti con un indirizzo IP sorgente arbitrario, ingannando regole basate sull’IP. Il packet filter non ha modo di verificare l’autenticità dell’indirizzo.

    Apertura delle porte di risposta: i protocolli come FTP in modalità attiva richiedono connessioni di ritorno su porte dinamiche. Un packet filter deve permettere un intero range di porte alte in ingresso — aumentando la superficie esposta — perché non sa quali connessioni sono “risposte” legittime a traffico interno.

    Nessun contesto applicativo: un pacchetto con flag ACK ma senza un SYN precedente nella stessa connessione è indistinguibile da un pacchetto legittimo per il packet filter. Il firewall stateful risolve questi problemi mantenendo una tabella delle connessioni attive.

    Uso attuale

    Il packet filter rimane il meccanismo base di sistemi come iptables/nftables (Linux), pf (BSD/macOS) e i security group dei cloud provider (AWS, GCP, Azure). In questi contesti moderni è spesso combinato con il tracking di stato (opzione --state ESTABLISHED,RELATED in iptables) che ne supera il limite stateless. Come primo livello di filtraggio — veloce e a basso overhead — rimane componente fondamentale anche nelle architetture NGFW.

    Ultimo aggiornamento: