Verständnisprobleme mit NAT

lordg2009

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.559
Hallo allerseits

Ich beschäftige mich gerade mit iptables in Linux. Folgendes Problem

in der nat tabelle ist SNAT nur in der POSTROUTING Kette und
DNAT nur in der PREROUTING Kette verfügbar.

Ich bräuchte es jedoch genau andersherum:

Ich möchte per NAT die QuellIP der Pakete bei eintreffen so verändern, dass mein PC denkt, sie hätten eine lokale QuellIP und beim rausgehen sollen die Pakete eine andere Zieladresse aufgedrückt bekommen.
Somit bräuchte ich eigentlich SNAT in der PREROUTING Kette und DNAT in der POSTROUTING Kette, nur leider geht das nur andersum.
 
Das macht irgendwie keinen Sinn oder? - wenn wir von TCP reden - wie sollen dann die ACKs zugestellt werden?
 
Ok, dem werde ich nachgehen.
Trotzdem noch mal die Frage: warum brauche ich denn eine Änderung der Zieladresse in der PREROUTING Kette, also vor eintreffen der Pakete und umgekehrt halt auch in der POSTROUTING Kette. Der Sinn erschließt sich mit dort überhaupt nicht.
Wisst ihr eventuell ein gutes Tutorial für Masquerading. Ich habe gerade Probleme, eines zu finden.
Vielen Dank
Ergänzung ()

So, ich denke ich habe SNAT und DNAT jetzt begriffen und warum es genau andersrum ist, wie ich das brauche. Leider bin ich aus dem Masquerading noch nicht schlau geworden. Hab nach wie vor nicht wirklich was sinvolles gefunden, also hier noch mal meine Wünsche:

- Ich möchte eintreffende Pakete VOR erreichen der lokalen Prozesse so verändern, dass die QuellIP eine andere ist, damit der lokale Prozess so handelt, als kommen die Pakete von einer lokalen IP-Adresse
- des Weiteren möchte ich, dass die Pakete, die der Prozess dann rausschickt (und die sicherlich an die gleiche veränderte lokale IP geschickt werden) so bearbeitet werden, dass sie an die ursprüngliche Zieladresse gehen.

Der Code den ich ausprobiert habe, der nicht funktioniert hat, aber den ich so brauchen würde lautet:
Code:
iptables -t nat -A PREROUTING -s 1.2.3.4 -j SNAT --to 192.168.1.90
iptables -t nat -A POSTROUTING -d 192.168.1.90 -j DNAT --to 1.2.3.4

Dabei existiert die lokale Adresse nicht wirklich im LAN, der lokale Prozess soll nur glauben, dass die Pakete von einer solchen kommen.

Vlt. erläutert euch das genauer, was ich erreichen möchte.
 
Zurück
Oben