[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: TCP Forwarding



Am Dienstag, 15. April 2008 schrieb Dominique Schramm (ML):
> Hallo Liste,
>
> ich hab hier ein kleines "Forwarding" Problem :)
> Ich möchte eine IP weiterleiten auf eine andere IP. Bisher habe
> ich das per rinetd gemacht, damit kann man direkt von einer
> Quell IP auf eine Ziel IP über Ports weiterleiten. Als BSP:
>
> xxx.xxx.xxx.xxx 80 yyy.yyy.yyy.yyy 80
>
> Damit werden alle Verbindungen weitergeleitet. Nun
> möchte ich das ganze aber nicht mit einem zusätzlichen
> Programm erledigen sondern direkt mit iptables. Sollte
> ja gehen. Ich habe mir dazu folgenden Befehl geschrieben:
>
> iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -p
> tcp --dport 80 --j DNAT --to yyy.yyy.yyy
>
> xxx.xxx.xxx.xxx -> Quell IP Server 1
> yyy.yyy.yyy.yyy -> Ziel IP Server 2
>
> Nur irgendwie geht der Befehl nicht :( Fehlt da irgend-
> was oder geht das nur einfach auf diese Art und Weise nicht?

Die Pakete kommen schon am Zielrechner an, aber die Antworten werden von 
der Quelle/Client verworfen, da die Antworten ja jetzt von einem 
anderen Rechner (andere IP) kommen als er eigentlich angesprochen hat. 
Das Thema hatten wir hier erst vor kurzem und falls du das wirklich mit 
iptables machen möchtest heißt die Lösung: DestinationNAT _UND_ 
SourceNAT.

#also zusätzlich zu deiner Regel noch:
iptables -t nat -A POSTROUTING -p tcp --dport 80 -d yyy.yyy.yyy.yyy -j 
SNAT --to-source xxx.xxx.xxx.xxx

Das geht davon aus, das xxx == die IP des Rechners ist auf dem die 
Regeln angelegt werden, also kein Router zwischendurch irgendwo.
Damit antwortet der neue Rechner quasi an den alten, der dann die 
Antwort an den eigentlichen Client zurückschickt.
Du solltest auch noch darauf achten, das in der filter Tabelle keine 
Pakete in der FORWARD chain gedropped werden oder dafür entsprechende 
Regeln noch hinzufügen.

Das Thema gab es hier bereits unter: 
http://www.nabble.com/Iptables-Port-weiterleiten-an-anderen-Server-tt16161554.html#a16161554


-- 
Markus Schulz

Heute glaubt anscheinend jeder, Programme seien Geister, die in kleinen 
Totems wohnen und durch zweimaliges Berühren mit dem Mausfetisch 
beschworen werden. Daher vermutlich das Unvermögen, ein Programm zu 
starten, wenn das Totem verlorengegangen ist. (Thorsten Lange in 
d.a.s.r.)


Reply to: