Linux Schulungen: http://www.opensource-training.de  
 
Foren > Firewalling mit Linux > iptables / port forwarding / dnat
Navigation
Schulungen
Foren
  Allgemeines Forum
  Intrusion Detection
  VPN mit Linux
  Firewalling mit Linux
  SELinux/AppArmor
SELinux/AppArmor Buch
IDS-Buch
VPN-Buch
Firewall-Buch
Nachrichten
Vorträge/Tutorials
Artikel
Linux-Magazin Artikel
Anmelden / Daten ändern
Messen
Impressum
Serverspiegel
Zertifizierungen
GPG Public Key

Flavours
English
German

Search

Visitors
Besucher 727669
Ansichten 2189
Online 0


iptables / port forwarding / dnat

Springe zu
Thema Verfasser Letzte Antwort
iptables / port forwarding / dnat nicolas79 ( ---.23.55.82) 21 Dec 2007 14:41
Hallo,

Ich habe eine Frage zu DNAT.

Ich habe einen Server mit einer einzigen IP auf eth0. Mit folgendem Script moechte ich nun ein Port Forwarding von Port 81 auf eine externe IP und Port 80 machen.

iptables -t nat -F
iptables -t filter -F
iptables -A PREROUTING -t nat -p tcp --dport 81 -j DNAT --to 130.59.138.34:80
iptables -A FORWARD -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Ich habe nun festgestellt dass diese Regel nur dann funktioniert wenn ich noch zusaetzlich folgende Regel in der POSTROUTING Kette aufsetze.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Im "Linux-Firewalls" Buch habe ich im Kapitel 20.1 (Abschnitt Tipp) aber gelesen dass diese Rueckuebersetzung automatisch durch den Kernel gemacht werden sollte.

Ueber eine Antwort wurde ich mich sehr freuen....

Gruss Nicolas


Server Infos
============

2.6.18-5-amd64 #1 SMP x86_64 GNU/Linux
iptables v1.3.6
Interfaces: eth0 (eine ip) und lo
alle ip's sind oeffentlich (keine privaten ip's)

*****************

> iptables -t nat --list
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:81 to:130.59.138.34:80

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

*****************

> iptables-save
# Generated by iptables-save v1.3.6 on Tue Dec 18 09:53:24 2007
*filter
:INPUT ACCEPT [34924:16179522]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [35722:30366922]
-A FORWARD -j ACCEPT
COMMIT
# Completed on Tue Dec 18 09:53:24 2007
# Generated by iptables-save v1.3.6 on Tue Dec 18 09:53:24 2007
*nat
:PREROUTING ACCEPT [1654:97177]
:POSTROUTING ACCEPT [408:24444]
:OUTPUT ACCEPT [405:24300]
-A PREROUTING -p tcp -m tcp --dport 81 -j DNAT --to-destination 130.59.138.34:80
COMMIT
# Completed on Tue Dec 18 09:53:24 2007

RE: iptables / port forwarding / dnatRalf ( ---.dip.t-dialin.net)21 Dec 2007 14:41
Hallo,

grundsätzlich hast Du natürlich recht. Aber in diesem speziellen Fall nicht ;-)

Es ist im Grunde ein Routing Problem. Du baust wahrscheinlich von außen eine Verbindung zum Port 81 auf. Diese wird auch korrekt weitergeleitet an 130.59.138.34. Dabei wird aber nur die Zieladresse verändert und nicht die Absenderadresse. Der Rechner 130.59.138.34 routet daher seine Antwort direkt an den Client, da dieser ja auch eine über das Internet erreichbare IP-Adresse besitzt. Der Client weiss aber nichts von der 130.x.x.x sondern glaubt sich ja in Verbindung mit Deiner Firewall. Daher musst Du in diesem Fall sicherstellen, dass die Antworten auch wieder über die Firewall laufen. Dass tun sie hier nämlich nicht. Das macht dann das Masquerading.

Klar?

Gruß,

Ralf

[ Zurück ] Um ein neues Thema hinzu zu fügen müssen sie eingeloggt sein.


Umfrage

Welche Distribution verwenden Sie?

 A) Fedora Core
 B) SuSE
 C) Debian
 D) Mandriva
 E) Red Hat Enterprise Linux
 F) SuSE Enterprise Linux
 G) Slackware
 H) Ubuntu
 I) Gentoo
 J) Andere


Latest News
17 Oct 2008: Neue Schulung: Netzwerküberwachung mit Nagio...
17 Oct 2008: Neue Schulung: Virtualisierung mit KVM
24 Sep 2008: Business-Online Messe in Münster
24 Sep 2008: Eröffnungskonferenz am 25. September 2008
28 Aug 2008: Zertifizierung nach LPIC-3
Weitere News...

Login
eMail


Passwort



© 2002-2005 Ralf Spenneberg, OpenSource Security, Germany