[OpenBSD]

[Zurück: Laufzeit-Optionen] [Inhalt] [Weiter: Anker]

PF: Scrub (Paket-Normalisierung)


Inhaltsverzeichnis


Einführung

,Scrubbing' ist die Normalisierung von Paketen, sodass keine Zweideutigkeiten bei der Interpretation bei dem ultimativen Ziel der Pakete entstehen. Die scrub-Direktive setzt fragmentierte Pakete ebenfalls wieder zusammen, schützt einige Betriebssysteme vor einigen Formen von Attacken und lässt TCP-Pakete fallen, die eine ungültige Flag-Kombination haben. Eine einfache Form einer scrub-Direktive:
scrub in all

Dies wird ,scrub' auf alle eingehenden Pakete auf allen Interfaces anwenden.

Ein Grund, auf einem Interface ,scrub' nicht auszuführen, ist, wenn man NFS durch PF leitet. Einige Nicht-OpenBSD-Plattformen senden (und erwarten) seltsame Pakete - fragmentierte Pakete, die das ,nicht fragmentieren'-Bit gesetzt haben, welche (ordnungsgemäß) von scrub abgelehnt werden. Dies kann mit der Verwendung der no-df-Option gelöst werden. Ein anderer Grund ist, dass einige Multiplayer-Spiele Probleme mit Verbindungen haben, die durch PF mit aktivem scrub geleitet werden. Wenn man von diesen etwas ungewöhnlichen Fällen absieht, ist es dringend empfohlene Praxis, ,scrub' auf alle Pakete anzuwenden.

Die Syntax der scrub-Direktive ist der Filter-Syntax sehr ähnlich, was es sehr einfach macht, bestimmte Pakete auszuwählen, auf die ,scrub' angewendet werden soll und auf welche nicht. Das no-Schlüsselwort kann vor scrub benutzt werden, um bestimmte Pakete dem ,scrub' nicht zu unterziehen. So wie es bei nat-Regeln auch der Fall ist, gewinnt die erste zutreffende Regel.

Mehr zu den Prinzipien und Konzepten vom ,scrubbing' kann in den Network Intrusion Detection: Evasion, Traffic Normalization, and End-to-End Protocol Semantics-Unterlagen gefunden werden.

Optionen

Scrub hat die folgenden Optionen:
no-df
Entfernt das nicht fragmentieren-Bit vom IP-Paket-Header. Von einigen Betriebssystemen ist bekannt, dass sie fragmentierte Pakete mit gesetztem nicht fragmentieren-Bit generieren. Dies gilt insbesondere bei der Verwendung von NFS. Scrub wird solche Pakete fallenlassen, außer die no-df-Option wurde angegeben. Weil einige Betriebssysteme nicht fragmentieren-Pakete mit einem leeren IP-identification-Header-Feld senden, wird das Verwenden von no-df in Verbindung mit random-id empfohlen.
random-id
Ersetzt das IP-identification-Feld von Paketen mit zufälligen Werten, um Betriebssysteme auszugleichen, die vorhersehbare Werte verwenden. Diese Option gilt nur für Pakete, die nach dem optionalen Zusammensetzen der Pakete nicht fragmentiert sind.
min-ttl num
Erzwingt eine minimale Time To Live (TTL) in IP-Paket-Headern.
max-mss num
Erzwingt eine maximale Maximum Segment Size (MSS) in TCP-Paket-Headern.
fragment reassemble
Puffert eingehende Paketfragmente und setzt sie wieder in ein ganzes Paket um, bevor sie in die Filter-Engine gesendet werden. Der Vorteil ist, dass Filterregeln sich nur um komplette Pakete kümmern müssen und somit fragmentierte vernachlässigen können. Der Nachteil ist, dass mehr Speicher benötigt wird, um die Paketfragmente zwischenzuspeichern. Dies ist das standardmäßige Verhalten, wenn keine fragment-Option angegeben wurde. Dies ist ebenfalls die einzige fragment-Option, die mit NAT zusammen arbeitet.
fragment crop
Veranlasst doppelte Fragmente fallen zu lassen und überlappende abzuschneiden. Im Gegensatz zu fragment reassemble, werden Fragmente nicht zwischengespeichert sondern, sobald sie ankommen, durchgelassen.
fragment drop-ovl
fragment crop ähnlich, außer, dass doppelte und überlappende Fragmente genauso wie weiter-korrespondierende Fragmente fallengelassen werden.
reassemble tcp
normalisiert TCP-Verbindungen ,statefully'. Wenn scrub reassemble tcp verwendet wird, darf eine Richtung (rein/raus) nicht angegeben werden. Die folgenden Normalisierungen werden durchgeführt:

Beispiele:

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

[Zurück: Laufzeit-Optionen] [Inhalt] [Weiter: Anker]


[zurück] www@openbsd.org
$OpenBSD: scrub.html,v 1.15 2007/11/12 20:29:59 saad Exp $