Isso pode ser feito no VirtualBox.
Você deve escolher uma conexão que permita o uso de iptables para controlar os pacotes. Assim, nem o NAT nem o Bridge farão, porque não criam um NIC acessível ao usuário. Você deve usar Rede somente host , que cria no host uma interface acessível pelo usuário chamada vboxnet0.
Para configurá-lo, File - > Preferências - > Rede - > Rede apenas de host - > Sinal de mais para criá-lo, então chave de fenda - > Servidor DHCP, ative o servidor DHCP. Salvar configurações, inicie a VM.
Agora, no convidado, você precisa definir o host como seu gateway: o IP padrão do host é 192.168.56.1. Use o Google para encontrar instruções sobre como fazer isso no Windows. E, possivelmente, você pode ter que definir os servidores DNS.
No host, todas essas instruções como sudo:
1) Ativar o encaminhamento de IP:
echo "1" > /proc/sys/net/ipv4/ip_forward
2) Emita as seguintes regras iptables :
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables -A FORWARD -m iprange --dst-range 192.168.1.2-192.168.1.254 -j DROP
iptables -I FORWARD -m iprange --src-range 192.168.1.2-192.168.1.254 -j DROP
A primeira regra permite acesso à internet da VM; o segundo par bane a VM de acessar a LAN, exceto, é claro, o roteador e o endereço de broadcast.
As regras acima assumem que o host está conectado via eth0 , que sua rede é 192.168.1.0/24 , que seu roteador e endereço de broadcast são 192.168.1.1 e 192.168.1.255, respectivamente. Se não estiverem, altere-as de acordo.