Weiterleitung eines Ports auf einen anderen Host

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Weiterleitung eines Ports auf einen anderen Host

Post by theomega »

Hallo Leute,
wie kann ich möglich simpel und mit möglich großer performance einen einzelnen port auf einen anderen host umleiten?
Ich habe einen MySQL-Server auf einem zweiten Rootserver und möchte nicht alle Scripte ändern (enthalten alle als host 127.0.0.1). Deshalb möchte ich alle mysql-anfragen an den zweiten Server weiterleiten.
Ein SSL-Tunnel habe ich aktuell im Einsatz, jedoch soll das ganze in Zukunft über ein VPN laufen und dann ist ja ein SSL-Tunnel nichtmehr nötig, weshalb ich eine Lösung mit mehr performance suche.

Danke
TO
snowball
Posts: 218
Joined: 2004-09-15 10:14

Re: Weiterleitung eines Ports auf einen anderen Host

Post by snowball »

Hi,
ich bin mir nicht ganz sicher, aber wäre rinetd nicht das was du suchst?

greets
Jochen
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Weiterleitung eines Ports auf einen anderen Host

Post by theomega »

hat sich zwar nach genau dem angehört was ich suche, jedoch scheint das Ding nicht mit mysql zu harmonieren. Ich erhalte immer die Fehlermeldung
ERROR 2013: Lost connection to MySQL server during query
in der COnfig habe ich stehen
localhost 1500 10.1.20.6 3306
und versuche auf dem pc per
mysql -h 127.0.0.1 -P 1500
zu verbinden

Hat sonst jemand einen Tipp?

Danke
TO
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: Weiterleitung eines Ports auf einen anderen Host

Post by alexander newald »

echo 1 > /proc/sys/net/ipv4/ip_forward
/usr/local/sbin/iptables -t nat -I PREROUTING -p tcp --dport 3306 -j DNAT --to IP_DES_ZIELS

evtl. noch -s localhost vor --dport einfügen
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Weiterleitung eines Ports auf einen anderen Host

Post by theomega »

Ich habe jetzt folgendes zum testen gemacht:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I PREROUTING -p tcp -s localhost --dport 80 -j DNAT --to [zielip]

wenn ich jetzt ein
telnet localhost 80
mache dann bekomm ich keine verbindung (Connection refused), obwohl auf dem zielserver ein webserver auf port 80 läuft.
Was mache ich falsch?

Danke
TO
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: Weiterleitung eines Ports auf einen anderen Host

Post by alexander newald »

Einmal mit

iptables -t nat -D PREROUTING -p tcp -s localhost --dport 80 -j DNAT --to [zielip]

löschen und dann

iptables -t nat -I PREROUTING -p tcp -d localhost --dport 80 -j DNAT --to [zielip]

gehts dann?
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Weiterleitung eines Ports auf einen anderen Host

Post by theomega »

nein, geht auch nicht! DAnke für die Hilfe!
mausgreck
Posts: 84
Joined: 2005-03-19 17:22

Re: Weiterleitung eines Ports auf einen anderen Host

Post by mausgreck »

Also ich habe folgendes in meiner Firewall:

Code: Select all

iptables -A PREROUTING -t nat -p tcp --dport 4321 -i eth0 -j DNAT --to 192.168.10.50:4321
Angeblich funktioniert es. Ansonsten: RTFM.

PS: tcpdump is your friend!
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Weiterleitung eines Ports auf einen anderen Host

Post by theomega »

naja, die Zeile ist ja mit dem von alexander identisch, die hilfe habe ich natürlich schon lange gelesen. Hat sonst noch jemand mir einen Tipp?

Danke
TO
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: Weiterleitung eines Ports auf einen anderen Host

Post by alexander newald »

Auch echo 1 > /proc/sys/net/ipv4/ip_forward gemacht?

Ansonsten mal tcpdump -i eth0 host <ZIEL> mitloggen lassen und posten
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Weiterleitung eines Ports auf einen anderen Host

Post by theomega »

nein, bringt auch alles nicht, ich habe jetzt der einfachheit folgendes gemacht:
1. Ein echo-server (über inetd) auf dem zielhost installiert.
2. auf dem quellhost:
echo 1 > /proc/sys/net/ipv4/ip_forward gemacht
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 7 -j DNAT --to zielip:7
tcpdump dst port 7 or src port 7 -n
und dann nebenher ein
telnet localhost 7

jedoch zeigt tcp dump überhaupt nichts an. Könnte es nicht sein, das die iptables befehle nicht für den eigenen host gelten sondern nur von außen?

Danke
TO
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: Weiterleitung eines Ports auf einen anderen Host

Post by alexander newald »

ausprobieren
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Weiterleitung eines Ports auf einen anderen Host

Post by theomega »

also, ich habe folgendes erkannt: auch von extern geht es nicht. Ich habe auf beiden Servern ein tcpdump auf port 7 laufen. Die Ausgabe auf dem eigentlichen Zielserver ist leer, die auf dem weiterleitungsserver ist:

Code: Select all

18:48:34.177527 IP 84.57.136.208.22776 > 213.239.217.207.7: S 3091877918:3091877918(0) win 65535 <mss 1452,nop,nop,sackOK>
18:48:34.177547 IP 84.57.136.208.22776 > 85.10.192.207.7: S 3091877918:3091877918(0) win 65535 <mss 1452,nop,nop,sackOK>
wobei 84.57.136.208 meine ip ist, also der pc der die anfrage stellt und 213.239.217.207 der weiterleitungsserver.
Allerdings habe ich auchnoch folgendes herausbekommen: Die IPTables-Rule trifft zu, jedesmal wenn ich verbinde erhöht sich der pkts um 1. Es liegt also wohl an den Zielinformationen.

Hat jemand eine IDee?

Danke
TO