• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

pf rdr IP Adressen ausschließen?

minimike

Berufsrevolutionär
Themenstarter #1
Hi

Ich habe einen transparrent Proxy aufgesetzt

Code:
rdr pass inet proto tcp from {(bridge0:network)} to any port {80} -> 127.0.0.1 port 3128
rdr pass inet proto tcp from {(bridge0:network)} to any port {443} -> 127.0.0.1 port 3129
Kann ich da einzelne IP Adressen ausschliessen?
Entweder bekomme ich bei meinen Versuchen Syntaxfehler oder es funktioniert nicht. Wenn es geht wie wäre die korrekte Syntax?
 

minimike

Berufsrevolutionär
Themenstarter #2
Hi

damit geht es. Traffic geht sofern nicht auf die IP 172.24.239.1 dann auf 127.0.0.1 port 3128.
Code:
rdr pass inet proto tcp from {(bridge0:network)} to {!172.24.239.1/32, any} port {80} -> 127.0.0.1 port 3128
rdr pass inet proto tcp from {(bridge0:network)} to {!172.24.239.1/32, any} port {443} -> 127.0.0.1 port 3129
Anscheinend ist die Reihenfolge wichtig. {any, !172.24.239.1/32} geht nicht. Ich dachte das wäre egal?
 
#6
hi
alternativ kannst du auch einfach 172.24.239.2-172.24.239.254 schreiben
holger
Hmm, das verstehe ich nun überhaupt nicht.
!172.24.239.1/32 heißt doch "Alle (ca. 4 Mrd) Adressen ausser 172.24.239.1.
172.24.239.2-172.24.239.254 meint einen Bereich von 253 Adressen. Das ist doch nicht dasselbe?

Ich hab aber aus diesem Anlass nochmal nachgedacht. Meine Anmerkung aus Post #4 führt auch nicht zum Ziel, da dann das "pass" für 172.24.239.1 fehlt und die Adresse dann ganz geblockt wird.

Richtig muss es also heissen:

rdr pass inet proto tcp from {(bridge0:network)} to any port {80} -> 127.0.0.1 port 3128
no rdr pass inet proto tcp from {(bridge0:network)} to 172.24.239.1/32 port {80}

Für 172.24.239.1/32 wird die 2. Regel ausgeführt und die enthält kein rdr.

-Heinrich
 

mapet

Active OpenBSD User
#7
Richtig muss es also heissen:

rdr pass inet proto tcp from {(bridge0:network)} to any port {80} -> 127.0.0.1 port 3128
no rdr pass inet proto tcp from {(bridge0:network)} to 172.24.239.1/32 port {80}

Für 172.24.239.1/32 wird die 2. Regel ausgeführt und die enthält kein rdr.

-Heinrich
minmike hat doch weiter oben geschrieben, dass es genau so nicht geht? Bei rdr gilt first match wins und 172.24.239.1 ist in any enthalten.
 
#8
minmike hat doch weiter oben geschrieben, dass es genau so nicht geht? Bei rdr gilt first match wins und 172.24.239.1 ist in any enthalten.
Ok, sorry, ich nehm alles zurück :( Ich hatte first match wins bei rdr vergessen. Ich arbeite eigentlich nur noch mit dem OpenBSD packet filter und bin mit dem FreeBSD pf nicht mehr so vertraut. Werd mich jetzt lieber zurückhalten..

-Heinrich