PfSense 2.3.1_1 Port Forwarding (Nat + Proxy)
-
Hallo zusammen,
ich probiere nun schon einige Zeit ein Port Forwarding mit (Nat + Proxy) einzurichten. Wenn ich es richtig verstanden habe, sollte doch folgendes dabei passieren: wenn das WAN Interface auf dem entsprechenden Port angesprochen wird sollte ein redirect an den angegeben Host im Lan stattfinden. Das funktioniert soweit auch. Desweiteren sollte doch aber auch die Absenderadresse des Pakets auf die LAN Adresse der Firewall gesetzt werden? Ansonsten wäre es ja nur pure NAT.
Habe ich die Funktion falsch interpretiert oder gibt es da einen Bug bei PfSense?Vorstellung:
Paket Absenderadresse(192.168.178.3) Zieladresse (192.168.178.1)Port(8080) –> Pfsense WAN(192.168.178.1){redirect} LAN(192.168.1.1) --> Paket Absenderadresse(192.168.1.1) Zieladresse (192.168.1.11)Port(8080) --> Zielrechner(192.168.1.11:8080Was bis jetzt passiert:
Paket Absenderadresse(192.168.178.3) Zieladresse (192.168.178.1)Port(8080) --> Pfsense WAN(192.168.178.1){redirect} LAN(192.168.1.1) --> Paket Absenderadresse(192.168.178.3) Zieladresse (192.168.1.11)Port(8080) --> Zielrechner(192.168.1.11:8080 -
ich probiere nun schon einige Zeit ein Port Forwarding mit (Nat + Proxy) einzurichten. Wenn ich es richtig verstanden habe, sollte doch folgendes dabei passieren: wenn das WAN Interface auf dem entsprechenden Port angesprochen wird sollte ein redirect an den angegeben Host im Lan stattfinden. Das funktioniert soweit auch. Desweiteren sollte doch aber auch die Absenderadresse des Pakets auf die LAN Adresse der Firewall gesetzt werden? Ansonsten wäre es ja nur pure NAT.
Nein, so ist das nicht. Die Einstellung "NAT + Proxy" bezieht sich auf NAT Reflection.
NAT Reflection bedeutet, man richtet eine NAT forwarding Regel für eine WAN Adresse auf eine interne Hostadresse ein, also wie in deinem Fall WAN-Adresse 192.168.178.1:8080 => Zielrechner 192.168.1.11:8080, und pfSense 'reflektiert' diese NAT Regel auch an die internen Interfaces, so dass man durch Aufruf von 192.168.178.1:8080 aus einem internen Netz auch auf 192.168.1.11:8080 weitergeleitet wird, obwohl ein Aufruf der WAN-Adresse standardmäßig nicht möglich ist.Was du suchst, ist die Outbound NAT Funktion in pfSense (Firewall > NAT > Outbound).
Hier kannst du Regeln erstellen, die die Absenderadresse von einer bestimmten Quelle, mit einem bestimmten Ziel auf eine bestimmte Adresse (meist Interface-IP) übersetzt. Diese Regeln werden immer für das Interface erstellt, an dem das zu übersetzende Paket die pfSense verlässt, daher outbound NAT. -
Desweiteren sollte doch aber auch die Absenderadresse des Pakets auf die LAN Adresse der Firewall gesetzt werden?
Beim Eingehenden Paket? Dann hättest du das Paket tatsächlich "intercepted" wie ein Proxy. Warum das so nicht ist, hat virago schon sehr detailliert erklärt (weil das mit NAT nichts zu tun hat). Wenn du das Paket tatsächlich abfangen und neu an den Host dahinter weitergeben willst, dann muss das über einen echten Proxy passieren (Squid, Haproxy etc.) und nicht via NAT, das sitzt einfach auf der ISO Schicht an der falschen Stelle ;)
-
Hallo, danke für eure Antworten. Ja so macht das Verhalten natürlich einen Sinn. Ich dachte es wäre ähnlich wie bei CompuWall, dort lassen sich sich Firewallregeln mit einem echten Proxy koppeln. Ich dachte die selbe Option gibt es auch bei Pfsense.
-
Einfach so "gekoppelt" wird bei der pfSense nichts, wenn du einen Proxy nutzen willst, musst du den auch einrichten. "Prinzip der geringsten Überraschung" vs "Dark Magic" (TM) ;)