Сначала настройте частную сеть между виртуальными машинами. VirtualBox называет это «только для хоста». В результате хост и каждая виртуальная машина получают частный IP-адрес в одной подсети.
http://www.virtualbox.org/manual/ch06.html#network_hostonly
Теперь настройте VPN-сервер на хосте, чтобы предоставить пользователям доступ к этой частной сети. Здесь у вас есть два варианта:
- Используйте VPN уровня 2 (TAP, Ethernet) и на сервере соедините интерфейс TAP виртуального VPN с интерфейсом VirtualBox только для хоста. Это даст пользователям прямой доступ на уровне Ethernet, что эквивалентно подключению напрямую к частной сети, например, к гостевым виртуальным машинам. Каждому пользователю предоставляется частный IP-адрес в той же подсети, что и сеть «только для хоста».
Вы должны использовать этот подход только в том случае, если вам нужен доступ уровня 2 к виртуальным машинам. Это небезопасно, поскольку позволяет пользователям проводить атаки 2-го уровня (см. Отравление ARP). Обратите внимание, что доступ на уровне 2 необходим, если вы хотите простой общий доступ к файлам в Windows с автоматическим определением хостов.
- Используйте VPN уровня 3 (TUN, IP). Используйте отдельную (частную) подсеть для сети VPN (клиенты, интерфейс TUN сервера). Сделайте пакеты пересылки хоста между сетью VPN и сетью "только хост". Пользователи также нуждаются в маршруте к сети «только для хоста» через виртуальный интерфейс VPN TUN, а виртуальным машинам потребуется маршрут к сети VPN через эмулируемые интерфейсы сети «только для хоста».
Что касается программного обеспечения VPN, есть много вариантов. OpenVPN может работать как на уровне 2, так и на уровне 3. Для Layer 2 вы также можете использовать мое собственное программное обеспечение BadVPN.
Обратите внимание, что Windows не является хорошим выбором для хост-ОС с точки зрения сетевых возможностей. В этом отношении Linux гораздо мощнее.