Discussion:
Iptables Port weiterleiten an anderen Server
(zu alt für eine Antwort)
Florian
2008-03-19 18:20:10 UTC
Permalink
Hallo liebe Debian Gemeinde,



ich möchte einen Dienst auf einen anderen Server verlegen, der alte Server
soll jedoch den port weiterleiten zum neuen Server.



Nehmen wir als Beispiel:



Server 1 über Standleitung angebunden mit ip 254.10.0.1

Server2 der den neuen dienst bereitstellt: 254.10.0.2

Port welcher von Server 1 auf Server 2 weitergeleitet werden soll: 600





Ich habe schon viele Webseiten durchforstet, bin aber zu nichts brauchbaren
gekommen.

Es sollte anscheinend mit Iptables FORWARD gehen



iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination



Chain FORWARD (policy ACCEPT)

target prot opt source destination

ACCEPT tcp -- 254.10.0.1 254.10.0.2 tcp spt:600 dpt:600



Chain OUTPUT (policy ACCEPT)

target prot opt source destination

:~#





Ich hoffe mir kann jemand helfen



Mit freundlichen Grüßen



Florian M.
Martin Reising
2008-03-19 19:30:18 UTC
Permalink
Post by Florian
ich möchte einen Dienst auf einen anderen Server verlegen, der alte
Server soll jedoch den port weiterleiten zum neuen Server.
Es sollte anscheinend mit Iptables FORWARD gehen
Nein PREROUTING.
Post by Florian
Server 1 über Standleitung angebunden mit ip 254.10.0.1
Server2 der den neuen dienst bereitstellt: 254.10.0.2
Port welcher von Server 1 auf Server 2 weitergeleitet werden soll: 600
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 600 -j REDIRECT --to-port 600 -d 254.10.0.2
--
Nicht Absicht unterstellen, wenn auch Dummheit ausreicht!
Markus Schulz
2008-03-19 20:40:10 UTC
Permalink
Post by Martin Reising
Post by Florian
ich möchte einen Dienst auf einen anderen Server verlegen, der alte
Server soll jedoch den port weiterleiten zum neuen Server.
Es sollte anscheinend mit Iptables FORWARD gehen
Nein PREROUTING.
Post by Florian
Server 1 über Standleitung angebunden mit ip 254.10.0.1
Server2 der den neuen dienst bereitstellt: 254.10.0.2
Port welcher von Server 1 auf Server 2 weitergeleitet werden soll: 600
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 600 -j REDIRECT
--to-port 600 -d 254.10.0.2
Das wird wohl nix, REDIRECT kann nur Ports auf der lokalen Maschine
umleiten, das -d ist quasi eine Vorbedingung und kein Parameter von
REDIRECT.

Der OP möchte etwas in der Art eines transparenten Dienstes:
http://www.faqs.org/docs/Linux-mini/TransparentProxy.html#s6

dort erklärt in Form eine Squids, was er natürlich auch für seinen
Dienst anwenden kann. Im Grunde wird ein DNAT auf die neue ZielIP
gemacht und die Source Adresse umgeschrieben, d.h. die Antwortpakete
laufen wieder über die alte Maschine zurück. Der Nachteil ist, der neue
Server sieht als IP der eingehenden Verbindung immer die alte Maschine.
Ohne SourceNAT funktioniert das ganze auch nicht, der Client möchte
schließlich das die Antwortpakete auch von der IP kommen die er selbst
angesprochen hat.
--
Markus Schulz

Aber meiner persönlichen Meinung nach ist ein Sid an 355 Tagen im Jahr
mehr "stable" als z.B. ein Suse "fertig" in den Läden steht.(Joerg
Rossdeutscher)
Michael Wagner
2008-03-20 02:30:11 UTC
Permalink
Post by Martin Reising
Post by Florian
ich möchte einen Dienst auf einen anderen Server verlegen, der alte
Server soll jedoch den port weiterleiten zum neuen Server.
Es sollte anscheinend mit Iptables FORWARD gehen
Nein PREROUTING.
Hallo Martin,

ich bin ja kein Netzwerkspezialist, aber für einfache Sachen dürfte doch
auch das Paket "redir" reichen.

$ aptitude show redir

Paket: redir
Beschreibung: Redirect TCP connections
It can run under inetd or stand alone (in which case it handles
multiple connections). It is 8 bit clean, not limited to line mode,
is small and light. Supports transparency, FTP redirects, http
proxying, and bandwidth limiting.

redir is all you need to redirect traffic across firewalls authenticate
based on an IP address etc etc. No need for the firewall toolkit. The
functionality of inetd/tcpd and "redir" will allow you to do everything
you need without screwy telnet/ftp etc gateways. (I assume you are
running IP Masquerading of course.)
Homepage: http://sammy.net/~sammy/hacks/

Bin mir aber nicht sicher, ob der OP nicht was anderes gesucht hat.

Michael
--
Monolog - one person talking to himself,
dialog - two people talking to themselves.
-Shaike Ofir-
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Heiko Schlittermann
2008-03-20 07:20:30 UTC
Permalink
Post by Florian
Hallo liebe Debian Gemeinde,
ich möchte einen Dienst auf einen anderen Server verlegen, der alte Server
soll jedoch den port weiterleiten zum neuen Server.
Server 1 ÃŒber Standleitung angebunden mit ip 254.10.0.1
Server2 der den neuen dienst bereitstellt: 254.10.0.2
Port welcher von Server 1 auf Server 2 weitergeleitet werden soll: 600
alt=254.10.0.1
neu=254.10.0.2

iptables -t nat -A PREROUTING -j DNAT
-d $alt -p tcp --dport 600
--to $neu

iptables -t filter -A FORWARD -j ACCEPT \
-d $neu -p tcp --dport 600


Best regards from Dresden
Viele GrÌße aus Dresden
Heiko Schlittermann
--
SCHLITTERMANN.de ---------------------------- internet & unix support -
Heiko Schlittermann HS12-RIPE -----------------------------------------
gnupg encrypted messages are welcome - key ID: 48D0359B ---------------
gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B -
Markus Schulz
2008-03-20 10:30:21 UTC
Permalink
Post by Heiko Schlittermann
alt=254.10.0.1
    neu=254.10.0.2
    iptables -t nat -A PREROUTING -j DNAT
        -d $alt -p tcp --dport 600
        --to $neu
    iptables -t filter -A FORWARD -j ACCEPT \
        -d $neu -p tcp --dport 600
Das Funktioniert nicht für tcp ohne ein SourceNAT.
Das Problem ist, der neue Server bekommt eine Anfrage von Client X z.B.
aus seinem eigenen Netz, d.h. die Antwort schickt er direkt zurück an
den Client. Der Client bekommt also eine Antwort von einem anderen
Server als dem wo er die Anfrage hingeschickt hat, das Paket verwirft
er einfach.

Die Lösung dafür ist, zusätzlich noch folgende Regel:

iptables -t nat -A POSTROUTING -p tcp --dport 600 -d $neu -j
SNAT --to-source $alt

Damit laufen dann alle Verbindungen immer über den alten Rechner als
NAT-Gateway, der neue Server sieht also als Absender immer den alten
Rechner.
--
Markus Schulz

Kreuzigt mich - aber Debian ist einfach deppensicher.
Es lässt Deppen gegen eine Wand von Schwierigkeiten klatschen und
langsam abtropfen. Wer die Tür findet, darf mitspielen - und so sieht
das Spielzeug dann eben aus: Gut gepflegt. -- Joerg Rossdeutscher
r***@admin.michi-web.de
2008-03-20 08:10:07 UTC
Permalink
Hallo, also meine D-NAT Regeln schauen etwas anders aus.

REDIRECT wird verwendet um auf lokale Ports umzuleiten (z.b. für einen
transparenten Proxy)

Aber nun zu den DNAT Regeln.

1. DNAT zum "Umschreiben" der Zieladresse:
$IPTABLES -t nat -A PREROUTING -i $EXTDEV -p tcp --dport 25 -d $ALT -j
DNAT --to-destination $NEU:PORT

2. Verkehr erlauben:
$IPTABLES -A EXTDMZ -p tcp --dport 25 -d $NEU -m state --state NEW -j
ACCEPT

3. Aufgebaute Verbindungen erlauben
$IPTABLES -A DMZEXT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A EXTDMZ -m state --state ESTABLISHED,RELATED -j ACCEPT

So funktionierts auf jeden Fall bei mir mit SMTP.

mfg
Michael


-----Ursprüngliche Nachricht-----
Von: Heiko Schlittermann [mailto:***@schlittermann.de]
Gesendet: Donnerstag, 20. März 2008 08:06
An: debian-user-***@lists.debian.org
Betreff: Re: Iptables Port weiterleiten an anderen Server
Post by Florian
Hallo liebe Debian Gemeinde,
ich möchte einen Dienst auf einen anderen Server verlegen, der alte
Server
Post by Florian
soll jedoch den port weiterleiten zum neuen Server.
Server 1 über Standleitung angebunden mit ip 254.10.0.1
Server2 der den neuen dienst bereitstellt: 254.10.0.2
Port welcher von Server 1 auf Server 2 weitergeleitet werden soll: 600
alt=254.10.0.1
neu=254.10.0.2

iptables -t nat -A PREROUTING -j DNAT
-d $alt -p tcp --dport 600
--to $neu

iptables -t filter -A FORWARD -j ACCEPT \
-d $neu -p tcp --dport 600


Best regards from Dresden
Viele Grüße aus Dresden
Heiko Schlittermann
--
SCHLITTERMANN.de ---------------------------- internet & unix support -
Heiko Schlittermann HS12-RIPE -----------------------------------------
gnupg encrypted messages are welcome - key ID: 48D0359B ---------------
gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B -
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Loading...