Eu tenho uma configuração semelhante em execução. Você não mencionou sua distribuição Linux, mas estou usando o Ubuntu Linux 11.10. Qualquer outra distribuição deve funcionar de maneira bastante semelhante.
Até onde eu sei, a maneira como estou fazendo isso ainda é documentada pelo VirtualBox, mas não é mais o método padrão para conectar a rede do VirtualBox ao host. Basicamente, você precisa instalar o uml-utilities
(parte do Linux no modo de usuário). Em seguida, adicione uma interface ao /etc/network/interfaces
, algo assim:
auto vbox1
iface vbox1 inet static
address 192.168.1.1
netmask 255.255.255.0
tunctl_user virtualbox
Depois de trazer essa interface para cima, você pode vincular o VirtualBox a ela. Você não deseja vincular essa interface a qualquer outra coisa (como eth0
) - caso contrário, sua VM teria novamente acesso total à rede. Em vez disso, você deseja rotear o tráfego entre essa rede e qualquer outro recurso permitido - e, nesse caso, negar o acesso à sua rede VPN. Observe que isso requer que net.ipv4.ip_forward=1
seja especificado em algo como /etc/sysctl.conf
.
Estas são as partes específicas da minha configuração de iptables
relacionadas à rede restrita do VirtualBox. Você pode querer ajustar isso às suas necessidades específicas, mas isso deve lhe dar um bom começo:
# Must be able to access DNS running on the host itself (everything else is denied elsewhere).
iptables -A INPUT -i vbox1 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i vbox1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i vbox1 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow access out to the Internet.
iptables -A FORWARD -i vbox1 -o $WAN_IF -j ACCEPT
Contanto que você defina WAN_IF
para sua conexão com a Internet (e adicione regras semelhantes para outras Interfaces ou endereços permitidos), mas não adicione um caminho permitido à sua VPN, isso deve atender aos seus requisitos.