Sie sind nicht angemeldet.

1

19.11.2012, 21:03

iptables dnat 127.0.0.1

Hi,

Ich hab auf meinem server jdownloader laufen, welcher nen server aufmacht und auf 127.0.0.1:9666 horcht, das kann ich leider net konfigurieren :/.

Jetzt möchte ich von meinem normalen Rechner aus, Packete die auf dem Port 9666 ankommen, dass der jdownloader sie bekommt, der dienst nennt sich click'n load.

Die Weiterleitung der Packete an die externe adresse des server funzt, tcpdump port 9666 verifiziert dass.

Jetzt dachte ich mache:

Quellcode

1
iptables -t nat -I PREROUTING -p tcp --dport 9666 -i eth0 -s 192.168.99.1 -j DNAT --to-destination 127.0.0.1


und für den rückweg:

Quellcode

1
2
iptables -t nat -I PREROUTING -p tcp --dport 9666 -i lo -d 127.0.0.1 -j DNAT --to-destination 192.168.99.1
iptables -t nat -I POSTROUTING -p tcp --sport 9666 -d 192.168.99.1 -j SNAT --to-source 192.168.99.10


allerdings funktioniert dass nicht....

Ich sollte vllt noch erwähnen: 192.168.99.1=pc und 192.168.99.10=server

Wenn ich in PREROUTING davor ein LOG auf alle packete mit port 9666 mache und nach dem DNAT, wird das davor geloggt das danach nicht mehr.

Meine Vermutung ist jetzt das der Kernel das Packet wegschmeisst weil src: 192.168.99.1 und dst: 127.0.0.1 was unter normalen umständen natuerlich null sinn ergibt.

Wie krieg ich das am besten hin?
Über blosse Idee würde ich mich auch schon freuen:P

Danke
Thorus

EDIT:
mit dem Daemon redir ist sehr einfach und funktioniert einwandfrei.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Thorus« (20.04.2014, 11:40)


2

20.11.2012, 11:55

Versuche mal folgende Konfiguration:

Der Service lauscht auf 127.0.0.1, also müssen die Verbindungen dort hin geleitet werden:

Quellcode

1
iptables -t nat -I PREROUTING -p tcp --dport 9666 -i eth0 -s 192.168.99.1 -j DNAT --to-destination 127.0.0.1


Jetzt tun wir so als ob die Verbindung vom localhost, also von 127.0.0.1 kommt:

Quellcode

1
iptables -t nat -I POSTROUTING -p tcp --dport 9666 -i eth0 -s 192.168.99.1 -j SNAT --to-source 127.0.0.1


Den Rückweg sollte iptables über Connection-Tracking selbst hinkriegen. Du müsstest also den jDownloader jetzt über 192.168.99.10:9666 ansprechen können.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

3

20.11.2012, 19:20

funktioniert leider nicht.

auf eth0 sehe ich das packet noch:

Quellcode

1
2
3
4
# tcpdump -i eth0 port 9666
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:19:17.545493 IP 192.168.99.1.50037 > 192.168.99.10.9666: Flags [S], seq 124376408, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0


aber auf lo kommt nichts an:

Quellcode

1
2
3
 # tcpdump -i lo port 9666
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes