vmware: Port Forwarding

1

Wer mittels VMWare eine Maschine betreibt, möchte vielleicht auch wenn die Maschne im Host-Only Netzwerk läuft gewisse Ports nach außen freischalten. Dazu gibt es zwei Lösungen.

Vmware eigenes Portforwarding

Hierbei wird der umzuleitende Port in der Datei /etc/vmware/vmnet8/nat/nat.conf eingetragen

[incomingtcp]# Use these with care - anyone can enter into your VM through these...
# FTP (both active and passive FTP is always enabled)
#      ftp localhost 8887
#8887 = 192.168.85.128:21
3389 = 192.168.85.128:3389
# WEB (make sure that if you are using named webhosting, names point to

Anschließend die virtuellen Netzwerkdienste neustarten

/usr/lib/vmware/net-services.sh restart

Das ganze funktionier relativ schnell, ist aber relativ langsam in der Datenübertragung.

Portforwarding mittels iptables

Hierbei werden die notwendigen Ports von der Physikalischen Maschine mittels iptables  an die virtuelle weitergeleitet. Dazu muss die virtuelle Maschine auch im Host-Only Netzwerk laufen.

Das Regelwerk für die Firewall würde folgendermaßen aussehen:

#!/bin/sh
INTIF="vmnet1" #Internes Interfacew (VMware)
EXTIF="eth0" #Externes Interface (Internet)
echo "Loading required stateful/NAT kernel modules..."
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
echo "    Enabling IP forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
# FWD: Allow all connections OUT and only existing and related ones IN
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
# Enabling SNAT (MASQUERADE) functionality on $EXTIF
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
iptables --table nat --append POSTROUTING -o vmnet1 -j MASQUERADE
iptables --table nat --append POSTROUTING -o eth0 -j MASQUERADE
iptables -P OUTPUT ACCEPT # output immer annehmen
iptables -P OUTPUT ACCEPT -t nat
# Outgoing
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
# NAT #
#######
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE # was rausgeht wird maskiert
#iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to $INTIP # -> vmnet1
iptables -t nat -I PREROUTING -p tcp -i eth0 --dport 443 -j DNAT --to 192.168.0.210:443

In diesem Beispiel würde der Port 443 an die virtuelle Maschine 192.168.0.210 weitegeleitet.

Sollten Sie noch keine Firewall im Einsatz haben, so sollten Sie an dieser Stelle kurz darüber nachdenken. Denn mit dem iptables Generator lässt sich innerhalb von 2 Minuten eine Firewall bauen, die auch für zwei Netze (intern/extern) konfigurierbar ist.

Teilen.

Über den Autor

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG, beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2012, LPIC 1-3) tätig. Abgeschlossenes Studium zum Master of Science der IT-Management an der FOM sowie zertifizierter Datenschutzbeauftragter. Aktuell im Projektmanagement tätig.

1 Kommentar

Antworten