ubuntuusers.de

NAT mit IPFILTER

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

TeTiGt

Anmeldungsdatum:
2. Dezember 2020

Beiträge: 46

Hallo,

es geht um einen Server, der die öffentliche IP Adresse 203.0.113.55 hat. Dessen Paket soll nun weitergeleitet werden auf 192.168.14.2. Dies geschieht mit

1
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.14.2

Soweit so gut. Nun muss aber bei dem Rücksenden des Paketes an die Private IP der Firewall gesendet werden mit

1
sudo iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 80 -d 192.168.14.2 -j SNAT --to-source 192.168.14.99

.

Nun frage ich mich wie sendet die Firewall das Paket an die ursprüngliche öffentliche Adresse zurück. Sagen wir meine IP ist öffentlich 192.168.103.1 ich sende an 203.0.113.18 der sendet es an 192.168.14.2 und der sendet es zurück an die private IP der Firewall 192.168.14.99. Woher weiß die Firewall, dass sie nun wieder an 192.168.103.1 senden muss?

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14336

TeTiGt schrieb:

Nun frage ich mich wie sendet die Firewall das Paket an die ursprüngliche öffentliche Adresse zurück.

Du Könntest source-NAT (MASQUERADE) für die involvierten Interfaces/NICs konfigurieren (mit iptables).

TeTiGt

(Themenstarter)

Anmeldungsdatum:
2. Dezember 2020

Beiträge: 46

Könntest du das bitte etwas genauer erläutern? Woher würde masquerade die IP Adresse des ursprünglichen Absenders rekonstruieren können? Das Paket geht an die Firewall zurück und Woher soll die jetzt wissen, was genau die ursprüngliche IP Adresse des Paketes war?

Ich habe das Beispiel aus diesem Artikel https://devstorage.eu/linux-port-forwarding-mit-iptables/. Wenn in dem Paket als Zieladresse die Firewall angegeben ist, wie soll dann noch die ursprungsadresse hergestellt werden?

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9668

Wohnort: Münster

TeTiGt schrieb:

[…] Nun frage ich mich wie sendet die Firewall das Paket an die ursprüngliche öffentliche Adresse zurück.

Lese dazu die Artikel iptables und Router/NAT im Wiki.

TeTiGt

(Themenstarter)

Anmeldungsdatum:
2. Dezember 2020

Beiträge: 46

kB schrieb:

TeTiGt schrieb:

[…] Nun frage ich mich wie sendet die Firewall das Paket an die ursprüngliche öffentliche Adresse zurück.

Lese dazu die Artikel iptables und Router/NAT im Wiki.

Im Wiki steht über Masquerade als NAT im Wiki:

in jedem IP-Paket vom Client an den Server die Absender-Adresse 192.168.33.65 durch die Adresse 203.0.113.255 des Routers zu ersetzen,

und in jedem IP-Paket vom Server an den Router die Empfänger-Adresse 203.0.113.255 durch die Adresse 192.168.33.65 des Clients zu ersetzen,

und dabei die Verbindungen verschiedener Clients aus dem privaten Netz zu möglicherweise demselben Server im Internet nicht durcheinander zu mischen.

Vor allem bei "in jedem IP-Paket vom Client an den Server die Absender-Adresse 192.168.33.65 durch die Adresse 203.0.113.255 des Routers zu ersetzen," Frage ich mich wie soll das der Router tun, wenn die Pakete, die vom Client zu ihm geschickt werden, die Andresse des Routers in meinem Beispiel haben anstatt die des Servers? Denn der Artikel https://devstorage.eu/linux-port-forwarding-mit-iptables/ sagt, dass die Packete, die vom Client an den Server zurückgeschickt werden als Zieladresse, die Adresse des Routers bekommen. Wenn dieses Paket die Adresse des Routers als Ziel hat, wie kann dann Masquaradt noch etwas damit anfangen?

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9668

Wohnort: Münster

TeTiGt schrieb:

[…] Denn der Artikel https://devstorage.eu/linux-port-forwarding-mit-iptables/ sagt, dass […]

Möglicherweise Dein Missverständnis, möglicherweise ein Fehler im externen Artikel, Möglicherweise behandelt der externe Artikel etwas anderes als das, was Du willst, oder ein anderes Problem.

Jedenfalls solltest Du das mit dem Autor des fremden Artikels diskutieren.

Wenn man einem Rechner ein IP-Paket mit der eigenen Adresse des Rechners schickt, will der Absender normalerweise kein NAT, sondern den Rechner selbst ansprechen.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14336

TeTiGt schrieb:

Woher würde masquerade die IP Adresse des ursprünglichen Absenders rekonstruieren können?

MASQUERADE (... als Spezialfall für source-NAT mit dynamischen IP-Adressen) nimmt die source-IP-Adresse vom output-Interface. Ausgehende Pakete werden vom Kernel immer auf die gerade aktuelle source-IP-Adresse umgesetzt und Verbindungen im undefinierten Zustand (... wegen nicht mehr gültiger source IP-Adresse) werden "vergessen".

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9668

Wohnort: Münster

lubux schrieb:

TeTiGt schrieb:

Woher würde masquerade die IP Adresse des ursprünglichen Absenders rekonstruieren können?

Die Antwort steht im bereits verlinkten Artikel:

Unter Linux richtet man dafür im Netfilter des Kernels ein "statefull source NAT" ein. ("statefull", weil die Verbindungen gemerkt werden müssen und "source", weil bei der Anfrage die Adresse des Absenders umgeschrieben wird.)

Der Kernel merkt sich einfach die bestehenden Verbindungen.

Antworten |