У меня работает аналогичная установка. Вы не упомянули свой дистрибутив Linux, но я использую Ubuntu Linux 11.10. Любой другой дистрибутив должен работать очень похожим образом.
Насколько я знаю, то, как я это делаю, до сих пор немного документировано VirtualBox, но больше не является их методом по умолчанию для подключения сети VirtualBox к хосту. По сути, вам нужно установить uml-utilities
(часть Linux в пользовательском режиме). Затем добавьте интерфейс в /etc/network/interfaces
, примерно так:
auto vbox1
iface vbox1 inet static
address 192.168.1.1
netmask 255.255.255.0
tunctl_user virtualbox
После включения этого интерфейса вы можете подключить к нему VirtualBox. Вы не хотите связывать этот интерфейс с чем-либо еще (например, eth0
), иначе ваша виртуальная машина снова получит полный доступ к сети. Вместо этого вы хотите направить трафик между этой сетью и любыми другими разрешенными ресурсами - и в этом случае запретить доступ к вашей сети VPN. Обратите внимание, что для этого требуется, чтобы net.ipv4.ip_forward=1
был указан в файле типа /etc/sysctl.conf
.
Это особые части моей настройки iptables
, относящиеся к сети с ограниченным доступом VirtualBox. Возможно, вы захотите настроить это под ваши конкретные потребности, но это должно дать вам хорошее начало:
# 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
Пока вы устанавливаете WAN_IF
для вашего интернет-соединения (и добавляете аналогичные правила для других разрешенных интерфейсов или адресов), но не добавляете разрешенный путь к вашей VPN, это должно отвечать вашим требованиям.