Fragen zu pf

IcedEarth

Member
Hallo,

bin neu hier im Forum und hätte ein paar Fragen zum "pf" Packet Filter unter BSD. Google konnte meine Fragen leider nicht komplett beantworten, daher suche ich hier Rat.

1. Standardmäßig blockt PF alle Pakete, die IP-Optionen haben. Wie sieht das mit TCP Optionen aus? Kann ich danach auch filtern bzw. wenn diese gesetzt sein sollten löschen?
2. Angenommen PC1 pusht Daten an PC2 über pf. Beide PC's befinden sich dabei in unterschiedlichen Netzen und der pf agiert als Gateway für beide.
Kann ich Pakete von PC2 an PC1 dahingehend überprüfen, dass ausschließlich ACK's an PC1 gesendet werden dürfen? Weder TCP Payload, noch TCP Optionen oder andere Dinge aus dem TCP-Header sind erlaubt, die für eine erfolgreiche Paket Quitterung NICHT notwendig sind. Ich möchte also nur, das Paket Quittungen (ACK's) an PC1 geschickt werden dürfen. Der Rest wird gedroppt. (SYN/ACK für den Handshake bzw. RST oder FIN sind noch erlaubt...)
3. Mit dem Befehl scrub, habe ich die Möglichkeit den Datenstrom zu normalisieren. Arbeitet scrub auf Schicht 3 und auf Schicht 4? Also normalisiert scrub sowohl IP, wie auch TCP? Inwieweit gehen da meine Eingriffmöglichkeiten? Kann ich zb. auch TCP Sequenznummern normalisieren?

Das reicht erstmal... ;)

Kann mir da jemand helfen?

Gruß Iced
 
Erstmal danke für den Link.

Gleich mal eine Frage: Es geht mir lediglich um die Funktionalität von pf, da sollte doch OpenBSD zu FreeBSD in der Implementierung bzw. in der Version keine Unterschiede haben, oder?

Beim Link hab ich gesehen, dass ich nach TCP Flags filtern kann, TCP Optionen sind aber die optionalen Felder darunter im TCP-Header.

Indirekt beantwortet das nur meine zweite Frage, wenn auch nicht komplett. ;)

TCP-Header: http://de.wikipedia.org/w/index.php?title=Datei:TCP_Header.svg&filetimestamp=20070706210301
 
Gleich mal eine Frage: Es geht mir lediglich um die Funktionalität von pf, da sollte doch OpenBSD zu FreeBSD in der Implementierung bzw. in der Version keine Unterschiede haben, oder?

Doch. pf kommt von OpenBSD und wird dort auch staendig beackert. Wenn Du das, was unter FreeBSD `pf' genannt wird, benutzt, dann solltest Du Dich ausschliesslich auf die FreeBSD-Doku dazu verlassen.
 
pf von OpenBSD auf FreeBSD zu portieren ist sehr schwer. Ein Knochenjob sozusagen. FreeBSDs Version ist nun gute zwei Jahre alt, es ist unwahrscheinlich, dass es in nächster Zeit ein großes Update geben wird. Vielleicht zu 9.0 hin, um mal zu spekulieren, aber das dauert noch. Insofern bezieht sich OpenBSDs FAQ auf eine Version, die unter FreeBSD noch längst nicht das Licht erblickt hat. Wenn du also pf in ganzer Schönheit ausprobieren willst, wäre es vielleicht sinnvoll dafür ein OpenBSD zu installieren.
 
Nur so als Anmerkung, selbst die alte FreeBSD Version von PF ist angenehmer als jede andere Firewall die mir jemals untergekommen ist.
 
Falls es jemanden interessiert:

Punkt 1 und Punkt 2 konnte ich mit iptables lösen.

Das bietet wiederum aber nicht Punkt 3. iptables kann kein "scrubbing" und auch die Syntax ist bescheiden...
 
Ich meine damit scrub überhaupt irgendwie sinnvoll funktionieren kann muss das ja auf Ebene 4 hoch gehen. Sonst würde doch die Software auf de oberen Ebenen damit gar nicht klar kommen.
 
Back
Top