Inbound NAT ohne Maskierung

Started by maraD, May 07, 2023, 04:15:12 PM

Previous topic - Next topic
Hallo Leute,

ich habe eine Frage zum Thema NAT. Habe dies auch schon paar Male benutzt konfiguration ist sehr simpel:

Quell Interface: WAN
IPversion: v4
Prot: TCP
Source: any
Source Port: any
Destination: WAN Adresse / Diese Firewall
Weiterleiten an DMZ Server: 10.20.1.10
Port Weiterleitung 80/443
Pool keine Option

Aufbau:

      WAN / Internet
            :
            : -
            :
      .-----+------.
     |  Gateway  |  (ISP-Router)
      '-----+------'
            |
        WAN | IP or Protocol
            |
      .-----+------.   private DMZ   .--------------.
      |OPNsense +-----------------+DMZ-Server |
      '-----+------'   172.20.0.1     '---------------'
            |
        LAN | 10.1.0.1/24
            |
      .-----+------.
      |LAN-Switch|
      '-----+------'
            |
    ...-----+------... (Clients/Servers)


In dieser Konfiguration sehe ich auf dem Webserver nur dass die Opensense 10.20.0.1 (DMZ Interface) auf mein Webserver zugreift.

Ich möchte gerne die Source IP auf dem Webserver sehen welche zugreifen sprich die WAN IP des Besuchers. ???

Wie lässt sich diese Konfiguration bewerkstelligen. (Ein Proxy wird nicht benötigt) Ist für mein Verständnis.  :D

Danke  ;)



Geht per IPv4 grundsätzlich nicht, weder mit NAT noch per Proxy.

Mit NAT findet, wie der Name schon sagt, eine Adressübersetzung statt. Mit einem Reverse Proxy könnte man zumindest einen HTTP-Header hinzufügen, den man auf dem Webserver auswerten kann. Die IP des "Absenders" ist aber in keinem Fall die wirkliche.

Was geht, ist IPv6. Dabei findet ja keine NAT statt.
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

Danke für den raschen Input.

Wie löse ich dann folgende Problematik hinter der Firewall ist eine WAF und hinter der WAF kommt der Webserver zum Einsatz.

Die WAF macht ihren Job und blockiert die IP des Angreifers erfolgreich, da die Absender IP immer die Firewall ist, wird schlussendlich jeder Traffic von der IP also die 10.20.1.1 geblockt für die eingestellte Zeit. Heisst jeder andere hat auch keinen Zugriff mehr. Es muss doch möglich sein die Maskierung aufzuheben sodass die Absender IP nicht das Firewall Interface ist.

Auf der WAF sollten die IP der Besucher terminieren.

(Ein Proxy auf der Opensense kann dies händeln da der Dienst diekt auf dem terminierenden Gerät läuft.)

Mache ich hier einen Denkfehler :-\ ?

Kannst du mal Screenshots deiner NAT Regeln posten? Bin der Meinung das sollte gehen, beim DNAT ist es eigentlihc nicht notwendig die Sourceadresse und -port anzufassen, und bin mir auch relativ sicher das in der Vergangenheit schon häufiger so mit OPNsense umgesetzt zu haben - hab allerdings gerade kein Testsetup zur Verfügung um es zu verifizieren...

May 07, 2023, 09:11:12 PM #4 Last Edit: May 07, 2023, 09:13:46 PM by maraD
Die Source IP muss bei der WAF ankommen sonst lässt sich in der Theorie Security schlecht umsetzen.  :-[

Das wäre diese Konfiguration:


Hmmm, laut Eingangspost hast du es mit Destination "This Firewall" auch schon probiert, richtig? Die Regel sieht erst mal gut aus, wüsste nicht warum die OPNsense die Source Adresse austauschen sollte. Kannst du mal noch deine Outbound NAT Regel screenshotten, inklusive der automatisch generierten? Eventuell liegt da der Hase im Pfeffer.

Ansonsten passen die Adressen deines ersten Posts, des Screenshots und der ASCII Grafik alle nicht zusammen. Laut Grafik ist da ein weiterer Router. Könnte der eventuell das Problem sein? Zeichne das vielleicht noch mal sauber neu...

Oke, mache ich sobald ich dazu komme.  ;)

Bitte mal nachschauen in den erweiterten Optionen bezüglich NAT Reflection ob da irgendwas angeschaltet wurde (in der Regel selbst ja nicht, aber generell) und ob das ggf. auf NAT via Proxy steht. Sofern nicht gebraucht darf Reflection gern auf "nope" stehen oder auf PureNAT was eigentlich genügt.

Prinzipiell hat Marc aber recht - und @meyerguru nicht - dass beim simplen Port Forwarding eigentlich die Source IP des Absenders nicht verändert wird. Die Firewall proxy'ed hier nicht einfach und macht eine neue Verbindung auf, sondern schreibt die Ziel IP um, die Source bleibt aber gleich. Daher würde sich mir auch nicht erschließen, warum du Verbindungen von der Firewall bekommen solltest statt von der Quelle im Internet.

Wäre es anders, könnten ja sämtliche Pakete der Verbindung entweder nach Verbindungsaufbau nicht mehr zugestellt werden oder müssten immer durch einen Proxy der Firewall laufen (mit entsprechend Overhead). Das macht so keinen Sinn...

Cheers
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Stimmt. Ich hatte es zwar verifiziert, aber dummerweise mit Port 443, wo der HAproxy hinter lag. Damit geht es natürlich nicht. Mit reiner DNAT geht es schon, dann allerdings muss man auf HAproxy verzichten und die namensbasierte Verteilung dahinter machen.
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

Danke, ich schaue es mir an.

Merci für euere Inputs, melde mich nach den Ferien.