[OpenBSD]

[Precedente: Opzioni Runtime] [Indice] [Successivo: Ancore]

PF: Scrub (Packet Normalization)


Indice


Introduzione

Lo "Scrubbing" è la cosìdetta normalizzazione dei pacchetti, la quale consente di evitare che vi siano, per il destinatario finale, delle ambiguità nell'interpretazione del pacchetto. Inoltre la direttiva scrub riassembla pacchetti frammentati, protegge alcuni sistemi operativi da alcuni tipi di attacchi e getta via i pacchetti TCP che hanno combinazioni di flag non valide. Una forma semplice della direttiva scrub è la seguente:
scrub in all

Questa direttiva eseguirà lo scrub per tutti i pacchetti in ingresso su tutte le interfaccie.

Una ragione per non eseguire lo scrub su una interfaccia può essere la necessità di far transitare l'NFS attraverso PF. Alcune piattaforme non OpenBSD inviano e ricevono strani pacchetti frammentati con il bit "non frammentare" attivo, questi sono respinti da scrub. Per consentire il passaggio si può usare l'opzione no-df. Un'altra ragione può essere legata a problemi riscontrabili nel far passare attraverso lo scrub alcune connessioni di giochi multi-player. Tranne che in questi casi molto particolari , lo scrubbing di tutti i pacchetti è una pratica decisamente raccomandata.

La sintassi della direttiva scrub è molto simile alla sintassi di filtraggio e quindi è molto semplice effettuare uno scrub selettivo per alcuni pacchetti e non per altri. La keyword no può essere usata davanti a scrub per specificare i pacchetti che non dovranno essere sottoposti allo scrub. Proprio come per le regole di nat rules, la prima regola che ha una corrispondenza "vince".

Maggiori principi e concetti relativi allo scrubbing si possono trovare nei documenti Network Intrusion Detection: Evasion, Traffic Normalization, and End-to-End Protocol Semantics.

Opzioni

Lo scrub ha le seguenti opzioni:
no-df
Cancella i bit non frammentare dall'header del pacchetto IP. Alcuni sistemi operativi sono noti per generare pacchetti frammentati con il bit non frammentare settato. Questo vale in modo particolare per l'NFS. Se non si specificasse l'opzione no-df, scrub getterebbe via questi tipi di pacchetti. Siccome alcuni sistemi operativi generano pacchetti non frammentare con zero nel campo dell'header identificazione IP, si raccomanda di utilizzare no-df insieme all'opzione random-id.
random-id
Nel caso di sistemi operativi poco sicuri in termini di predizione di alcune variabili, l'opzione random-id sostituisce il campo identificazione IP dei pacchetti in uscita con un valore random. Si applica solo a pacchetti in uscita non frammentati dopo l'eventuale packet reassembly.
min-ttl num
Rafforza un minimo Time To Live (TTL) negli header dei pacchetti IP.
max-mss num
Rafforza un massimo Maximum Segment Size (MSS) negli header dei pacchetti TCP.
fragment reassemble
Effettua il buffer di frammenti di pacchetto e li riassembla prima dell'operazione di filtraggio. Il vantaggio è che il filtro ha a che fare solo con pacchetti completi e può ignorare i frammenti. Lo svantaggio è l'incremento di memoria necessario per il buffer dei pacchetti frammentati. Questo è il comportamento di default quando non è specificata l'opzione fragment. Questa è anche l'unica opzione fragment che funziona con la NAT.
fragment crop
Getta via i frammenti duplicati e ripulisce ogni sovrapposizione. A differenza di fragment reassemble, i frammenti non sono bufferizzati ma vengono processati non appena arrivano.
fragment drop-ovl
Simile a fragment crop eccetto che tutti i frammenti duplicati o sovrapposti saranno gettati insieme a tutti i frammenti simili successivi.
reassemble tcp
Le connessioni statefully sono per loro natura normalizzate. Quando si utilizza scrub reassemble tcp, può non essere specificata una direzione (in/out). Sono eseguite le seguenti normalizzazioni:

Esempi:

scrub in on fxp0 all fragment reassemble min-ttl 15 max-mss 1400
scrub in on fxp0 all no-df
scrub    on fxp0 all reassemble tcp

[Precedente: Opzioni Runtime] [Indice] [Successivo: Ancore]


[back] www@openbsd.org
$OpenBSD: scrub.html,v 1.4 2008/02/22 10:12:26 tobias Exp $