Primeiro, configure uma rede privada entre as máquinas virtuais. Isso é chamado de "somente host" pelo VirtualBox. O resultado é que o host e cada uma das máquinas virtuais obtém um IP privado na mesma sub-rede.
Agora, configure um servidor VPN no host para permitir que seus usuários acessem essa rede privada. Aqui você tem duas opções:
- Use uma VPN da Camada 2 (TAP, Ethernet) e, no servidor, conecte a interface TAP da VPN virtual com a interface somente host do VirtualBox. Isso dará aos usuários acesso direto no nível da Ethernet, equivalente a estar conectado diretamente à rede privada, como as VMs convidadas. Cada usuário recebe um endereço IP privado na mesma sub-rede da rede "somente host".
Você só deve usar essa abordagem se precisar do acesso da Camada 2 às VMs. É inseguro, pois permite que os usuários emitam ataques de Camada 2 (ver envenenamento por ARP). Observe que o acesso à Camada 2 é necessário se você quiser o compartilhamento de arquivos simples do Windows com a detecção automática de hosts.
- Use uma VPN da camada 3 (TUN, IP). Use uma sub-rede separada (privada) para a rede VPN (clientes, interface TUN do servidor). Faça o host encaminhar pacotes entre a rede VPN e a rede "somente host". Os usuários também precisam de uma rota para a rede "somente host" através da interface VPN virtual TUN, e as VMs precisarão de uma rota para a rede VPN através das interfaces emuladas da rede "somente host".
No que diz respeito ao software VPN, existem muitas opções. O OpenVPN pode fazer a Camada 2 e a Camada 3. Para a Camada 2, você também pode usar meu próprio software BadVPN .
Observe que o Windows não é uma boa opção para um sistema operacional host no que diz respeito aos recursos de rede. O Linux é muito mais poderoso a esse respeito.