Posso controlar o acesso à rede dos convidados do VirtualBox via NAT no Linux?

0

Estou usando o VirtualBox como um provedor de VM para o Vagrant, onde, como administrador, instalei ambos como pacotes em um sistema CentOS 7.2. Em geral, confio na segurança do sistema operacional host, mas o objetivo dessas VMs é oferecer às pessoas a capacidade de fazer o root e experimentar o Linux em um ambiente razoavelmente seguro.

Eu coloquei na lista negra o módulo do kernel vboxnetflt , e agora você não pode iniciar uma VM com rede em ponte, o que deixa ao usuário a opção de redes que não se conectam fora do host, ou NAT. Ao usar NAT em uma VM, no entanto, não há interface no sistema host que eu possa usar como firewall, e gostaria de fornecer apenas uma lista de permissões de sistemas com os quais os convidados possam conversar.

(Obviamente, não há acesso de entrada de fora do host, mas são conexões de saída que eu estou preocupado aqui.)

Qual é a melhor maneira de restringir o que esses convidados podem conversar, já que não posso impor controle sobre o conteúdo do convidado?

    
por Iain Hallam 02.11.2016 / 13:24

1 resposta

0

Can I control VirtualBox guests' network access via NAT on Linux?

Não, você não pode: a análise de pacotes via tcpdump mostra claramente que os pacotes de saída não carregam traços de sua origem (do host / do convidado), então não há maneira fácil de distinguir os dois.

O que você pode fazer é usar adaptador somente host em vez de NAT, habilitar o servidor DHCP e adicionar a seguinte linha ao /etc/rc.local arquivo de cada VM (vou lhe dizer como fazer isso em um segundo):

ip route add default via 192.168.56.1

e para emitir os seguintes comandos no host:

 echo 1 > /proc/sys/net/ipv4/ip_forward
 iptables -t nat -A POSTROUTING -o YourMainInterface -j MASQUERADE

onde YourMainInterface = eth0, wlan0, ... , o que for.

Para produzir BMs idênticos, basta configurar one ao seu gosto, salvá-lo como um arquivo OVA via File - > Export Appliance , depois reimporte-o mudando os endereços MAC de todas as interfaces (uma opção simples e automática no momento importando o Appliance ).

Agora o host tem uma interface, chamada por padrão vbonet0 , na qual você pode ativar o firewall:

iptables -A OUTPUT -o vboxnet0 -p udp --dport 53 -j ACCEPT 
iptables -A OUTPUT -o vboxnet0 -d AllowedIpAddress -j ACCEPT 
iptables -P OUTPUT -o vboxnet0 DROP
    
por 02.11.2016 / 18:39