Firewall Regeln - Verständnis Problem - VLANs
-
Hi Leute….
Ich habe nen kleines Problem, was die Firewallregeln und Bezeichnung der Netze bei der pfSense angeht.
Wir haben hier ein kleines Testnetzwerk mit 5 VLANs aufgebaut.
Dieses ist halt wirklich nur nen kleiner Test. Das spätere Endresultat beherbergt ca. 200 VLANs.VLAN10 Admin Netz
VLAN20 Client Netz
VLAN30 Server
VLAN40 NetzwerkManagment
VLAN50 Server ManagementFolgendes soll realisiert werden:
VLAN 10 -> Darf alles (Kein Problem)
VLAN 20 -> Darf ins Internet und Zugriff auf VLAN30
VLAN 30 -> Darf ins Internet(BEstimmte Ports)
VLAN 40 -> Darf nichts
VLAN 50 -> Darf nichts.Das Problem auf das ich gestoßen bin ist nun folgendes:
Ich bin davon ausgegangen, das "WAN net" das Internet darstellt und "Any" einfach alles bedeutet.
Das ist aber leider Falsch.... "WAN net" ist das Subnetz was am WAN interface anliegt und Any quasi alles + Internet.Um das VLAN20 nun ins Internet zu bewegen, muss ich "ANY" eintragen.
Hierdurch bekommt das VLAN 20 ja auch zugriff auf die anderen VLANs.Gibt es eine Möglichkeit das ganze zu unterbinden ohne vorher entsprechende Blockregeln zu setzen?
Für das kleine Testnetz, ist das einfügen der Zusätzlichen Blockregeln kein Problem.
Aber später für den Produktivbetrieb wäre es ein riesen Overhead für jedes VLAN die entsprechenden Regeln zu pflegen.Gäbe es jemanden mit einer Zündenden Idee?
Viele Grüße,
Matthias
-
Servus
Hier ein grobes Beispiel wie es funktionieren würde.
An dem WAN Interface musst du nix eintragen, zumindest solange du kein Zugriff vom Internet auf irgendein LAN Netz benötigst. (Portforwarding)Alles andere wird auf den LAN Interfaces eingestellt. Eine "Deny Any Any" Regel wird nicht benöigt, da die per Default am Schluss an das Regelwerk bzw. ACL angehangen wird. (Nicht Sichtbar)
Es sei denn du willst diese Verbote nicht im Log sehen, dann kannst du eine "Deny Any Any" Regel ohne Log erstellen.
Das "Nicht Loggen" geht aber auch Global für jedes Interface unter Logging.Ich hoffe, ich konnte dir damit weiterhelfen…
Int Vlan10(LAN):
Rule/Prio 1: Allow any any
Int Vlan20(OPT1):
Rule/Prio 1 Block "Vlan20net" > "ForbiddenNetwork1"
Rule/Prio 2 Allow "Vlan20net" > anyInt Vlan30(OPT2):
Rule/Prio 1 Block "Vlan30net" > "ForbiddenPrivateNetwork"
Rule/Prio 2 Allow "Vlan30net" > any : <bestimmte ports="">Int Vlan40(OPT3) und 50(OPT4)
Muss man nix eintragen, da per Default alles ausgehend geblockt ist.Alias "ForbiddenNetwork1":
"Vlan10net", "Vlan40net", "Vlan50net"Alias "ForbiddenPrivateNetwork":
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16</bestimmte> -
Da würde ich rubinho ein klein wenig widersprechen, denn das wird nach der Frage von Matthias zu komplex zu pflegen (gerade das ForbiddenNetwork1).
Wenn ihr VLANs definiert: wie habt ihr die IP Netze dazugelegt? Im Normalfall würde ich vermuten, dass man sich dann ein 10er oder 172er Bereich vornimmt und die VLANs da reinmatcht.
Beispiel:
VLAN 10 -> 10.0.10.0/24
VLAN 20 -> 10.0.20.0/24
VLAN 120 -> 10.0.120.0/24
etcDamit hätte man recht einfach ein Alias "N_AllVLANs" welches man schlicht auf Network 10.0.0.0/8 setzen kann.
Das hätte zur Folge, dass dein Regelset recht einfach wäre:
VLAN 10 -> Darf alles (Kein Problem)
Any RegelVLAN 20 -> Darf ins Internet und Zugriff auf VLAN30
Allow from VLAN20_net to VLAN30_net # erlaube VLAN30
Block from VLAN20_net to N_AllVLANs # alle anderen VLANs blocken, dass hier VLAN30 enthalten ist, ist egal, da es obendrüber explizit erlaubt wird
Allow from VLAN20_net to any # danach erlaube das InternetVLAN 30 -> Darf ins Internet(BEstimmte Ports)
Block from VLAN30_net to N_AllVLANs # alle VLANs blocken
Allow from VLAN30_net to any Port P_VLAN30Ports # danach erlaube das Internet mit entsprechenden PortsVLAN 40 -> Darf nichts
Nichts eintragen -> alles wird geblockt (nur warum liegt das Netz dann überhaupt auf der Firewall/Gateway System auf? dann braucht es ja auch kein Gateway wenn eh nichts erlaubt ist?)VLAN 50 -> Darf nichts.
dito obenSo sollte sich das sehr einfach handeln lassen und auch bei mehr VLANs muss das Alias "N_AllVLANs" nicht angepasst werden, da es "gierig" genug konfiguriert ist auch zukünftige Netze zu blocken. Somit muss bei einem neuen VLAN nur noch die Block Regel für die anderen VLANs und ein Allow für das was es darf konfiguriert werden und das hängt ja vom Einzelfall ab.
Grüße
Jens -
Wo du Recht hast, hast du Recht ;)
Wenn die Anzahl der verbotenen Vlans größer wird, wird der administrative Aufwand bei meinem groben Beispiel natürlich unötig groß.
Solange die Anzahl der erlaubten Vlans geringer ist als die der Verbotenen (Davon gehen wir mal aus) ist es besser alle privaten Netzranges zu blocken und die anderen explizit zu erlauben.
Also ein Alias "AllowedPrivateNetwork_vlan20" (wenn es mehr als ein Netz sein wird) wo alle erlaubten Netwerke für das Vlan 20 reinkommen und ein ForbiddenPrivateNetworks" wo generell alle Privaten Ranges geblockt werden.
Die Logik der Pfsense sollte aber somit grundsätzlich erklärt sein. Alles Weitere ist feintuning.
-
Da stimme ich natürlich zu ;)
-
Man konnte vielleicht auch alle nicht-erlaubte VLANs in ein Alias aufnehmen, mit NOT in die Regeln(?)
-
@Mr Jingles: Richtig, aber dann muss jedes neu angelegte VLAN da mit hinein. Geht natürlich auch, ist aber ein Handgriff mehr. Wenn aber alle Netze aus bpw. dem 10/8er Segment rausgeschnitten werden, kann man auch gleich 10/8 blocken und als !(not) mit in die Regel aufnehmen.
Also als Destination nicht (any), sondern !Net_alias erlauben, damit könnte man evtl. die vorherige Blockregel sogar einsparen.
Danke für den Hinweis :)
-
Es sei denn du willst diese Verbote nicht im Log sehen, dann kannst du eine "Deny Any Any" Regel ohne Log erstellen.
Das "Nicht Loggen" geht aber auch Global für jedes Interface unter Logging.Das lässt sich auch in den Log-Settings einstellen.
-
Das steht doch schon in meinem von dir zitierten Text mit drin, dass man das Logging global einstellen kann.
Ich habs z.b. generell abgeschaltet und logge mit einer "Deny any any log" Regel zu Diagnostik Gründen auf einem bestimmten IF.