Debian virtualbox vpn настройка
У меня есть гостевой сервер Oracle Linux с веб-сервером в VirtualBox на хосте Windows 7. Мне нужно настроить сеть так, чтобы я мог сделать 3 вещи:
- хост может подключиться к гостю через браузер и ssh
- гость может разговаривать с другими серверами во внутренней сети через VPN хоста
- гость может добраться до внешнего интернета.
Мостовой
- хост не может связаться с гостем.
- Гость не может видеть через VPN
- гость может добраться до интернета
NAT
- хост не может связаться с гостем.
- гость может видеть через VPN
- Гость не может связаться с Интернетом
Внутрикомпьютерная
все 3 условия не работают.
NAT-сети
- хост не может связаться с гостем.
- гость может видеть через VPN
- Гость не может связаться с Интернетом
Следует также отметить, что иногда хост подключается через VPN, а в других случаях он просто подключается непосредственно к корпоративной сети. Когда он подключен непосредственно, мостовой адаптер удовлетворяет всем трем условиям. В идеале, будет конфигурация, которая удовлетворяет всем 3 условиям независимо от того, существует ли VPN или прямое соединение.
1 ответ
У меня была точная та же проблема, и я увидел ее до разрешения, поэтому я рад подробно объяснить проблему и решение.
Без участия VPN
Важно понимать конфигурацию, которая требуется для удовлетворения ваших требований без с использованием VPN. Кроме того, эта информация предполагает, что никакой программный брандмауэр не вмешивается ни на хост, ни на гостя.
Без VPN это обычно решается путем создания двух сетевых адаптеров в конфигурации виртуальной машины.
Первый адаптер должен быть установлен в режим NAT , который позволяет гостю получать доступ к сетевым ресурсам (включая Интернет) через хост сетевой интерфейс.
Второй адаптер должен быть установлен в Host-only , который обеспечивает двунаправленную связь между хостом и гостем.
Этот адаптер немного сложнее настроить, чем первый, так как он требует изменения глобальных сетевых настроек VirtualBox для настройки адаптера только для хоста (обратите внимание: для этого требуются привилегии администратора).
В VirtualBox перейдите к File -> Preferences -> Network . Перейдите на вкладку Host-only Networks и нажмите маленький + , чтобы добавить новый адаптер. Вам будет предложено повысить разрешения VirtualBox.
Значения на вкладке сервера DHCP являются необязательными. Если вы намерены жестко закодировать IP-адрес этого адаптера в конфигурации сети гостя, то эти значения не нужны. Если, с другой стороны, вы собираетесь использовать DHCP, значения могут выглядеть примерно так:
Последним шагом в настройке VirtualBox является возврат в конфигурацию сети виртуальной машины и добавление второго адаптера, который ссылается только на только что созданный адаптер:
Теперь в гостевой операционной системе сеть должна быть настроена для использования этих двух сетевых интерфейсов.
В Debian или Ubuntu GNU /Linux конфигурация так же просто, как изменение /etc/network/interfaces , чтобы выглядеть так:
(пурист может предпочесть вместо этого использовать каталог /etc/network/interfaces.d , но это выходит за рамки этого объяснения)
Перезапустите гостевые сетевые службы или, проще говоря, перезапустите всю гостевую виртуальную машину, и все должно «просто работать».
На этом этапе вы должны будете выполнить команду ping гостевой виртуальной машины в 192.168.56.101 и получить ответ (если брандмауэр не работает вмешательства).
Аналогично, нужно иметь возможность ping хоста в 10.0.2.2 . Этот IP-адрес кажется «жестко закодированным» в реализации NAT VirtualBox или, по крайней мере, указан с помощью некоторой неочевидной директивы конфигурации, и информации о ее происхождении мало. Но, увы, «это просто работает».
Учитывая эту конфигурацию, выполняются все три условия, изложенные в вашем вопросе.
Введите: VPN
Но, вот и все. Введение VPN вызывает проблему остановки отображения (ну, в зависимости от конкретной VPN и ее конфигурации).
Когда вы подключаетесь к VPN, клиент VPN (клиент Cisco AnyConnect Secure Mobility Client, 3.1.02026, в моем случае) проверяет таблицы маршрутизации хост-компьютера, запоминает их, а затем перетаскивает их со значениями, которые обычно возникают из какое-то централизованное управление (т. е. даже с правами локального администратора, невозможно переопределить настройки).
Вы можете проверить таблицы маршрутизации для себя, открыв command.exe (в Windows):
Перед подключением к VPN таблица маршрутизации содержит важные записи, которые позволяют этой конфигурации VirtualBox работать правильно. Подключение к VPN приводит к удалению этих записей, что предотвращает связь между хостом и гостем.
(Есть много других записей, которые я здесь пропустил, поскольку они не имеют отношения к первопричине такого поведения.)
Перед подключением к VPN:
После подключения к VPN:
Клиент VPN удаляет следующие строки:
Без этих двух последних записей хост и гость не могут общаться, и это именно то, что нужно, когда разделение туннелирования отключено в конфигурации VPN.
Обычно эти две команды восстанавливали бы эти маршруты:
Но клиент VPN остается бдительным: он перехватывает попытки изменить таблицу маршрутизации. Мой клиент, кажется, разрешает вторую запись, но не первую. (И он может проходить через оба на периодической основе, я не проверял это.)
Если ваша конкретная VPN и ее сопутствующая конфигурация разрешают включить разделенное туннелирование, она обычно включается следующим образом:
Здравствуйте. Начну собственно с проблемы: Не получается настроить VPN через NAT на виртуальной машине Virtualbox. На хосте стоит Debian 4. Гостевая операционка winxp. Домашней локальной сети нет одна сетевушка etch1 подключена к интернету у нее статистический айпи, шлюз, DNS. Поставил vbox1.5.6. В настройках сети поставил NAT. Ip на ХР определяется по DHCP ______________________________ ipconfig
Настройка протокола IP для Windows
Подключение по локальной сети - Ethernet адаптер:
DNS-суффикс этого подключения . . : IP-адрес . . . . . . . . . . . . : 10.0.2.15 Маска подсети . . . . . . . . . . : 255.255.255.0 Основной шлюз . . . . . . . . . . : 10.0.2.2 ________________________________
Вот еще после установки VMware автоматом route -n на хосте добавился интерфейс:
172.16.156.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
А виртуалбукс никаких изменений туда не в нес, то есть там нигде не фигурирует IP 10.0.2.2.
Поставил VMware с той же оперционкой так же через NAT в VMware все работает и пинги есть и впн настривается(VMware временное решение необходимо натроить VBOX). Думаю дело в настройках VBoxManage, и читал мануал на английском не совсем понял в чем суть но похоже что бы VPN заработал надо туда еще протокол и порты прописать. Кто знает и сталкивался с такой проблемой, помогите пожалуйста разобраться. Спасибо.
VirtualBox в режиме NAT не эмулирует пинги. Они работать не будут.
Но вообще - если так и не заработает в режиме NAT - запускай в режиме bridge. Сложнее, но полезнее.
bridge пробовал настроить, но вот беда если поставить мост то виртуальная машина окажется в той же сети что и локалка(провайдер) и ей придется давайть новый реальный айпи. А у меня выделен всего 1 айпи и он жестко привязан к маку.
Вообще, выход из ситуации возможный в том что бы настроить мост с вирт машиной. Но я не знаю как это сделать с учетом моей конфигурации сети. У меня один компьютер одна сетевушка(eth1) подключена к локалке(это мой провайдер), провайдер выдает мне только 1 айпи и он связан с мак-адресом eth1. Я могу просто настроить мост но тогда инета из виртуальной машины не будет. Как так ухетриться и настроить мост что бы на такой конфигурации все работала подскажите пожалуйста.
Проблема решена. В вбоксе есть два основных режима сети это NAT и host/bridge. Первый на самом деле представляет собой лишь эмуляцию NAT работает в урезанном режиме как бы. Те не прпоускает пинги ВПН на нем не поднимешь. Работает только сеть то есть TCP/IP ттраф идет и все на этом. Тут как бы тупик с НАТОМ ниче больше нельзя сделать к сожалению. Я уже прочитал наверное все статьи в рунете на эту тему проблема распространенная и все решают ее поставив bridge. Но тогда получается что виртуалка является полноценной машиной в сети со всеми вытекающими. То есть ей не обходим дополнительный айпи. А у меня от провайдера выделен только 1 айпишник и он жестко привязан к маку. То есть второй вариант тоже не подходит. В мануале по Vbox написано только как мост делать. И написано так же где то про NAT что он не полноценный NAT. Собственно все что можно оттуда подчерпнуть. В общем 4 дня плясок с бубном сделали свое дело, собственно только сейчас вот я поднял там сеть нормальную. Решение такое значит если интересно: Я настроил линух как сервер локалки. Поставил на него свой шлюз NAT настроил iptables. Написал скрипт простенький который создает две сетевушки виртуальных и линкует их между собой. И вторую сетевушку виртулаьную подрубил к гостевой машине. Она выходит теперь через реальный шлюз просто который настроен на линухе. Теперь все работает. Проблема весьма распространенная, полностью подробное описание как настроить шлюз, iptables, и скрипт с поднятием виртуальных интерфейсов и настройки виртуальный машины выложу на днях, точно кому-нибудь да пригодиться.
У меня есть гость Oracle Linux, на котором установлен веб-сервер в VirtualBox на хосте Windows 7. Мне нужно настроить сеть так, чтобы я мог делать 3 вещи:
Мостовое
NAT
Внутрикомпьютерная
все 3 условия не выполняются.
NAT-сети
Следует также отметить, что иногда хост подключается через VPN, а иногда просто подключается напрямую к корпоративной сети. Когда он подключен напрямую, мостовой адаптер удовлетворяет всем 3 условиям. В идеале должна быть конфигурация, которая удовлетворяет всем трем условиям, независимо от того, есть ли VPN или прямое соединение.
1 ответ 1
У меня была точно такая же проблема, и я дошел до ее разрешения, поэтому я с удовольствием объясню проблему и ее решение в деталях.
Без привлечения VPN
Важно понимать конфигурацию, которая требуется для удовлетворения ваших требований без использования VPN. Кроме того, эта информация предполагает, что ни программный брандмауэр не мешает ни на хосте, ни на госте.
Без VPN это обычно решается путем создания двух сетевых адаптеров в конфигурации виртуальной машины.
Первый адаптер должен быть установлен в режим NAT , который позволяет гостю получать доступ к сетевым ресурсам (включая Интернет) через сетевой интерфейс хоста.
Второй адаптер должен быть установлен только для Host-only , что обеспечивает двунаправленную связь между хостом и гостем.
Этот адаптер немного сложнее в настройке, чем первый, потому что он требует изменения глобальных сетевых настроек VirtualBox для настройки адаптера только для хоста (примечание: для этого требуются права администратора).
В VirtualBox перейдите в File -> Preferences -> Network . Перейдите на вкладку « Host-only Networks » и нажмите маленький значок « + чтобы добавить новый адаптер. Вам будет предложено повысить разрешения VirtualBox.
Значения на вкладке DHCP сервера являются необязательными. Если вы собираетесь жестко закодировать IP-адрес для этого адаптера в конфигурации сети гостя, тогда эти значения не нужны. Если, с другой стороны, вы собираетесь использовать DHCP, значения могут выглядеть примерно так:
Последний шаг в настройке VirtualBox - вернуться к сетевой конфигурации виртуальной машины и добавить второй адаптер, который ссылается на только что созданный адаптер хоста:
Теперь в гостевой операционной системе сеть должна быть настроена на использование этих двух сетевых интерфейсов.
В Debian или Ubuntu GNU/Linux конфигурация так же проста, как изменение /etc/network/interfaces чтобы она выглядела следующим образом:
(пурист может предпочесть использовать каталог /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 Mobility Client, 3.1.02026) проверяет таблицы маршрутизации хост-компьютера, запоминает их, а затем передает их значениям, которые обычно поступают из некоторого централизованно- управляемое местоположение (т. е. даже с правами локального администратора невозможно изменить настройки).
Вы можете проверить таблицы маршрутизации самостоятельно, открыв command.exe (в Windows):
Перед подключением к VPN таблица маршрутизации содержит важные записи, которые позволяют этой конфигурации VirtualBox работать правильно. Подключение к VPN приводит к удалению этих записей, что предотвращает связь между хостом и гостем.
(Есть много других записей, которые я здесь пропустил, так как они не имеют отношения к основной причине такого поведения.)
Перед подключением к VPN:
После подключения к VPN:
VPN-клиент удаляет следующие строки:
Без этих двух последних записей хост и гость не могут обмениваться данными, и это именно то, что предполагается, когда раздельное туннелирование отключено в конфигурации VPN.
Обычно эти две команды восстанавливают эти маршруты:
Но VPN-клиент остается бдительным: он перехватывает попытки изменить таблицу маршрутизации. Мой клиент, кажется, разрешает вторую запись, но не первую. (И это может периодически отменять оба варианта; я не проверял это.)
Если ваша конкретная VPN и ее сопутствующая конфигурация позволяют включить раздельное туннелирование, оно обычно включается следующим образом:
После отключения от VPN клиенты VPN с хорошим поведением восстановят таблицы маршрутизации, которые были до подключения. Кажется, мой VPN-клиент делает это надежно, что выгодно, потому что это означает, что гостевую виртуальную машину не нужно перезапускать, когда я подключаюсь или отключаюсь от VPN. В таких случаях вторичный адаптер виртуальной машины сбрасывается, но он автоматически и прозрачно повторно получает свой IP-адрес, почти немедленно восстанавливая связь между хостом и гостем. Более того, NFS-монтирования между хостом и гостем (я использую CIFS-монтирования) остаются подключенными при операциях подключения / отключения VPN.
В том маловероятном случае, если ваш VPN разрешает раздельное туннелирование, может быть достаточно просто включить его, и в этом случае я хотел бы услышать от вас, действительно ли "все просто работает".
Продолжаем знакомство с сетевыми настройками виртуальных машин. Во второй части мы рассмотрим настройку различных типов сетевых соединений, начиная с установки ОС и заканчивая настройкой сетевых интерфейсов установленной системы.
Для использования связки NAT/Сеть NAT + Виртуальный адаптер хоста, необходимо отключить DHCP для устройства VirtualBox Host-Only Ethernet Adapter. Отключение DHCP сервера обеспечивает статические ip-адреса для машин использующих VirtualBox Host-Only Ethernet Adapter.
Откройте настройки (Ctrl+G) и перейдите в раздел "Сеть", вкладка "Виртуальные сети хоста" и выберите устройство VirtualBox Host-Only Ethernet Adapter. Кликните по нему два раза, для открытия настроек устройства. В открывшемся окошке перейдите на вкладку "DHCP сервер" и уберите галочку со значения "Включить сервер".
При использовании NAT + Виртуальный адаптер хоста, больше ничего настраивать не нужно и можно переходить к установке системы.
В случае использования Сеть NAT + Виртуальный адаптер хоста, помимо отключения DHCP, необходимо добавить Сеть NAT и отключить DHCP и для нее.
Откройте настройки и перейдите в раздел "Сеть". На вкладке "Сети NAT" добавьте сеть, кликнув по зеленой иконке с плюсиком, в открывшемся окне снимите галочку со значения "Поддержка DHCP".
NAT + Виртуальный адаптер хоста в Ubuntu & Debian
Окно выбора сетевого интерфейса для первоначальной настройки.
Выбираем enp0s3 или eth0 в зависимости от системы, это будет первый сетевой адаптер работающий в NAT режиме. Система автоматически задаст конфигурацию интерфейса.
После установки системы редактируем конфигурационный файл сетевых интерфейсов.
В файле есть конфигурация enp0s3/eth0 для режима NAT.
Интерфейс настроен на автоматическое получение адреса (dhcp), но поскольку это NAT, то адрес будет только один - 10.0.2.15/24. Здесь оставляем все как есть.
Добавим конфигурацию второго интерфейса - enp0s8/eth1, работающего в режиме Виртуального адаптера хоста.
Значение auto указывает что интерфейс стартует при запуске системы, static что назначенный ip-адрес будет постоянным, netmask задает маску подсети.
Файл должен выглядеть так.
Запустим интерфейс для применения настроек.
NAT + Виртуальный адаптер хоста в CentOS
При использовании NAT + Виртуальный адаптер хоста во время установки, в разделе "СЕТЬ И ИМЯ УЗЛА" будут доступны два сетевых интерфейса.
Выбираем первый адаптер enp0s3 работающий в NAT режиме. Его достаточно просто включить и все настройки будут применены автоматически.
Выбираем enp0s8 и нажимаем "Настроить" в нижнем правом углу окна. Переходим на вкладку "Параметры IPv4" и выбираем ручную настройку. Нажимаем "Add" и вводим значения ip-адреса - 192.168.56.100 и маски подсети - 24. После чего нажимаем "Сохранить".
Включаем адаптер чтобы применить настройки.
После настройки активным будет первый интерфейс, второй будет отключен.
После установки редактируем файл интерфейса enp0s8.
Изменяем значение параметра ONBOOT с no на yes. Если этого не сделать, то интерфейс не будет запускаться при загрузке системы и его придется запускать вручную.
Запускаем интерфейс enp0s8.
Сеть NAT + Виртуальный адаптер хоста в Ubuntu & Debian
Окно выбора сетевого интерфейса для первоначальной настройки.
Выбираем enp0s3 или eth0, при попытке автоматической настройки интерфейса система выдаст предупреждение.
Системе не удалось получить настройки от DHCP сервера. Нажмите <Продолжить> и выберите ручную настройку сети.
Вводим ip-адрес с указанием длины маски подсети - 10.0.2.5/24 и нажимаем <Продолжить>.
Исходя из указанного ip-адреса система автоматически подставит значение шлюза, нажимаем <Продолжить>.
Адреса DNS серверов тоже можно оставить по умолчанию.
Редактируем конфигурационный файл интерфейсов.
В файле уже есть конфигурация первого интерфейса enp0s3/eth0, работающего в режиме Сеть NAT.
Добавим конфигурацию второго интерфейса - enp0s8/eth1 - Виртуальный адаптер хоста.
Значение auto указывает что интерфейс будет стартовать при запуске системы, static указывает что назначенный ip-адрес будет постоянным, netmask задает маску подсети.
Файл должен выглядеть так.
Запустим интерфейс для применения настроек.
Сеть NAT + Виртуальный адаптер хоста в CentOS
При использовании Сеть NAT + Виртуальный адаптер хоста во время установки, в разделе "СЕТЬ И ИМЯ УЗЛА" будут доступны два сетевых интерфейса.
Выбираем первый адаптер enp0s3 работающий в Сеть NAT режиме. Для ручной настройки нажимаем кнопку "Настроить" в нижнем правом углу окна. В открывшемся окне переходим на вкладку "Параметры IPv4" и выбираем ручную настройку. Нажимаем кнопку "Add" и вводим значения ip-адреса - 10.0.2.5 и маски подсети - 24. Значения шлюза и DNS-сервера - 10.0.2.1, после чего нажимаем кнопку "Сохранить".
Включаем адаптер для применения настроек.
Выбираем второй адаптер enp0s8 работающий в режиме Виртуального адаптера хоста. Для ручной настройки нажимаем кнопку "Настроить" в нижнем правом углу окна. Переходим на вкладку "Параметры IPv4" и выбираем ручную настройку. Нажимаем кнопку "Add" и вводим значения ip-адреса - 192.168.56.100 и маски подсети - 24. Нажимаем "Сохранить".
Включаем адаптер для применения настроек.
После настройки активным будет первый интерфейс, второй будет отключен.
Редактируем файл интерфейса enp0s8.
Изменяем значение параметра ONBOOT с no на yes. Если этого не сделать, то интерфейс не будет запускаться при загрузке системы и его придется запускать вручную.
Запускаем интерфейс enp0s8.
NAT/Сеть NAT + Проброс портов
С помощью проброса портов Virtualbox делает доступными службы к которым проброшен порт. Для приложений хост-системы все выглядит так, будто службы работают на той же машине что и они сами. Для каждой службы надо пробрасывать отдельный порт.
Рассмотрим проброс порта на примере SSH клиента PuTTY. В сетевых настройках виртуальной машины, на вкладке "Адаптер 1" нажимаем "Проброс портов". В открывшемся окне добавляем правило, щелкнув по зеленой иконке с плюсиком.
Правила проброса портов пишутся следующим образом:
- Имя - может быть любым, чтобы не путаться я называю правило именем протокола или службы, работу которого оно обеспечивает.
- Протокол - указывается протокол который использует служба.
- Адрес хоста - под адресом хоста подразумевается адрес машины на который будут идти запросы на соединение. Обычно указывается localhost 127.0.0.1
- Порт хоста - порт хост-системы на который поступают запросы на соединение. От 50000 и выше идут свободные порты.
- Адрес гостя - адрес виртуальной машины в NAT сети - 10.0.2.15
- Порт гостя - порт виртуальной машины на котором работает нужная служба. Поскольку SSH работает на 22 порту, то указываем 22 порт.
Проверим порт и подключимся к виртуальной машине.
Проброс портов для Сеть NAT ничем не отличается от NAT, только производится в настройках самой сети.
Переходим в настройки программы, раздел "Сеть", вкладка "Сети NAT". Открываем настройки сети и нажимаем кнопку "Проброс портов". Все остальное происходит точно также как при настройке для NAT режима.
Сетевой мост в Ubuntu & Debian
Настройка адаптера в режиме сетевого моста происходит автоматически в процессе установки ОС. Если поддержка DHCP отключена, то соединение настраивается вручную.
<Продолжить> - Настроить сеть вручную.
Вводим ip-адрес и маску подсети исходя из рабочего диапазона вашего маршрутизатора.
Основываясь на значении ip шлюз будет указан автоматически.
Указываем DNS сервер. Можно оставить по умолчанию (совпадает со значением шлюза) или вводим свои значения.
После установки системы проверим настройки интерфейса.
На примере Ubuntu содержание файла /etc/network/interfaces должно быть примерно следующим, в Debian сетевой интерфейс будет называться eth0.
Сетевой мост в CentOS
Настройка адаптера в режиме сетевого моста происходит автоматически в процессе установки ОС. Если поддержка DHCP отключена, то соединение настраивается вручную.
Для автоматической настройки интерфейса его достаточно просто включить и настройки будут применены автоматически.
Для ручной настройки интерфейса нажмите кнопку "Настроить" в нижнем правом углу окна. Переходим на вкладку "Параметры IPv4" и выбираем ручную настройку. Нажимаем "Add" и вводим значения ip-адреса, шлюза, маски подсети и DNS-сервера. Нажимаем "Сохранить".
Включаем интерфейс чтобы применить настройки.
После установки проверим настройки интерфейса.
Читайте также: