ubuntuusers.de

Portweiterleitung zum Loopbackinterface / localhost

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

schmidti411

Avatar von schmidti411

Anmeldungsdatum:
24. Oktober 2007

Beiträge: 152

Wohnort: Berlin

Hallo,

ich habe ein kleines Problem und hoffe auf eure Hilfe:

Ich möchte Anfragen, die auf einer bestimmten IP/Port meines Hosts kommen auf localhost/Port umleiten. Das ganze sollte mit iptables funktionieren, jedoch habe ich noch keine richtig funktionierende Regel gebaut bekommen:

Es sieht folgendermaßen aus:

Eingehender TCP-Traffic auf 192.168.20.5:5911 weiterleiten auf 127.0.0.1:5911.

Es ist leider nicht möglich den eigentlichen Serverprozess gegen die Adresse 192.168.20.5 zu binden. Es muss mit einer Portweiterleitung funktionieren und sollte mit den Paketen bewerkstelligt werden, die in einer Serverinstallation vorhanden sind. Am liebsten wäre mir iptables, da ich denke, dass es damit gehen müsste...

duesentriebchen

Avatar von duesentriebchen

Anmeldungsdatum:
10. Februar 2012

Beiträge: 713

Wohnort: Im Inntal

Hallo schmidti411

Im Wiki gibt es einen gut beschriebenen Artikel wie man sich iptables-rules bauen kann.

Zu Beginn würd ich das mal ohne Gewähr und auf eigenes Risiko versuchen.

  • Als Interface für eingehende Verbindungen ist eth0 festgelegt → Bitte anpassen

  • Sämtlicher Verkehr wird angenommen und zugelassen!!! → Bitte anpassen!!! Das ist ein erhebliches Sicherheitsrisiko und nur in einem eigenen Netzwerk zu empfehlen!

  • Die Regeln basieren auf der Annahme das 192.168.20.5 dieser Rechner ist.

iptables -F                              					             #alle Regeln löschen
iptables -X
iptables -t nat -F

iptables -P INPUT ACCEPT			 			                     #Policy für Tabelle filter, INPUT Chain
iptables -P OUTPUT ACCEPT			 				             #Policy für Tabelle filter, OUTPUT Chain
iptables -P FORWARD ACCEPT                                                                   #Policy für Tabelle filter, FORWARD Chain

sysctl -w net.ipv4.ip_forward=1                                                              #forwarding zulassen
		 					
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5911 -j DNAT --to-destination lo:5911   #eingehende Pakete auf PORT 5911 an localhost PORT 5911 weiterleiten
iptables -t nat -A OUTPUT -d lo -p tcp --dport 5911 -j REDIRECT --to-port 5911               #ob es diese Regel braucht, weiss ich nicht. Ist aber einen Versuch wert.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE                                         #sämtlicher ausgehender Verkehr wird mit der IP dieses Rechners versehen

EDIT: Wenn das nicht funtioniert

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5911 -j DNAT --to-destination lo:5911   #eingehende Pakete auf PORT 5911 an localhost PORT 5911 weiterleiten
iptables -t nat -A OUTPUT -d lo -p tcp --dport 5911 -j REDIRECT --to-port 5911               #ob es diese Regel braucht, weiss ich nicht. Ist aber einen Versuch wert.

dann versuch mal das.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5911 -j DNAT --to-destination 127.0.0.1:5911   #eingehende Pakete auf PORT 5911 an localhost PORT 5911 weiterleiten
iptables -t nat -A OUTPUT -d 127.0.0.1 -p tcp --dport 5911 -j REDIRECT --to-port 5911               #ob es diese Regel braucht, weiss ich nicht. Ist aber einen Versuch wert.
Antworten |