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

Моя текущая настройка следующая:
А) Физический сервер под управлением Windows 10, называемый хостом ниже
Б) Виртуальная машина под Hyper-V под управлением Ubuntu 18.04
C) Веб-приложение ERP (Odoo), развернутое на виртуальной машине Ubuntu 18.04
D) Более мягкий VPN-сервер, работающий на хосте (A, выше)
E) Модем / маршрутизатор Linksys, подключенный напрямую к Интернет-провайдеру, которому интернет-провайдер назначил частный IP-адрес (192.168.1.1) и распределяет соединение между всеми подключенными устройствами, создавая локальную сеть.

Текущая настройка полностью функциональна, и я могу получить доступ к веб-приложению (C, выше) в браузере хоста, набрав IP-адрес виртуальной машины (B, выше) и указав назначенный порт. Так что нет проблем здесь.

Я решил протестировать VPN-туннель в моей локальной сети, поэтому, когда хост (A, выше) подключен к локальной сети, я могу получить к нему доступ через VPN на любом другом устройстве в локальной сети. Так что здесь тоже нет проблем.

Однако, как только физический сервер подключен к локальной сети (либо через локальную сеть непосредственно к маршрутизатору, либо через wifi), маршрутизатор (E, выше) дает ему частный IP-адрес (192.168.1.33) и, понятно, что виртуальная машина назначил IP-адрес тому же маршрутизатору, как если бы это было уникальное устройство, подключенное к локальной сети (т. е. 192.168.1.34).

Я создал виртуальный коммутатор в Hyper-V, связанный с аппаратным сетевым адаптером хоста, чтобы дать виртуальной машине доступ в Интернет.

Проблема в том, что я, очевидно, могу подключиться к веб-приложению без какой-либо защиты и на любом устройстве, подключенном к локальной сети, просто набрав IP-адрес виртуальной машины и назначенного порта, независимо от того, подключено ли указанное устройство к Хост через VPN или нет.

Моя цель - получить доступ к веб-приложению, если и только если я подключен к хосту через VPN. Другими словами, как сделать виртуальную машину частью подсети на хосте?

Спасибо за вашу помощь, и я заранее извиняюсь за неправильное использование технических терминов.

PS: я могу предоставить больше информации, я просто не знаю, что вам нужно, чтобы иметь возможность помочь

1 ответ1

0

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

Я не могу реально дать вам пошаговый ответ, но некоторые общие указания заключаются в следующем.

Начните с создания двух дополнительных мостов на вашем хосте, которые не подключены к вашей локальной сети. Эти мосты должны соединять различные виртуальные машины только вместе. Вам понадобится новая виртуальная машина, устройство маршрутизатора, такое как VYOS или pfsense, для предоставления услуг DHCP, шлюза и брандмауэра в этих сетях. Теперь у вас есть три ЛВС: одна для ПК у вас дома, одна для ваших гостей VPN, а другая для ваших размещенных приложений. Все они также нуждаются в своих подсетях. 192.168.1.0/24 - ваш дом, 192.168.2.0/24 - ваша VPN-зона, а 192.168.3.0/24 - ваша DMZ. Вам нужно будет настроить статический IP-адрес для вашего виртуального маршрутизатора в домашней сети, например 192.168.1.2. Вам также понадобятся DHCP-серверы на вашем виртуальном маршрутизаторе для последних двух сетей. Теперь у вас есть три локальные сети, но они полностью изолированы. Никто не может общаться с кем-либо за пределами их локальной сети.

Вам нужно будет настроить конфигурацию маршрутизации, чтобы каждый мог общаться со всеми через локальные сети. Во-первых, ваш интернет-провайдер должен знать, что в вашей сети есть две локальные сети. Они называются «статическими маршрутами», в основном вы говорите своему маршрутизатору ISP, что для получения доступа к 192.168.1.0/24 и 192.168.2.0/24 необходимо установить связь с виртуальным маршрутизатором. Поскольку ваш виртуальный маршрутизатор находится во всех трех сетях, он автоматически знает, как получить доступ ко всем из них, но ему нужно знать, как подключиться к Интернету. Это еще один статический маршрут, который говорит, что «0.0.0.0/0» (весь интернет) подключен через 192.168.1.1. После того, как это будет сделано, каждый компьютер в вашей сети сможет пропинговать любой другой компьютер. Например, когда ПК в вашей домашней сети пытаются связаться с ПК, подключенными через VPN, они переходят к своему шлюзу, маршрутизатору ISP, который перенаправляет трафик на виртуальный маршрутизатор. Затем виртуальный маршрутизатор перенаправляет трафик на мост VPN, и ваше устройство VPN передает его в правильный VPN-туннель. Это здорово, но мы до сих пор не сделали то, что вы изначально просили. Каждый может по-прежнему общаться с веб-сервером.

Наконец, вам нужно установить правила брандмауэра, чтобы ограничить типы трафика, которые могут передаваться из локальной сети в локальную. Здесь вы разместите правила так, чтобы никто не мог получить доступ к DMZ, если только они не находятся в сети VPN, использующей порты 80/443 для связи с веб-сервером, или они не находятся в домашней сети, использующей порт 22 для подключения ssh к серверу.

Это много работы, но это правильный способ получить то, что вы хотите.

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