VMware Server mit NAT

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
maiki
Beiträge: 47
Registriert: 30.10.2004 22:16:48

VMware Server mit NAT

Beitrag von maiki » 28.12.2007 19:36:14

hallo Leute ich hab eine frage zum routen

Ich habe mir die Tage einen neuen Server bestellt bei einem Provider Bestellt der Briding bei Virtuelen Maschinen unterbindet, es ist nicht möglich auf Virtuelle Maschinen vom Inet aus zu zugreifen. Das habe ich vorher nicht gewusst ich wollte aber auf diesem Server VMware mit WinXP laufen lassen um dort einen Spiele Server zu betreiben. Soweit funktioniert es auch mit NAT kann ich von diesere Virtuellen XP Maschine ins Inet aber wie gesagt ich komme nicht z.b. per RDP drauf da es nicht durch geroutet wird.
Ich habe bei verschiedenen Foren und in Google viel gelesen und habe unter anderen eine Email des Hosters gefunden an einem anderen Kunden in dem dieser satz steht.

Falls Sie auf die Virtualisierung Ihrer Systeme setzen möchten, so
besteht die Möglichkeit die für eine Virtualisierung vorgesehene
IP-Adresse auf dem Server zu konfigurieren und alle dort ankommenden
Anfragen an eine Private IP (die der virtuellen Maschine zugeordnet ist)
weiterzuleiten.


Das heißt also die möchten dem Kunden eine weitere IP Verkaufen. Jetzt denk ich mir aber warum? es muss doch möglich sein die benötigten Ports z.b. UDP 3389 auf diese VM weiterzuleiten oder?

Wenn ja könnt ihr mir verraten wie man dass einrichten kann?
Die VM XP Maschine erhält per DCHP die IP : 192.168.154.128 /255.255.255.0 und Gateway 192.168.154.2
Die Schnittstelle für NAT über die VM wird mit /dev/vmnet8 angegeben

könnte das so Funktionieren:

iptables -A FORWARD -m state --state NEW -i eth0 -p upd --dport 3389 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d vmnet8 --dport 3389 -j DNAT --to 192.168.154.128


Ich danke euch schon mal im Voraus.

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 28.12.2007 21:09:04

Etwas ähnliches ist hier realisiert worden: http://www.debianforum.de/forum/viewtopic.php?t=87098

maiki
Beiträge: 47
Registriert: 30.10.2004 22:16:48

Beitrag von maiki » 28.12.2007 23:47:56

ja ich habe das gefunden aber bei mir geht es trotzdem nicht

kann es möglich sein das plesk mir da einen Strich durch die Rechnung macht?

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 29.12.2007 13:53:58

Bezüglich Plesk kann ich nichts sagen - nutze es nicht und habe es mir acuh noch nie angeschaut. Ohne dein komplettes iptables-Script werden wir hier wohl nicht weiterkommen - also poste es bitte nach http://nopaste.debianforum.de

Hilfreich sind sicher auch Logging-Regeln im Script und deren Analyse in /var/log/syslog beim Verbindungsaufbauversuch mittels RDP. Im Moment kann man nur vermuten, wo es hakt

Code: Alles auswählen

iptables -A FORWARD -m state --state NEW -i eth0 -p upd --dport 3389 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d vmnet8 --dport 3389 -j DNAT --to 192.168.154.128 
Wenn die Default-Policies auf DROP stehen, reicht das so definitiv nicht. Was ist mit den Paketen nach UDP 3389, die nicht NEW, sondern ESTABLISHED, RELATED sind? Da der Internetzugang von der VM zufunktionieren scheint, scheint ip_forward ja grundsätzlich aktiviert zu sein. Wie gesagt, hier hilft nur das ganze Script weiter ...

maiki
Beiträge: 47
Registriert: 30.10.2004 22:16:48

Beitrag von maiki » 29.12.2007 16:01:01

mach ich doch gerne so sieht das Script aus allerdings ohne die regeln

http://nopaste.debianforum.de/7225

es gibt eine weitere Datei mit dem namen ip_forward.active allerdings steht da nur eine 1 drin.

RGupta
Beiträge: 6
Registriert: 02.03.2005 16:07:04
Wohnort: Wülfrath
Kontaktdaten:

Re: VMware Server mit NAT

Beitrag von RGupta » 29.12.2007 16:22:45

Die VM XP Maschine erhält per DCHP die IP : 192.168.154.128 /255.255.255.0 und Gateway 192.168.154.2
Die Schnittstelle für NAT über die VM wird mit /dev/vmnet8 angegeben

könnte das so Funktionieren:

iptables -A FORWARD -m state --state NEW -i eth0 -p upd --dport 3389 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d vmnet8 --dport 3389 -j DNAT --to 192.168.154.128


Ich danke euch schon mal im Voraus.
Du machst da einen kleinen Denkfehler. Du darfst nicht die NAT-Schnittstelle nehmen, sondern nur das Host-Only-Netzwerk. Das bedeutet dann zunächst, dass die VM nur noch mit dem Host kommunizieren kann. Somit umgehst Du dann auch das VMware-NAT, was in Deinem Fall störend ist, da es sich nicht so konfigurieren läßt, wie Du es im Moment brauchst.

Da Du dann aber auf dem Host das IP-TABLES konfigurierst, leitet der Host ja die Anfrage weiter. Meistens ist die Host-Only-Schnittstelle /dev/vmnet1 (kann aber auch variieren).

Deine interne IP ändert sich mit der anderen Schnittstelle. Wenn Du nicht klar kommst, dann poste mit bitte noch mal die neue interne IP der VM und die externe IP, dann schreibe ich Dir die richtigen IP-Tables-Befehle für Deinen Fall.

Viele Grüße
Randy

maiki
Beiträge: 47
Registriert: 30.10.2004 22:16:48

Beitrag von maiki » 29.12.2007 18:25:45

hi,

also ich hab es jetz auf Host Only gesetzt.

Konfigurierte Adressen vom VMware Server für vmnet 192.168.216.1 255.255.255.0

Das XP kriegt die IP 192.168.216.129 255.255.255.0
Die Externe ip (ich denke mal du meinst eth0 ist 85.25.X.X)


Ich hoffe das waren die Infos die du brauchst.

RGupta
Beiträge: 6
Registriert: 02.03.2005 16:07:04
Wohnort: Wülfrath
Kontaktdaten:

Beitrag von RGupta » 30.12.2007 18:11:34

Zunächst mal habe ich gerade gesehen, dass Du in der ersten Codezeile von Deinem Posting am 29.12.2007 13:53:58 einen Dreher in dem Protokoll (udp) hast. Aber das nur am Rande.

Das ist jetzt keine komplette Firewall und die Policies solltest Du später auf jeden Fall anpassen. Zunächst wollen wir aber das NAT ans laufen bringen und soviele mögliche Fehlerquellen wie möglich ausschalten.

Wir löschen also erst mal alles was in den Ketten steht und setzen alle Policies auf ACCEPT. Später solltest Du zumindest die INPUT-Kette auf DROP setzen. Ich für meinen Teil habe auch die Ausgehene Kette sehr streng programmiert, damit nicht jeder Innenminister auf dem Rechner rumschnüffeln kann. Aber das ist ein anderes Thema ...

Code: Alles auswählen

iptables -F

iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -F -t nat

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Dann maskierst Du alle ausgehenden Pakete per SNAT mit der öffentlichen IP

Code: Alles auswählen

iptables -A POSTROUTING -t nat -o eth0 -s 192.168.216.129 -j SNAT --to 85.25.X.X
Dann leitestet Du alles was auf dem UDP-Port 3389 rein kommt an dem gleichen Port auf der VM weiter

Code: Alles auswählen

iptables -A PREROUTING -t nat -i eth0 -d 85.25.X.X -p udp --dport 3389 -j DNAT --to 192.168.216.129:3389
Da ich der Meinung bin, dass Du für RDP den TCP-Port benötigst, solltest Du auch noch den TCP-Port weiterleiten.

Code: Alles auswählen

iptables -A PREROUTING -t nat -i eth0 -d 85.25.X.X -p tcp --dport 3389 -j DNAT --to 192.168.216.129:3389
Wenn Du das TCP allerdings wirklich nicht brauchst, dann kannst Du das auch weglassen.

Getestet habe ich das jetzt nicht, aber es müßte eigentlich stimmen. Eine sehr ähnliche Firewall habe ich auf meinen Servern auch laufen, nur dass ich den RDP-Port aus Sicherheitsgründen nicht durchgeschliffen habe. Ich gehe da noch mal über einen OpenVPN-Tunnel, dann kann auch keine M$-Backdoor auf dem RDP-Port ausgenutzt werden (wer weiß ...)

Grundsätzlich möchte ich anmerken, dass IPTABLES auch im Kernel aktiviert sein muß, sonst geht das nicht. Ist normalerweise selbstverständlich, aber wenn der Provider das unterbinden will, dann kann er das evtl. so realisiert haben. Auf der anderen Seite hätte dann aber vermutlich auch das NAT von VMWare nicht funktioniert.

Viele Grüße
Randy

maiki
Beiträge: 47
Registriert: 30.10.2004 22:16:48

Beitrag von maiki » 30.12.2007 20:53:32

hmm Danke dir aber das Funktioniert nicht.

ich kann weder auf die VM connecten noch von ihr raus.

in dem anderen Beitrag hat es bei einem so funktioniert:
iptables -A FORWARD -s 172.16.180.127 -j ACCEPT
iptables -A FORWARD -p tcp --dport 3389 -d 172.16.180.127 -j ACCEPT
iptables -A FORWARD -d 172.16.180.127 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to 172.16.180.127:3389
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
aber das Funktioniert bei mir auch nicht.

RGupta
Beiträge: 6
Registriert: 02.03.2005 16:07:04
Wohnort: Wülfrath
Kontaktdaten:

Beitrag von RGupta » 31.12.2007 12:17:28

Es müßte eigentlich wirklich beides gehen. Das andere ist nur auf eine dynamische öffentliche IP zugeschnitten. Ich glaube der andere Beitrag ist nämlich auch von mir.

Ich kann mir auch nicht vorstellen, dass ich noch irgendwo einen Bug da rein gebaut habe, da ich die Codes fast 1:1 aus den Firewalls meiner Produktivserver rauskopiert habe.

Auf den Servern habe ich ganze Mini-Netze hinter dem Host-Only-Adaptern. Die Lösung ist auch wirklich ideal, weil mal Windows damit eine Linux-Firewall verpassen kann.

Ich würde vorschlagen, dass Du das einfach mal Zuhause Nachbaust. Dann siehst Du ja, ob es funktioniert oder nicht. Falls Du es Zuhause hinbekommst und auf dem Mietserver nicht, dann hat das wohl was mit dem Provider zu tun.

Evtl. kannst Du Dir auch mal die Kernel-Konfiguration anschauen. Wie ich bereits geschrieben habe, muss der Kernel das ganze auch wirklich unterstützen. In den Standardkerneln ist das immer mit einkompiliert, aber evtl. hat Dir der Provieder auch einen Strich durch die Rechnung gemacht. Dann könntest Du, wenn möglich einfach den Kernel mit den richtigen optionen neu kompilieren.

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 31.12.2007 14:39:04

Und nochmal, evtl. hilft hier eine Logging-Regel zu Beginn des Scripts weiter.

Code: Alles auswählen

iptables -A FORWARD -j LOG
Obwohl es eigentlich mit RGupta's Script klappen sollte. Viel Glück

maiki
Beiträge: 47
Registriert: 30.10.2004 22:16:48

Beitrag von maiki » 16.01.2008 16:26:23

Ich habs nun doch getan und eine zusätzliche IP beantragt diese dann auch über Plesk dem Eth0:1 zugewiesen

dann in der Plesk Firewall eine neue regel erstellt
#!/bin/sh
#
# Automatically generated by Plesk netconf
#

set -e

echo 0 > /proc/sys/net/ipv4/ip_forward
([ -f /var/lock/subsys/ipchains ] && /etc/init.d/ipchains stop) >/dev/null 2>&1 || true
(rmmod ipchains) >/dev/null 2>&1 || true
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -m state --state INVALID -j DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
/sbin/iptables -A OUTPUT -m state --state INVALID -j DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
/sbin/iptables -A FORWARD -m state --state INVALID -j DROP
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -A FORWARD -i lo -o lo -j ACCEPT
/sbin/iptables -t mangle -F
/sbin/iptables -t mangle -X
/sbin/iptables -t mangle -Z
/sbin/iptables -t mangle -P PREROUTING ACCEPT
/sbin/iptables -t mangle -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P INPUT ACCEPT
/sbin/iptables -t mangle -P FORWARD ACCEPT
/sbin/iptables -t mangle -P POSTROUTING ACCEPT
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -t nat -Z
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 8443 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 8880 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 465 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 995 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 993 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 106 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 5432 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 9008 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 9080 -j DROP

/sbin/iptables -A INPUT -p udp --dport 137 -j DROP
/sbin/iptables -A INPUT -p udp --dport 138 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 139 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 445 -j DROP

/sbin/iptables -A INPUT -p udp --dport 1194 -j ACCEPT

/sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT

/sbin/iptables -A INPUT -p icmp --icmp-type 8/0 -j ACCEPT

/sbin/iptables -A INPUT -j ACCEPT

/sbin/iptables -A OUTPUT -j ACCEPT

/sbin/iptables -A FORWARD -p udp -s XXXXXXXXXX -d 192.168.154.1 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -s XXXXXXXXXXX -d 192.168.154.1 -j ACCEPT

/sbin/iptables -A FORWARD -j DROP

echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /opt/psa/var/modules/firewall/ip_forward.active
chmod 644 /opt/psa/var/modules/firewall/ip_forward.active
#
# End of script
#
# /etc/network/interfaces - network interfaces configuration

# loopback interface

auto lo eth0
iface lo inet loopback

# ethernet interface

iface eth0 inet static
address XXXXXXXXX
network 85.25.XXX.XXX
netmask 255.255.255.0
broadcast 85.25.XXX.XXX
gateway 85.25.XXXX.XXX

# virtual interfaces

iface eth0:1 inet static
address 85.25.XXXX.XXX
netmask 255.255.255.192
auto eth0:1
Das sind die entsprechenden Zeilen in der iptables.
Trotzdem ich habe Vmware mit NAT/Briged/Host only Probiert ich komme nicht raus oder rein
Als Gateway IP habe ich in VMware die neue IP eingetragen.

Da man in Plesk nur Forwarding eintragen kann als neue regel, habe ich versucht die
/opt/psa/var/modules/firewall/firewall-active.sh manuell zu ändern mit folgenden Zeilen:
/sbin/iptables -A PREROUTING -d XXXXXXXXXXX -j DNAT --to-destination 192.168.154.1
/sbin/iptables -A POSTROUTING -s 192.168.154.1 -j SNAT --to-source XXXXXXXX
Beim manuellen starten der Firewall über ssh mit /etc/init.d/psa-firewall restart erhalte ich nur folgende Fehlermeldung:
psa-firewall: firewall successfully disabled
iptables: No chain/target/match by that name
psa-firewall: failed to apply firewall configuration
Kommentiere ich die zwei regeln wieder aus und startet die Firewall und ich erhalte keine Fehlermeldung.

Hat vielleicht jemand eine Idee was da schief geht?

Antworten