pfSense (VM) hinter pfSense



  • Hallo zusammen!

    Bei mir läuft eine pfSense1 mit dem LAN-Netz (10.0.0.0/24).

    Eine weitere pfSense2 läuft als VM (ESXi) und erhält die IP 10.0.0.220 aus dem LAN. Diese wiederum stellt ein Netz (TESTLAN 10.0.77.0/24) zur Verfügung. Das funktioniert soweit, Clients die sich anmelden, erhalten eine IP aus dem Netz 10.0.77.0/24.

    Ich möchte, dass die Clients aus dem Netz 10.0.77.0/24 keinen Zugriff auf das LAN Netz haben (auch nicht pingen), nur auf das eigene Netz und das Internet. Im Prinzip soll die pfSense1 nur als Brücke zum Internet für die pfSense2 dienen. Das ganze dient als Testumgebung.

    Wie löse ich das?

    Besten Danke vorab!
    Thomas



  • Moin,

    Du brauchst dafür nur eine Regel im Netzwerk 10.0.77.0/24.

    Pass Any
    Source •
    Destination !10.0.0.0/24

    Damit kommst Du überall hin aber nicht in das 10.0.0.0/24 Netz.

    HornetX11



  • Danke! Klappt aber nicht, bzw. ich mach was falsch!

    Regel auf pfSense2:

    Schnittstelle TESTLAN

    0_1540643856710_rule.jpg



  • Protokoll auf any stellen, nicht TCP.
    Danach States Reset machen und nochmal testen.

    -Rico



  • Danke funktioniert!
    Wie kann ich den Zugriff auf ein weiteres Netz unterbinden, z. B. 10.8.0.0/24?



  • Selbe Regel nochmal mit Destination !10.8.0.0/24

    -Rico



  • Super! Danke für die schnelle Antwort!
    Eine Frage habe ich allerdings noch.
    Ich würde gerne aus dem Netz 10.0.0.0/24 auf das Netz 10.0.77.0/24 zugreifen, das geht zur Zeit nicht.



  • In der WAN Interface Konfiguration "Block private networks and loopback addresses" deaktivieren:
    0_1540654654822_1.png

    und entsprechende Firewall Regel für das WAN Interface anlegen:
    0_1540654684310_2.png

    -Rico



  • Sobald ich einen zweiten Eintrag mache, z. B. !10.8.0.0/24 kann ich 10.0.0.0/24 wieder erreichen?! Das sollte nicht so sein. Ich habe jetzt alle "gesperrten" Netzwerke zu einem Alias zusammengefasst, damit klappt es.

    Betreffend dem Zugriff von 10.0.0.0/24 auf 10.0.77.0/24 ...
    Ich habe die Regel im WAN IF von der pfSense2 eingefügt. Hat nicht funktioniert.

    0_1540666683338_rule4.jpg

    Gruß
    Thomas



  • Ja Denkfehler. ;-)
    Zwei Destination Invert Regeln mit der selben Source macht natürlich keinen Sinn, denn die Erste hebelt die Zweite aus die dann nie getroffen wird. Eine mögliche Lösung mit dem Alias hast du ja aber schon selbst gefunden. :-)

    Bzgl. Zugriff von 10.0.0.0/24 auf 10.0.77.0/24 wirst du auf der ersten pfSense noch eine static Route setzen müssen, damit die auch weiß wohin Pakete müssen die ins 10.0.77.0/24 Netz sollen.
    Sollte eigentlich gehen wenn du ein Gateway anlegst auf pfSense1 mit der IP von pfSense2 im 10.0.0.0/24 Netz und dann static Route auf pfSense1 Netz 10.0.77.0/24 auf das gerade angelegte Gateway.

    -Rico


  • Moderator

    @esquire1968-0

    Hi,

    mach es einfacher: Definiere ein Alias "RFC1918" und packe da alle privaten Netzbereiche rein:

    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16

    Dann aufbauen wie folgt:

    • erstelle eine Reject Regel auf LAN mit Source "LAN net" und Destination "RFC1918"
    • erstelle deine Pass any Regel (ohne das !<IPxy> einfach nur mit LAN net als Source)

    Jetzt sind auf dem LAN alle Zugriffe auf private IPs geblockt und NUR der Traffic an echte IPs (im Internet) ist erlaubt. Das blockt dir auch Netze die du sonst ggf. im 10er Bereich vor dem Testnetz noch benutzt.

    Zugriff vom "WAN" also eigentlich deinem normalen LAN ins TestLAN gehen nur, wenn du

    1. wie von @Rico beschrieben den Private Net Block auf dem WAN rausnimmst und
    2. dann eine Allow Regel baust mit source WAN net (sollte ja dein 10er Netz sein) auf LAN net.
    3. deiner pfSense1 (also deiner richtigen Firewall, nicht der VM!) eine Route beibringst, dass 10.0.77.0/24 (dein TestLAN) via 10.0.0.220 erreicht wird, denn deine LAN Clients können natürlich nix mit dem 77er Netz anfangen und schicken das dann ans Default Gateway, die pfSense 1 hoch.

    Gruß Jens



  • Vielen Dank! Passt perfekt!

    Einzig die Auflösung funktioniert nicht ganz:

    Als Client im Netz 10.0.0.0/24 kann ich auf die pfSense2 via 10.0.77.1 zugreifen, jedoch nicht via pfSense.test.net. Als Client im Netz 10.0.77.0/24 klappt das. Wie kann ich die Auflösung auch aus dem pfSense1 Netz ermöglichen?

    LG
    Thomas


  • Moderator

    gleiche Antwort Thomas: dein Client im Netz 1 wird die Sense aus Netz 1 Fragen, die kennt den Namen nicht. Schreib ihn als Host Override in die dns resolver Einstellung der Sense 1 rein mit der 10.0.0er Adresse, dann klappt's!

    BTW nimm als Testdomain lieber .test, also sowas wie net.test oder lab.test
    https://en.m.wikipedia.org/wiki/.test

    .test und .example sind ähnlich den Dokumentations IP4 oder IP6 ranges spezifiziert, dass sie nie vergeben werden dürfen und somit auch nie mit tatsächlichen IPs oder DNSen kollidieren. Sprich kannst du intern komplett nutzen wie "echt" ohne Probleme wie bspw damals AVM als .box plötzlich offizielles TLD wurde ;)



  • Nochmals danke!

    pfsense.test.net (=pfsense2) kann ich jetzt von jedem Client im Netz 10.0.0.0/24 erreichen. Andere Clients wie z. B. ap.test.net nicht (nur via die IP Adresse). Muss ich für jeden Client einen Override anlegen? Geht ja nicht, da ja nur die pfSense eine IP im 10.0.0.0/24 Netz hat.


  • Moderator

    OK wenn du test.net generell auf der zweiten Lab-VM-Sense verwalten willst (bzw. deren unbound die verwalten soll), dann kannst du statt eines Host Overrides von pfsense.test.net auf 10.0.0.220 lieber einen Domain Override von test.net auf 10.0.0.220 machen (musst dann aber sicherstellen, dass DNS, also udp/53 auf dem WAN der zweiten pfSense erlaubt ist sowie unbound auf alle Interfaces lauscht). Dann wird für xyz.test.net immer die zweite pfSense gefragt und diese sollte dann per DHCP und manuell vergebene host overrides im dortigen unbound dann alle Adressen parat haben.

    Würde trotzdem eher lab.test oder test.example nehmen ;)

    Gruß



  • Klappt nicht! Wenn ich "Domain Override: lab.test" statt "Host Override: pfSense.lab.test" aktiviere, wird kein Name im 10.0.77.0/24 Netz aufgelöst. Mit Host Override nur "pfSense.lab.test.
    (Ich habe die Test-Domain wie empfohlen geändert!)

    pfSense1
    0_1540934381140_pfSense1 Domain Override.jpg

    pfSense2
    0_1540934417635_pfSense2 Unbound.jpg

    Zugriff als Client aus 10.0.0.0/24 auf IP Adresse im Netz 10.0.77.0/24 funktioniert.



  • Hast du den DNS-Zugriff auf der 2. pfSense am WAN auch erlaubt?



  • Ich habe auf pfSense2/WAN alles aus 10.0.0.4/24 freigegeben.

    0_1541019805752_2018-10-31 22_02_20-pfSense.lab.test - Firewall_ Regeln_ TESTWAN.jpg


  • Moderator

    Dann mach mal einen kurzen Test von deinem Client (Windows? Linux?) und frage bspw. pfsense.lab.test direkt von der 10.0.0.220 an.

    Windows: > nslookup pfsense.lab.test 10.0.0.220
    Linux: > host pfsense.lab.test 10.0.0.220

    Dann siehst du ja ob du überhaupt eine Antwort bekommst :) Wenn nicht, muss man da an pfs2 oder den Regeln nochmal nachbohren.



  • Komm einfach nicht dahinter ...

    nslookup pfsense.lab.test 10.0.0.220
    0_1541180263231_dos.jpg

    nslookup 10.0.0.220
    0_1541180383174_dos2.jpg

    FW Rules pfSense2 WAN
    0_1541180585705_pfSense2WAN.jpg

    FW Rules pfSense2 LAN
    0_1541180598616_pfSense2LAN.jpg


  • Moderator

    Steht im oberen Lookup: query refused!

    Das heißt dein Unbound auf der zweiten Sense gibt keine Antwort. Unbound mit freigegebenen Netzen konfiguriert?
    DNS Resolver / Access List ein Netz (lokal) eingetragen?



  • Unter Access List auf pfSense2 ist nicht eingetragen!

    Resolver/pfSense2:

    0_1541183140350_resolver.jpg


  • Moderator

    Dann schau mal in die Resolver Logs ob da was zu sehen ist. Query refused kommt an der Stelle ja nicht von ungefähr :)

    Edit: Wenn in Access Lists nichts drin steht, trage mal die beiden Netze auf LAN und WAN testhalber ein :)



  • Ich habe mal beide Netze (10.0.0.0/24 und 10.0.77.0/24) in die Access List auf der pfSense2 eingetragen.
    0_1541183992702_access list.jpg

    nslookup pfsense.lab.test 10.0.0.220
    bringt jetzt folgendes Ergebnis
    0_1541184043908_dos4.jpg

    Das unbound-log zeigt keine Fehler.