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.

    Ein Kommentar

    Leave A Reply