Я использую VirtualBox в качестве поставщика виртуальных машин для Vagrant, где в качестве администратора я установил оба пакета в системе CentOS 7.2. Я широко доверяю безопасности хост-ОС, но цель этих виртуальных машин - дать людям возможность получить root-права и экспериментировать с Linux в довольно безопасной среде.

Я занес в черный список модуль ядра vboxnetflt , и теперь вы не можете запустить виртуальную машину с мостовой сетью, что оставляет пользователю возможность выбора сетей, которые не подключаются вне хоста или NAT. Однако при использовании NAT на виртуальной машине в хост-системе нет интерфейса, который я могу использовать для межсетевого экрана, и я хотел бы предоставить только белый список систем, с которыми могут общаться гости.

(Очевидно, что нет входящего доступа снаружи хоста, но это исходящие соединения, о которых я беспокоюсь здесь.)

Как лучше всего ограничить то, с чем могут разговаривать эти гости, учитывая, что я не могу установить контроль над содержимым гостя?

1 ответ1

0

Могу ли я контролировать доступ к сети гостей VirtualBox через NAT в Linux?

Нет, вы не можете: анализ пакетов через tcpdump ясно показывает, что исходящие пакеты не имеют следов своего происхождения (от хоста / от гостя), поэтому нет простого способа отличить их.

Что вы можете сделать, это использовать адаптер «Только хост» вместо NAT, включив DHCP-сервер, а затем добавить следующую строку в файл /etc/rc.local каждой виртуальной машины (я расскажу вам, как это сделать в сек):

ip route add default via 192.168.56.1

и выполнить следующие команды на хосте:

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

где YourMainInterface = eth0, wlan0, ..., что угодно.

Чтобы создать идентичные BM, просто настройте один по своему вкусу, сохраните его в виде файла OVA через File -> Export Appliance, а затем повторно импортируйте его, изменив MAC-адреса всех интерфейсов (одна простая, автоматическая опция во время импорта Appliance).

Теперь у хоста есть интерфейс, который по умолчанию называется vbonet0, на котором вы можете активировать брандмауэр:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .