VirtualBox: создание изолированного веб-сервера, доступного из Интернета, с ограниченным доступом по локальной сети

283
silentsurfer

Я уверен, что на этот вопрос уже был дан ответ, но я не могу найти действенный ответ.

У меня есть виртуальная машина CentOS 7, работающая внутри VirtualBox 5.2.20, размещенная на компьютере с Windows 10 Pro. Я установил на гостевом сервере веб-сервер Apache и хотел бы сделать его доступным через Интернет (например, для обслуживания статической веб-страницы через порт 80). Однако я бы хотел, чтобы мой хост и другие устройства в моей локальной сети были защищены от гостя на случай, если он будет скомпрометирован.

На данный момент у меня есть два сетевых адаптера, настроенных в VB, один NAT для предоставления гостевого доступа в Интернет через Интернет и один хост-адаптер для локального тестирования веб-сервера. На данный момент переадресация портов не настроена, поэтому гость доступен только с моего хоста. Я понимаю следующее:

  • Если я использую NAT с переадресацией портов, мне придется открыть требуемые порты на моем хосте, что сделает его уязвимым для потенциальных эксплойтов (я хочу этого избежать)
  • Если я использую мостовой режим, я могу перенаправить порты непосредственно своему гостю, но тогда он также будет иметь доступ к другим хостам в моей локальной сети. Если моего гостя взломают, они будут в опасности.

Правильно ли мое понимание? Если да, как я могу настроить сеть, чтобы разрешить переадресацию портов только для моего гостя, не подвергая остальной части моей локальной сети этому?

0
Я думаю, что в нынешнем виде невозможно сделать то, что вы хотите. Я знаю, что в Linux вы могли бы использовать NAT, а затем с помощью IPTables вы могли бы только разрешить NAT-трафику выходить в сеть, и нигде больше, но даже тогда это сложно. djsmiley2k 5 лет назад 1
Все еще неохотно открывая любой порт на моем хосте, мне интересно, смогу ли я использовать вторую виртуальную машину в качестве брандмауэра (позади моего маршрутизатора), например, запустить pfSense, создать виртуальную DMZ с другой подсетью, чтобы отделить гостевую систему от моей? LAN. Есть какие-нибудь мысли о том, как этого можно достичь? silentsurfer 5 лет назад 0

1 ответ на вопрос

0
harrymc

Вам необходимо перенести порт на ваш компьютер, но вы можете направить этот порт напрямую на сетевой интерфейс, используемый виртуальной машиной, чтобы виртуальная машина могла оставаться изолированной. Это может работать с интерфейсом только для хоста, поэтому виртуальная машина не сможет взаимодействовать с остальной частью вашей сети.

Используемая команда будет выглядеть следующим образом, запущенная в командной строке с повышенными правами, при условии, что интерфейс только для хоста определен в 192.168.234.0/24:

netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.0.0.1 connectaddress=192.168.234.1 connectport=80 protocol=tcp 

У меня нет VirtualBox, поэтому я не могу экспериментировать; вам придется сделать эту часть.

Для получения дополнительной информации см. Статью Windows Netsh Interface Portproxy .

Спасибо, Гарри, я попробую. Не могли бы вы объяснить, почему проксирование портов более безопасно (с точки зрения хоста), чем, скажем, использование функции перенаправления портов VB? silentsurfer 5 лет назад 0
Ему не нужен NAT или Bridged, и это делается на уровне Windows. harrymc 5 лет назад 0
Это хороший момент, по крайней мере, он предоставляет переключатель для отключения доступа в Интернет через NAT для гостя, когда он не нужен для обновлений и т. Д. Но с точки зрения безопасности при открытии портов на хосте, есть ли разница между прокси и переадресацией портов через VB и NAT? silentsurfer 5 лет назад 0
Разница заключается в уровне изоляции виртуальной машины от вашей сети. Я не думаю, что NAT полностью делает изоляцию. harrymc 5 лет назад 0