гостевая ОС VirtualBox через vpn

У меня есть гость Oracle Linux, на которой запущен веб-сервер в VirtualBox на хосте Windows 7. Мне нужно настроить сеть так, чтобы я мог делать 3 вещи:

  1. хост может подключаться к гостю через браузер и ssh.
  2. гость может общаться с другими серверами во внутренней сети через VPN хоста.
  3. гость может подключаться к внешнему Интернету

Я читал несколько отвечает и пробовал несколько конфигураций, и вот что происходит:

Bridged

  1. хост не может связаться с гостем
  2. гость не видит через VPN
  3. гость может подключаться к Интернету

NAT

  1. хост не может подключиться к гостю
  2. гость может видеть через VPN
  3. гость не может подключиться к Интернету

Только для хоста

не выполняются все 3 условия.

Сеть NAT

  1. хост не может подключиться к гостю
  2. гость может видеть через VPN
  3. гость не может подключиться к Интернету

Я также должен отметить, что иногда хост подключается через VPN, а другие ti mes он просто подключается непосредственно к корпоративной сети. При прямом подключении мостовой адаптер удовлетворяет всем трем условиям. В идеале должна быть конфигурация, удовлетворяющая всем трем условиям, независимо от того, есть ли VPN или прямое соединение.


У меня было в точности проблема и довел ее до решения, поэтому я рад подробно объяснить проблему и решение.

Без использования VPN

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

Без VPN это обычно решается путем создания двух сетевых адаптеров в конфигурации виртуальной машины.

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

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

Этот адаптер немного сложнее в настройке, чем первый, потому что он требует изменения глобальных сетевых настроек VirtualBox для настройки хоста -only адаптер (примечание: для этого требуются права администратора).

В VirtualBox перейдите в Файл -> Настройки -> Сеть . Щелкните вкладку Сети только для хоста и щелкните маленький значок + , чтобы добавить новый адаптер. Вам будет предложено повысить разрешения VirtualBox..

Заполнение вкладки Адаптер обязательно; он должен выглядеть примерно так (игнорируйте адаптер с пометкой # 2 ; он используется для чего-то не связанного):

Значения на вкладке сервера DHCP не являются обязательными. Если вы собираетесь жестко запрограммировать IP-адрес для этого адаптера в конфигурации гостевой сети, эти значения не нужны. Если, с другой стороны, вы собираетесь использовать DHCP, значения могут выглядеть примерно так:

Последний шаг в отношении настройки VirtualBox — вернуться в конфигурацию сети виртуальной машины и добавить второй адаптер, который ссылается на только что созданный адаптер только для хоста:

Теперь в гостевой операционной системе сеть должна быть настроена для использования этих два сетевых интерфейса.

В Debian или Ubuntu GNU/Linux настройка так же проста, как изменение /etc/network/interfaces , чтобы он выглядел следующим образом:

  # В этом файле описаны сетевые интерфейсы, доступные # в вашей системе, и способы их активации.  Дополнительную информацию см. В разделе интерфейсы (5). # Сетевой интерфейс с обратной связьюauto loiface lo inet loopback # Основной сетевой интерфейсauto eth0iface eth0 inet dhcp # Дополнительный сетевой интерфейсauto eth1iface eth1 inet статический адрес 192.168.56.101 netmask 255.255.255.0  

(пуристы могут предпочесть использовать вместо этого каталог /etc/network/interfaces.d , но это выходит за рамки данного объяснения)

Перезапустите сетевые службы гостевой машины или, проще говоря, перезапустите всю гостевую виртуальную машину, и все должно «просто работать».

На этом этапе вы должны иметь возможность проверить связь с гостевой виртуальной машиной. по адресу 192.168.56.101 и получите ответ (при условии, что программный брандмауэр не мешает).

Аналогичным образом, вы должны иметь возможность пинговать хост в 10.0.2.2 . Этот IP-адрес кажется «жестко закодированным» в реализации NAT VirtualBox или, по крайней мере, определен с помощью какой-то неочевидной директивы конфигурации, и имеется мало информации о его происхождении. Но, увы, «просто работает».

При такой конфигурации все три условия, указанные в вашем вопросе, выполнены.

Введите: VPN

Но вот в чем загвоздка. Внедрение VPN вызывает проблему остановки показа (ну, в зависимости от конкретной VPN и ее конфигурации).

Современные VPN могут использовать разделенное туннелирование, которое требуется для работы вышеупомянутой конфигурации VirtualBox в зависимости от ваши три требования. Из (хороших) соображений безопасности разделенное туннелирование часто отключается, и это как раз проблема в вашем (и моем) случае.

Когда вы подключаетесь к VPN, клиент VPN (Cisco AnyConnect Secure Мобильный клиент, 3.1. 02026, в моем случае) проверяет таблицы маршрутизации главного компьютера, запоминает их, а затем накладывает на них значения, которые обычно поступают из некоторого централизованно управляемого местоположения (т.е. даже с правами локального администратора невозможно изменить настройки) .

Вы можете самостоятельно изучить таблицы маршрутизации, открыв command.exe (в Windows):

  C: > route print  

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

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

Перед подключением к VPN:

  192.168.56.0 255.255.255.0 Подключенное соединение 192.168.56.1 266 192.168.  56.1 255.255.255.255 При подключении 192.168.56.1 266 192.168.56.255 255.255.255.255 При подключении 192.168.56.1 266 224.0.0.0 240.0.0.0 При подключении 192.168.56.1 266 255.255.255.255 255.255.255.255 При подключении 192.168.56.1 266   

После подключения к VPN:

  192.168.56.1 255.255.255.255 При подключении 192.168.56.1 266 224.0.0.0 240.0  .0.0 Подключенное 192.168.56.1 266 255.255.255.255 255.255.255.255 Подключенное 192.168.56.1 266  

Клиент VPN удаляет следующие строки:

  192.168.56.0 255.255.255.0 По ссылке 192.168.56.1 266 192.168.56.255 255.255.255.255 По ссылке 192.168.56.1 266  

Без эти две последние записи, хост и гость не могут общаться, и это именно то поведение, которое предполагалось, когда разделенное туннелирование отключено в конфигурации VPN.

Обычно эти две команды восстанавливают эти маршруты:

  C: > route ADD 192.168.56.0 MASK 255.255.255.0 192.168.56.1 METRIC 266C: > route ADD 192.168.56.255 MASK 255.255.255.255 192.168.56.1 METRIC 266  

Но VPN-клиент сохраняет бдительность: он перехватывает попытки изменить таблицу маршрутизации. Кажется, мой клиент разрешает вторую запись, но не первую. (И это может периодически проходить через оба; я не проверял это.)

Если ваша конкретная VPN и соответствующая конфигурация позволяют Чтобы включить раздельное туннелирование, оно обычно включается следующим образом:

После отключения от VPN исправные клиенты VPN восстановят таблицы маршрутизации, которые были на месте до подключения. Мой VPN-клиент, похоже, делает это надежно, что полезно, потому что это означает, что гостевую виртуальную машину не нужно перезапускать, когда я подключаюсь к VPN или отключаюсь от нее. В таких случаях вторичный адаптер виртуальной машины сбрасывается, но он автоматически и прозрачно повторно получает свой IP-адрес, почти немедленно восстанавливая связь между хостом и гостем.. Более того, подключения NFS между хостом и гостем (я использую подключения CIFS) остаются подключенными во время операций подключения/отключения VPN.

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


Как я использую свой хост Windows VPN на гостевой машине Linux

1-) Откройте настройки VPN. Укажите несколько номеров локальных портов.

2-) Откройте настройки вашей виртуальной машины. Убедитесь, что nertwork подключен к NAT. Затем нажмите «Расширенный» и «Перенаправление порта»

3-) Нажмите, чтобы добавьте правило и введите те же номера портов, которые вы указали в своей VPN

4-) Запустите вашу виртуальную машину. Зайдите в настройки сети. Выберите руководство и введите 10.0.2.2 (шлюз NAT виртуального бокса по умолчанию) для IP-адреса и портов, которые мы указали ранее.

5-) Откройте firefox, перейдите на whoer.net и проверьте, работает ли ваш VPN. ВСЕ ВЫПОЛНЕНО



Как сделать так, чтобы гости VirtualBox совместно использовали VPN-соединение хоста?

Вопрос

Когда я запускаю свою VPN на своем настольном компьютере ubuntu, который действует как маршрутизатор, подключенная подсеть теряет подключение к Интернету, но все еще доступна (LAN). В идеале я хотел бы знать, как разрешить подключенной подсети повторно получить доступ в Интернет путем маршрутизации через туннель VPN, когда VPN активен.

У меня следующая схема сети:

подсеть 172.16.0.0/20 на eth0 для моих виртуальных машин VirtualBox.

подсеть 192.168.0.0/24 на eth0: 0, которая подключается к шлюзу 192.168.0.1, имеющему доступ в Интернет.

Это показано в файле/etc/network/ файл интерфейсов:

  auto loiface lo inet loopback # Это подсеть, выделенная для статического адреса VBauto eth0iface eth0 inet 172.16.0.1 netmask 255.255.0.0 шлюз 192.168.0.164 dns-nameservers 8.8  .8.8 # обычный DHCP internetauto eth0: 0iface eth0: 0 inet статический адрес 192.168.0.164 netmask 255.255.255.0 dns-nameservers 8.8.8.8 gateway 192.168.0.1  

Пакеты на eth0 перенаправляются через eth0: 0 с маскировкой и нормальным подключением к Интернету. Однако, когда я запускаю свой VPN-туннель на этом маршрутизаторе, подключение к Интернету теряется для виртуальных машин в подсети eth0 (но остается для маршрутизатора)..

Ниже приведен вывод ifconfig , когда туннель активен:

  eth0 Link encap: Ethernet HWaddr  00: 1f: bc: 01: c3: ab адрес inet: 172.16.0.1 Bcast: 172.16.255.255 Маска: 255.255.0.0 адрес inet6: fe80 :: 21f: bcff: fe01: c3ab/64 Область действия: Link UP ТРАНСЛЯЦИОННАЯ РАСШИРЕННАЯ РАССЫЛКА MTU  : 1500 Метрика: 1 RX пакеты: 165426 ошибок: 0 отброшено: 0 переполнений: 0 кадров: 0 TX пакетов: 182601 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0 коллизий: 0 txqueuelen: 1000 байтов RX: 208264321 (208,2 МБ  ) TX bytes: 16660945 (16,6 MB) Прерывание: 16 eth0: 0 Link encap: Ethernet HWaddr 00: 1f: bc: 01: c3: ab inet addr: 192.168.0.164 Bcast: 192.168.0.255 Маска: 255.255.255.0 UP BROADCAST RUNNING  MULTICAST MTU: 1500 Метрика: 1 Прерывание: 16 lo Инкапция канала: Локальный адрес обратной петли: 127.0.0.1 Маска: 255.0.0.0 inet6 адрес: :: 1/128 Область: Хост UP LOOPBACK RUNNING MTU: 65536 Метрика: 1 Пакеты приема:  381963 ошибок: 0 отброшено: 0 переполнений: 0 кадров: 0 пакетов TX: 381963 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0 коллизий: 0 txqueuelen: 0 байтов приема: 22755054 (22  .7 МБ) Байт TX: 22755054 (22,7 МБ) tun0 Link encap: UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet  адрес: 10.8.0.10 PtP: 10.8.0.9 Маска: 255.255.255.255 UP PointOPOINT RUNNING NOARP MULTICAST MTU: 1500 Метрика: 1 RX пакеты: 0 ошибок: 0 отброшено: 0 переполнений: 0 кадров: 0 TX пакетов: 0 ошибок: 0 отброшено  : 0 переполнений: 0 носитель: 0 коллизий: 0 txqueuelen: 100 байтов приема: 0 (0,0 Б) байтов передачи: 0 (0,0 Б)  

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

  Флаги Genmask шлюза назначения Metric Ref Use Ifacedefault 10.8.0.9 128.0.0.0 UG 0 0  0 tun0default 192.168.0.1 0.0.0.0 UG 100 0 0 eth010.8.0.0 10.8.0.9 255.255.255.0 UG 0 0 0 tun010.8.0.9 * 255.255.255.255 UH 0 0 0 tun037.139.23.49 192.168.0.1 255.255.  255.255 UGH 0 0 0 eth0128.0.0.0 10.8.0.9 128.0.0.0 UG 0 0 0 tun0link-local * 255.255.0.0 U 1000 0 0 eth0172.16.0.0 * 255.255.0.0 U 0 0 0 eth0192.168.0.0 *  255.255.255.0 U 0 0 0 eth0  

и следующие , когда туннель неактивен :

  Destination Gateway Genmask Flags Metric Ref Use Ifacedefault 192.168.0.1 0.0.0.0 UG 100 0 0 eth0link-local * 255.255.0.0 U 1000 0 0 eth0172.16.0.0 * 255.255.0.0 U 0 0 0 eth0192.168.0.0 *  255.255.255.0 U 0 0 0 eth0  

Конфигурация Virtualbox для Vms:

Одна из виртуальных машин /etc/network/inter Faces file:

  # Петлевой сетевой интерфейсauto loiface lo inet loopback # Основной сетевой интерфейсauto eth0iface eth0 inet статический адрес 172.16.0.3 netmask 255.255.0.0 network 172.16.  0.0 широковещательный 172.16.255.255 шлюз 172.16.0.1 dns-nameservers 8.8.8.8  

Это не будет работать в мостовой сети настраивать. Из документации VirtualBox:

Мостовая сеть

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

Поскольку ваши виртуальные машины используют eth0 напрямую, они не знают об интерфейсе tun0 туннеля, проходящего через него. Вам потребуется другая конфигурация виртуальной сети.

У вас есть (среди прочего) следующие параметры:

  • Преобразование сетевых адресов (NAT) — безусловно, самое простое решение. VirtualBox будет преобразовывать виртуальные машины через NAT через любое подключение к Интернету, доступное для хоста. Это полностью прозрачно для виртуальных машин. Однако это исключает подключения хоста к виртуальным машинам или подключения между виртуальными машинами.

  • Используйте Сеть только для хоста для создания правильная подсеть, содержащая виртуальные машины и хост. Это не потребует изменений в конфигурации интерфейса, которая у вас теперь есть на виртуальных машинах, но вам нужно будет настроить хост в качестве шлюза и маршрутизатора, и сделать его NAT для виртуальных машин снаружи. (через его eth0 или tun0).

  • Объедините приведенное выше: дайте каждая виртуальная машина имеет два интерфейса, один для шлюза во внешний мир (через NAT VirtualBox), а другой подключен к локальной сети только для хоста .

  • Попробуйте экспериментальную конфигурацию VirtualBox NAT-сети . Обновление 2019: эта функция с тех пор усовершенствована: подключитесь к NAT хоста и выберите тип адаптера Паравиртуализированная сеть (virtio-net) .


Для VirtualBox с хостом Windows и гостевой системой linux (mint) перейдите на вкладку Network UI и установите для «Адаптер» => «Подключен к: NAT» и «Тип адаптера: Паравиртуализированная сеть». После этого запустите виртуальную машину, и вы сможете использовать сеть VPN.

12


После того, как я повсюду искал это решение, я наконец нашел рабочее решение, которое не требует большого количества изменений конфигурации и действительно простое. Используйте сеть NAT по умолчанию и введите это в терминале:

  VBoxManage modifyvm "VM name" --natdnsproxy1 on  

source : https://www.virtualbox.org/ticket/13993

2


Была такая же проблема. Вот как я это решил:

  1. Измените тип сети гостевой системы на «Только хост»
  2. Сделайте шлюзом по умолчанию для гостевой точки на IP-адрес хоста ifconfig vboxnet0 , чтобы найти его.

Последний шаг — маршрутизация пакетов, поступающих от vboxnet0, в вашу VPN.

Если вы маршрутизируете весь трафик через VPN:

  iptables -t nat -A POSTROUTING -s 192.168.5.0/24!  -d 192.168.5.0/24 -o tun0 -j SNAT --to-source 10.8.0.5  

Где 10.8.0.5 — ваш tun0 шлюз, а 192.168.5.0/24 — это диапазон вашей сети vboxnet0.

Если вы маршрутизируете только определенный трафик через VPN:

  iptables -t nat -A POSTROUTING -s 192.168.5.0/24!  -d 192.168.5.0/24 -o tun0 -j SNAT --to-source 10.8.0.5iptables -t nat -A POSTROUTING -s 192.168.5.0/24!  -d 192.168.5.0/24 -o wlan0 -j SNAT --to-source 192.168.43.95  

Где 10.8.0.5 — ваш tun0 шлюз, а 192.168.43.95 — это ваш wlan0 шлюз, а 192.168.5.0/24 — это ваш сетевой диапазон vboxnet0.

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


Вот некоторая полезная информация для бродячих ящиков, использующих хост vpn. Обычно вам нужно установить параметр natdnshostresolver1 Обратите внимание, что это НЕ работать при использовании настройки публичной_сети Vagrant.

  config.vm.provider: virtualbox do | vb |  # ---- другие параметры .... vb.customize ["modifyvm",: id, "--natdnshostresolver1", "on"] end  

http:// renier.morales-rodriguez.net/post/90674523562/sharing-host-vpn-with-virtualbox-guesthttp://blog.geekslikeshinythings.com/2016/05/sharing-host-vpn-with-vagrant-rob-allen. html

1

Оцените статью
clickpad.ru
Добавить комментарий