PF - Pass-Regeln

zanubi

Member
Hi all,

ich versuche gerade einen eigenen Server als OpenBSD-Firewall abzustellen. Im Moment habe ich jedoch enorme Probleme mit der Konfiguration von pf, vor allem mit den pass-Regeln.

Mein Ziel ist es, dass die internen Clients mit den IPs 192.168.1.30; 192.168.1.31; 192.168.1.32 ... mit der Subnetzmaske 255.255.255.0 durch die Firewall über einen Proxy mit der IP 192.168.1.2 Zugang zum Internet bekommen. Die Firewall soll Kontakt nach Außen nur über Port 3128 erlauben, sprich nur der Proxy soll erreichbar sein. Vielleicht kann man das sogar so konfigurieren, dass nur Kontakt zum Proxy aufgenommen werden kann? Im selben Netz, wie die internen Clients steht auch noch ein Server. Dieser sollte den SMTP und HTTP-Port nach außen forwarden.

Ich habe schon ein paar Konfigurationsdatein geschreiben, habe dieses Ergebnis allerdings noch nie erreicht? Könntet ihr mir da beim Schreiben helfen? Solltet ihr Vorschläge, vor allem für die pass-Sektion haben, bitte, sofort her damit.

Danke bereits fürs lesen.
 
meinst du sowas?
Code:
extif="rl0"
intif="rl1"

# tables
table <legal> { 192.168.1.30, 192.168.1.31, 192.168.1.32,... }

# options nat usw lass ich mal weg.. 
#[...]

#filter
block in all

pass in on $intif inet proto { tcp udp icmp } \
to any port 3128
is natürlich nur grob....
deine pf.conf wäre allerdings wirklich hilfreich

Lg
f0x
 
Es tut mir leid, dass ich mich solange nicht gemeldet habe, unser ISP macht gerade ein paar Probleme.

Also nun zu meiner pf.conf. Die traue ich mich fast gar nicht herzuzeigen:

Code:
block in log  all
block out all

intinf= em0
extinf= em1


rdr on $extif proto tcp from any to $intif port www -> 192.168.1.22


block returnlog on $extinf
block in log quick on $extinf inet proto tcp from any to any flags FUP/FUP 
block in log quick on $extinf inet proto tcp from any to any flags SF/SFRA 
block in log quick on $extinf inet proto tcp from any to any flags /SFRA 
block in log quick on $extinf os NMAP 

antispoof for $extinf
antispoof for $intif

match in all scrub (no-df random-id)




pass in on $intinf proto tcp from 192.168.1.2 to any port 3128
pass out on $intinf proto tcp from any to 192.168.1.2 port www

pass proto tcp from any to 192.168.1.22 port ww flags S/SA synproxy state

Und noch ein Bild der Netzwerkstruktur. Alles ist im selben Subnetz: 255.255.255.0
http://sga-rpg.creshal.de/plan.jpg

Die Logs kann ich gar nicht betrachten. Nicht einmal mit tcpdump. Und nmap gibt mir auf der Clientseite keinen offen Port außer SSH an ...
 
Zuletzt bearbeitet:
...Ich habe Bedenken, dass das mit dem Routing überhaupt funktionieren kann. Wie soll den der Proxy die Arp-Einträge erfahren, von den Rechnern, die hiner zwei Firewall sind, wenn alle Rechner im gleichen Netz sind?
 
...Ich habe Bedenken, dass das mit dem Routing überhaupt funktionieren kann. Wie soll den der Proxy die Arp-Einträge erfahren, von den Rechnern, die hiner zwei Firewall sind, wenn alle Rechner im gleichen Netz sind?

Genauso habe ich mir das vorgestellt ...

Ein "Experte" hat mir aber versichert es sollte keine Probleme mit dem Konzept geben. Und das mit den Adressen funktioniert schon so... Perfekt ..

Wie könnte man denn das jetzt lösen? Könnte ich einfach das Netz in dem der Proxy ist und das reine VPN Netz, also das zwischen den Firewalls in ein jeweils eigenes Netz schmeißen? Könnte ich das damit lösen?
 
Im selben Netz, wie die internen Clients steht auch noch ein Server
steht ja irgendwie alles in einem netz...
Ein "Experte" hat mir aber versichert es sollte keine Probleme mit dem Konzept geben. Und das mit den Adressen funktioniert schon so

gehen müsste das schon, scheint aber nicht so sinnvoll und bringt nicht wirklich was

das reine VPN Netz
welches meinst du?(wie gesagt, gibt ja eigentlich nur eines)

was hat denn die hw firewall für ne aufgabe?

ich würde die rausschmeissen und den proxy an ein 3. interface von obsd hängen und
die subnezte weiter unterteilen. (Ich weiss nämlich nicht wie gut der routingdaemon es verkraftet wenn an allen interfaces das selbe netz ist, und wie er da traffic verteilt,
oder ob man da was auf bridge schalten muss)

machs dir leicht und richte den proxy ganz standardmäßig ein, das sollte genug sicherheit gewähren.
Allemal mehr als ein konzept das man nicht versteht.
 
was hat denn die hw firewall für ne aufgabe?

Über die Firewall können Ports des Servers geforwardet werden. Und nur diese können dann via VPN über die HW-Firewall erreicht werden. Ich will nicht alle Dienste übers VPN erreichbar haben. Eigentlich nur SMTP, HTTP und Web-DAV. Die HW-Firewall hat keinen DMZ Port und eine Neue ist aus finanziellen Gründen derzeit nicht drin. Selbiges gilt für die andere Firewall.

ich würde die rausschmeissen und den proxy an ein 3. interface von obsd hängen und
die subnezte weiter unterteilen. (Ich weiss nämlich nicht wie gut der routingdaemon es verkraftet wenn an allen interfaces das selbe netz ist, und wie er da traffic verteilt,
oder ob man da was auf bridge schalten muss)

Siehe oben. Nebenbei handelt es sich hier um wirklich kritische Daten. Die würde ich so gut wie möglich sichern. Internetzugang (www) soll ja auch nur über den Proxy laufen. Andere Internetdienste(exotische Ports, Jabber etc.) sollen von den Clients gar nicht erreicht werden. [/QUOTE]

machs dir leicht und richte den proxy ganz standardmäßig ein, das sollte genug sicherheit gewähren.
Allemal mehr als ein konzept das man nicht versteht.
Squid erscheint mir als Firewall ein bisschen unsicher, wenn es um kritische Daten geht. Darum verwende ich ja auch ein reines OpenBSD-System (+Snort).
Nebenbei sehe ich das Konzept mit der Verwendung zweier verschiedener Firewallsystemen doch als sicherer an und es hat meines Erachtens auch eine Existenzberechtigung.
 
ich bin überfordert, weiß gar nicht mehr was du willst und wie wo welcher rechner steht...

wie wäre es, das ganze etwas zu vereinfachen?
 
sqid ist keine firewall, und dein vpn ist kein vpn
(jedenfalls sehe ich nicht zwischen welchen rechnern das sein soll, ist etwas verwirrend)
 
Schaue Dir mal:
http://de.wikipedia.org/wiki/Routingtabelle an.

Nach diesem Prizip muss dein Netzwerk aufgebaut sein.

Dann unterteilst Du Dein Netzwerk in Zonen:

- eine für den Proxy und externen Router zum Internetz und äußere Bein zyxel
- eine Transferzone zwischen den firewalls
- eine Zone für das Intranetz

Den Bedarf kannst Du mit z.B. http://jodies.de/ipcalc?host=192.168.1.1&mask1=29 errechnen.
Dort steht auch welche Subnetmask Du verwenden mußt. Dann kannst Du ein Netz von aussen nach innen aufbauen.

Nebenbei in der Informatik fängt man bei Null an zu zählen...
z.B.
192.168.0.1 für das interne Beinchen des Routers Deines ISP.
192.168.0.2 für das extene Beinchen der Zyxel
192.168.0.3 für den Squid.

Und so weiter.
Der Squid muss natürlich das Defaultgateway 192.168.0.1 haben und das Intranetz über statische Routingeinträge hinter 192.168.0.2 "wissen".

Der Router Deines ISP muss natürlich auch das interne Netz hinter der 192.168.0.2 "wissen".

Und so weiter. Wenn Du Dein Routing i.O. hast machen wir mit den pf-Regeln weiter...
 
Zuletzt bearbeitet:
Man könnte das Netzdesign durchaus so stehen lassen, wenn der Zyxel sowie der PF-Rechner im Bridging-Modus arbeiten. Aufgrund deines Eingangsposts vermute ich aber, dass du in dem Bereich null Erfahrung hast und würde dir empfehlen den Rat von *Sheep anzunehmen und dich als erstes mal ein wenig ins Thema Subnetting und Routing einzulesen.

MfG
morph
 
Hoi,

welchen Zweck verfolgt Du mit den zwei Firewall hintereinander ? - das wär mal wichtig zu klären bevor wir übär Lösungen nachdenken. Grundsätzlich könnte man die zwei privaten Teilnetze oifach splitten und routen. Solang nicht klar ist warum Du da zwei Firewalls hast macht es aber wenig Sinn darüber nachzudenken was so alles denkbar ist.

Gruß Bummibaer
 
Zurück
Oben