Linux Schulungen: http://www.opensource-training.de  
 
Foren > Firewalling mit Linux > IP-Forwarding mit iptables
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 1260498
Ansichten 5273
Online 0


IP-Forwarding mit iptables

Springe zu
Thema Verfasser Letzte Antwort
IP-Forwarding mit iptables rpw ( ---.dip0.t-ipconnect.de) 29 Aug 2009 08:54
Hallo,

ich habe auf einem Rootserver von Strato VMWare Server 2 installiert, und zunächst mal eine virtuelle Maschine über das VMWare-Webinterface installiert. Als Netzwerkverbindung für die virtuelle Maschine habe ich NAT gewählt. Über das Webinterface komme ich auch an die Maschine, und kann alle erdenklichen Aufgaben durchführen, z.B. Updates durchführen, Programme installieren, etc.. Sowohl auf dem Rootserver, als auch in der virtuellen Maschine laufen jeweils Ubuntu Server 8.04.3 LTS inklusive aller Updates.

Dann habe ich auf dem Rootserver iptables gemäß dieser Anleitung konfiguriert: http://wiki.rootforum.de/vserver/nat-netzwerkkonfiguration

Einiges zum besseren Verständnis. Die tatsächliche IP-Adresse des Rootservers gebe ich natürlich nicht an, daher dann eine IP-Adresse in Form von xx.xxx.xxx.xxx. Die virtuelle Maschine bekommt via NAT durch VMWare die lokale Adresse 192.168.137.128. Feste IP-Adressen kann ich immer noch vergeben, sobald alles funktioniert.


Folgendes habe ich also gemacht.

1) IP-forwarding sowohl direkt, als auch permanent aktiviert:
echo '1' > /proc/sys/net/ipv4/ip_forward
Eintrag in die Datei "/etc/sysctl.conf"

2) Den eingehenden Traffic auf TCP-Port 6501 auf dem Rootserver auf den Port 22 der virtuellen Maschine umgeleitet:
iptables -t nat -A PREROUTING -p tcp -d xx.xxx.xxx.xxx --dport 6501 -i eth0 -j DNAT --to-destination 192.168.137.128:22

3) Den gesamten ausgehenden Traffic der virtuellen Maschine an den Rootserver weitergeleitet:
iptables -t nat -A POSTROUTING -s 192.168.137.128 -o eth0 -j SNAT --to xx.xxx.xxx.xxx

4) iptables -L -n -t nat bringt nun folgendes Ergebnis:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 xx.xxx.xxx.xxx tcp dpt:6501 to:192.168.137.128:22
- - - - - - - - - - - - - - - - - -
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.137.128 0.0.0.0/0 to:xx.xxx.xxx.xxx
- - - - - - - - - - - - - - - - - -
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

5) Mittels VMWare-Console aus dem Webinterface auf der virtuellen Maschinen den SSH-Server installiert und gestartet. Den Standardport 22 habe ich hier NICHT verändert.

6) Das Forwarding erlaubt:
iptables -I FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

7) iptables -L bringt nun:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state NEW,RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


Folgendes funktioniert derzeit:
1) Ich kann mich via ssh auf dem Rootserver anmelden (logisch, sonst könnte ich ja nichts machen).
2) Von der VMWare-Console aus dem VMWare-Webinterface heraus kann ich mich auf der virtuellen Maschine anmelden.
3) Die virtuelle Maschine bekommt Kontakt ins Internet, Programme installieren. etc. funktioniert ohne Probleme.
4) Wenn ich via ssh auf dem Rootserver angemeldet bin, kann ich mich von dort aus ebenfalls via ssh auf der virtuellen Maschine anmelden, der Kontakt zwischen den Maschinen funktioniert also auch.

Was aber nicht funktioniert, ist der Kontakt von außen auf die virtuelle Maschine. Wenn ich also versuche, mittels ssh auf den Port 6501 des Rootservers (xx.xxx.xxx.xxx) zu gelangen, der dann an die virtuelle Maschine geroutet werden sollte, erhalte ich lediglich eine Fehlermeldung "Connection refused".

Hat jemand vielleicht eine Idee, wo das Problem liegen könnte (stehe momentan irgendwie komplett auf der Leitung)?

Gruß,

rpw

RE: IP-Forwarding mit iptablesRalf ( ---.dip.t-dialin.net)29 Aug 2009 08:54
Hallo,

Vmware nutzt bei dem NAT-Modell meines Wissens eine eigene NAT-Maschine. Die kann mit IPtables nicht erreicht werden. Du musst den virtuellen Gast auf Host-Only umstellen und sowohl das eingehende und auch das ausgehende NAT mit iptables machen.
Bei Vmware-NAT ist mit iptables kein Port-Forwarding möglich.
Alternativ kannst Du das Port-Forwarding bei VMware konfigurieren. Es müsste eine Datei geben:
/etc/vmware/vmnet8/nat/nat.conf
Hier kannst Du folgendes eintragen:
8880 = 192.168.133.128:80
Dann wird alles an Port 8880 an Port 80 weitergeleitet. Ist aber sehr langsam.

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