buebo
Well-Known Member
Moin,
ich bin gerade dabei meinen Router einzurichten und habe damit zum ersten mal mit pf zu tun, wenn jemand an den Regeln etwas auffällt mag er sich bitte melden.
Meine Anforderungen sind folgende:
Zwei Interne Subnets, bestehend aus einem "grünen" Netz in dem keine Services Angeboten werden und einer DMZ in der ein Apache, ein Donkey und so das Übliche läuft, die ganze DMZ besteht in dem Fall aus einem Server.
Die Rechner im grünen Netz sollen dabei auf die DMZ zugreifen und ins Internet dürfen ausserdem soll ihnen ssh auf den Router erlaubt werden.
Die DMZ soll nicht ins interne Netz dürfen, aber ins Internet, ssh auf den Router soll von der DMZ aus auch verboten sein.
Aufgebaut ist der Regelsatz im Wesentlichen auf der OpenBSD als Router Anleitung und dem Artikel "Securing Small Networks with OpenBSD Part 3.
Soweit der Vorrede, hier die Regeln:
Bis jetzt habe ich die Regeln noch nicht im Einsatz, da ich erst mal die Meinung der Damen und Heren Experten einholen wollte.
Schreibfehler stehen unter der BSD-License und dürfen mit nach Hause genommen werden (sehr zutraulich die Kleinen)
Ein Herzliches Dankeschön an alle die sich hier durch wühlen!
buebo
ich bin gerade dabei meinen Router einzurichten und habe damit zum ersten mal mit pf zu tun, wenn jemand an den Regeln etwas auffällt mag er sich bitte melden.
Meine Anforderungen sind folgende:
Zwei Interne Subnets, bestehend aus einem "grünen" Netz in dem keine Services Angeboten werden und einer DMZ in der ein Apache, ein Donkey und so das Übliche läuft, die ganze DMZ besteht in dem Fall aus einem Server.
Die Rechner im grünen Netz sollen dabei auf die DMZ zugreifen und ins Internet dürfen ausserdem soll ihnen ssh auf den Router erlaubt werden.
Die DMZ soll nicht ins interne Netz dürfen, aber ins Internet, ssh auf den Router soll von der DMZ aus auch verboten sein.
Aufgebaut ist der Regelsatz im Wesentlichen auf der OpenBSD als Router Anleitung und dem Artikel "Securing Small Networks with OpenBSD Part 3.
Soweit der Vorrede, hier die Regeln:
Code:
Ext = "tun0"
Int = "rl0"
DMZ = "dc0"
# Die Interfaces stimmen, da bin ich schon mal sicher ;-)
# rl0 hat die IP 192.168.0.1
# dc0 hat die IP 192.168.1.1
IntNet = "192.168.0.0/24"
RouterIP = "192.168.0.1"
Loop = "lo0"
DMZNet = "192.168.1.0/24"
NoRoute = "{ 127.0.0.1/8, 172.16.0.0/12, 10.0.0/8, 255.255.255.255/32 }"
AdminServices = " { ssh, auth } "
GoodServices = " { www, ftp } "
# Optionen
set loginteface { $Ext, $DMZ }
set optimization aggressive
scrub in on $Ext all fragment reassemble
#Frage: würde es etwas bringen hier auch noch $DMZ anzugeben?
# ich gehe eigentlich ja nich davon aus das auf dem Weg von $DMZ zu $Int was fragmentiert wird...
#NAT
nat on $Ext from { $IntNet, $DMZNet } to any -> $Ext static-port
#Redirections
#erstens der Esel:
rdr on $Ext proto tcp from any to any port 4661:4662 -> $DMZ port 4661:*
rdr on $Ext proto udp from any to any port 4665 -> $DMZ port 4665
rdr on $Ext proto udp from any to any port 4672 -> $DMZ port 4672
#Die andere Server
rdr on $Ext proto tcp from any to any port $GoodServices -> $DMZ
rdr-anchor redirect
#Regeln
block out on $Ext all
block in on $Ext all
block return-rst out log on $Ext proto tcp all
block return-rst in log on $Ext proto tcp all
block return-icmp out log on $Ext proto udp all
block return-icmp in log on $Ext proto udp all
pass in quick on Loop
pass out quick on Loop
block in log quick on $Ext inet proto tcp from any to any flags FUP/FUP
block in log quick on $Ext inet proto tcp from any to any flags SF/SFRA
block in log quick on $Ext inet proto tcp from any to any flags /SFRA
block in log quick on $Ext inet from $NoRoute to any
block in log quick on $Ext inet from any to $NoRoute
pass in quick on $Ext inet proto icmp all icmp-type 8 code 0 keep state
pass in quick on $Ext inet proto tcp from any to any port { $AdminServices, $GoodServices } flags S/SAFR keep state label Services
# Was heisst denn das Flag eigentlich (Die Regel stammt aus dem HowTo)?
# Hier versuche ich die DMZ daran zu hindern ins interne Netz zu kommen,
#während das Interne Netz ohne Probs in die DMZ rein darf
pass in quick on $DMZ from $IntNet to $DMZNet keep state
block in log quick on $DMZ from $DMZNet to $IntNet
block in log quick on $DMZ from $DMZNet to $RouterIP
anchor passin #falls mir später noch was einfällt ;-)
pass out quick on $Ext all keep state
Bis jetzt habe ich die Regeln noch nicht im Einsatz, da ich erst mal die Meinung der Damen und Heren Experten einholen wollte.
Schreibfehler stehen unter der BSD-License und dürfen mit nach Hause genommen werden (sehr zutraulich die Kleinen)
Ein Herzliches Dankeschön an alle die sich hier durch wühlen!
buebo