Restringir o acesso à rede do VirtualBox

1

Eu tenho uma VM do Windows XP em execução em um host Linux. Minha máquina Linux está conectada através do OpenVPN à rede da minha empresa, a qual eu não quero que a máquina Windows acesse. Um problema que achei que seria trivial de resolver parece um pouco mais difícil.

Minha idéia era limitar o acesso do VirtualBox através do iptables na máquina host, simplesmente largando tudo do guest - > vpn. No entanto, ao contrário do Xen, não consigo obter uma interface de ponte para aparecer no meu host. Estou faltando alguma coisa aqui? Alguém tem experiência em executar um firewall no host para a máquina convidada?

    
por pberlijn 29.12.2011 / 01:30

1 resposta

3

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.

    
por 29.12.2011 / 03:47