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.