home start up prev next

7.4. Удаленные виртуальные машины (VRDP)

VirtualBox, графический интерфейс пользователя, содержит встроенный сервер VirtualBox Remote Desktop Protocol (VRDP). Он позволяет вам увидеть графический вывод виртуальной машины и управлять ею удаленно на любом другом компьютере, так если бы виртуальная машина выполнялась на этом удаленном компьютере.

VRDP является обратно совместимым расширением Microsoft's Remote Desktop Protocol (RDP). Обычно с удаленной машины посылается обновление графического вывода и звука клиенту, а события клавиатуры и мыши посылаются серверу. В результате вы можете использовать стандартных клиентов RDP для управления удаленными ВМ.

В VirtualBox , графическом интерфейсе пользователя, VRDP сервер по умолчанию отключен, но возможно его простое включение на вкладке "Дисплей" окна настройки ВМ (см. Раздел 3.7.3, “Настройка дисплея” ) или с помощью VBoxManage :

VBoxManage modifyvm <vmname> --vrdp on

Если вы используете VBoxHeadless (описывается далее), сервер VRDP автоматически включается, т.к. VBoxHeadless не имеет собственного графического вывода.

7.4.1. RDP клиенты сторонних разработчиков

Вы можете использовать любой стандартный клиент RDP для подключения к удаленной виртуальной машине. В любом случае, вы должны указать IP адрес вашей хост системы (не виртуальной машины!) - использующейся как сервер к которому подключаются, а также номер порта который использует RDP сервер. По умолчанию , сервер VRDP использует стандартный RDP порт TCP 3389 . Номер порта может быть изменен на вкладке "Дисплей" окна настроек или с помощью параметра --vrdpport в команде VBoxManage modifyvm ; см. Раздел 8.5, “VBoxManage modifyvm”. Вам необходимо изменить порт по умолчанию если вы использует более одного VRDP сервера, поскольку порт может быть занят только одним сервером в одно и то же время; вам возможно также необходимо изменить его при использовании хостов Windows, так как порт по умолчанию может использоваться также собственным RDP сервером Windows. Хорошим выбором будут номера портов с 5000 до 5050, которые обычно нигде не используются.

Здесь приведены примеры использования наиболее популярных RDP клиентов:

  • В Windows, вы можете использовать Microsoft Terminal Services Connector ( mstsc.exe ) который поставляется с Windows. Вы можете запустить его с помощью диалога "Run" (нажмите одновременно клавишу Windows и "R") и введите "mstsc". Вы можете также найти его через меню "Start" -> "All Programs" -> "Accessories" -> "Remote Desktop Connection". Если вы использует диалог "Run", вы можете указать параметры соединения:

    mstsc 1.2.3.4[:port] 

    Замените "1.2.3.4" IP адресом хоста и 3389 номером порта, если вы используете другой.

  • В других системах, вы можете использовать стандартную открытую программу rdesktop. Она содержится в большинстве дистрибутивах Linux, но VirtualBox также поставляется с модифицированным вариантом программы rdesktop для поддержки удаленного USB (см. Раздел 7.4.4, “Remote USB” ниже).

    Для rdesktop, используйте командную строку, так как указано ниже:

    rdesktop -a 16 -N 1.2.3.4:3389

    Как говорилось для клиента Microsoft выше, замените "1.2.3.4" IP адресом хоста, и 3389 другим номером порта если необходимо. Параметр -a 16 указывается для использования глубины цвета в 16 бит на пиксель - который мы рекомендуем. (Для лучшей производительности, после установки гостевой операционной системы, вам нужно установить глубину цвета дисплея тем же самым значением). Параметр -N включает использование клавиши NumPad.

  • Если вы работаете в среде KDE, то вы отдадите предпочтение krdc , KDE RDP клиенту. Команда будет выглядеть следующим образом:

    krdc --window --high-quality rdp:/1.2.3.4[:3389]

    Еще раз напомним, замените "1.2.3.4" IP адресом хоста и 3389 номером порта, если вы используете другой. Элемент "rdp:/" требуется для переключения krdc в режим использования RDP.

7.4.2.  VBoxHeadless, только VRDP сервер

Встроенный VRDP сервер VirtualBox GUI позволяет управлять удаленными виртуальными машинами, однако не совсем удобно иметь запущенный VirtualBox если вы не хотите видеть ВМ на дисплее. В частности, если у вас имеется работающий сервер, единственной целью которого является работа в качестве хост системы и все ВМ должны управляться удаленно через VRDP, то не смысла им работать в пользовательском графическом интерфейсе на сервере -- особенно на Linux или Solaris хостах, VirtualBox поставляется с необходимыми для его работы библиотеками Qt и SDL, в которых нет необходимости если вы не имеете установленной на сервере X Window.

Поэтому VirtualBox постовляется еще с одним пользовательским интерфейсом называемым VBoxHeadless , который не производит графический вывод на хосте - вместо этого он отправляет данные через VRDP. [ 20 ]

Для запуска виртуальной машины с помощью VBoxHeadless, вы имеете две возможности:

  • Вы можете использовать команду VBoxManage startvm <vmname> --type vrdp . Дополнительный параметр --type заставляет ядро VirtualBox использовать интерфейс VBoxHeadless.

  • Рекомендуемый способ, однако, использовать VBoxHeadless напрямую:

    VBoxHeadless --startvm <uuid|name>

    Этот способ рекомендуется так как когда запускается интерфейс headless через VBoxManage , вам не доступен вывод сообщений которые VBoxHeadless может выводить на консоль. Особенно в случае ошибок запуска, такой вывод может быть полезен для диагностики проблем.

Обратите внимание что при запуске ВМ с использованием VBoxHeadless, поскольку headless сервер не имеет никаких других средств вывода, встроенный VRDP сервер всегда будет включен, независимо от ваших настроек виртуальной машины для VRDP сервера. Если в этом нет необходимости (например доступ к ВМ необходим только посредством ssh), запускайте ВМ так:

VBoxHeadless --startvm <uuid|name> --vrdp=off

Для использования VRDP сервером настроек из конфигурации ВМ используйте команду:

VBoxHeadless --startvm <uuid|name> --vrdp=config

7.4.3. Шаг за шагом: создание виртуальной машины на сервере headless

Ниже приводится порядок действия создания виртуальной машины на headless сервере через сетевое соединение. Нам необходимо создать виртуальную машину используя VRDP соединение и установить гостевую ОС -- все без непосредственного контакта с headless сервером. Все что вам необходимо:

  1. Установленный VirtualBox на хост сервере с поддерживаемой операционной системой; в приведенном примере, мы будем рассматривать Linux сервер;

  2. Файл ISO на сервере с программой установки гостевой ОС (мы будем использовать Windows XP в данном примере);

  3. терминальное соединение с хостом (посредством telnet или ssh );

  4. Клиент RDP на удаленном рабочем компьютере(удаленном); см. Раздел 7.4.1, “RDP клиенты сторонних разработчикоав”.

Заметем еще раз, что компьютер, который мы используем как headless сервер server и нам не нужны ни Qt, ни SDL, ни X Window система.

  1. На headless сервере создаем виртуальную машину:

    VBoxManage createvm --name "Windows XP" --register

    Замете, что если вы не укажите --register , вам нужно будет позже использовать команду registervm.

  2. Установим необходимые настройки ВМ, требующиеся устанавливаемой гостевой ОС. Например:

    VBoxManage modifyvm "Windows XP" --memory "256MB"
          --acpi on --boot1 dvd --nic1 nat
  3. Создаем виртуальный жесткий диск для ВМ (в данном случае, размером 10GB) и зарегистрируем его в VirtualBox:

    VBoxManage createhd --filename "WinXP.vdi" --size 10000 --remember
  4. Установим созданный файл VDI первым виртуальным жестким диском:

    VBoxManage modifyvm "Windows XP" --hda "WinXP.vdi"
  5. Зарегистрируем ISO файл с устанавливаемой ОС:

    VBoxManage openmedium dvd /full/path/to/iso.iso
  6. Подключим этот ISO к виртуальной машине, с которого она будет загружаться:

    VBoxManage modifyvm "Windows XP" --dvd /full/path/to/iso.iso

    (Также , вы можете использовать VBoxManage controlvm dvdattach, без регистрации образа; см. Section 8.9, “VBoxManage controlvm”.)

  7. Запустите виртуальную машину используя VBoxHeadless:

    VBoxHeadless --startvm "Windows XP"

    Если все пройдет успешно, вы увидете сообщение об авторских правах. Иначе вы вернетесь в командную строку, если что то пойдет не так.

  8. На клиентской машине, запустите клиента RDP и попытайтесь подключиться к серверу (см. Section 7.4.1, “Common third-party RDP viewers” above for how to use various common RDP viewers).

    Вы должны увидеть процедуру установки вашей гостевой ОС в окне клиента RDP.

7.4.4. Удаленные USB

В качестве особенной функции VRDP, VirtualBox поддерживает удаленные USB устройства, также через проводную сеть. Это означает, что гость работающий на одной машине может получить доступ к устройствам USB на другом компьютере и может их видеть как USB подключенные к хост системе. This allows for running virtual machines on a VirtualBox host that acts as a server, where a client can connect from elsewhere that needs only a network adapter and a display capable of running an RDP viewer. Когда устройства USB подключаются к клиентской машине, удаленный сервер VirtualBox может получить к ним доступ.

Для удаленных USB устройств, применяются те же правила настроек что и для других USB устройств, которые были описаны в Разделе 3.7.9.1, “Поддержка USB” . Вам просто надо установить в правилах параметр "Удаленное" в значение "Да" или "Оба".

Доступ к удаленным устройствам USB возможен только если клиент RDP поддерживает эту возможность. На хостах Linux и Solaris, VirtualBox устанавливается такой клиент RDP, называемый rdesktop-vrdp . RDP клиенты для других платформ будут предоставляться в будущих версиях VirtualBox.

Что бы сделать до удаленные USB устройства доступными в ВМ, rdesktop-vrdp необходимо запустить так как указано ниже:

rdesktop-vrdp -r usb -a 16 -N my.host.address

Заметьте что rdesktop-vrdp может получать доступ к USB устройствам только через /proc/bus/usb . Ознакомьтесь с Разделом 11.5.7, “USB not working” чтобы знать как правильно настроить разрешения. Кроме того необходимо отключить автоматическую загрузку драйверов (automatic loading of any host driver) на удаленном хосте которые могут работать с USB устройствами, чтобы гарантировать доступность устройства в RDP клиенте. Если была корректно проведена установка удаленного хоста, то события подключения и отключения устройств будут отображаться в журнал VBox.log.

7.4.5. RDP аутентификация

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

Для этого, используйте команду VBoxManage modifyvm с параметром --vrdpauthtype ; см. Раздел 8.5, “VBoxManage modifyvm”. Доступно три метода аутентификации:

  • Метод "null/ Нет авторизации" означает отсутствие какой либо аутентификации; любой клиент может подключиться к VRDP серверу, а следовательно к виртуальной машине. Это конечно, не безопасно и он рекомендуется только для частных/ локальных сетей.

  • Метод "external/ Внешняя" предусматривает внешнию аутентификацию посредством специальной библиотеки аутентификации.

    По умолчанию VirtualBox поставляется с двумя библиотеками для внешней аутентификации:

    • На хостах Linux, VRDPAuth.so аутентификация пользователей происходит посредством системы PAM на хосте.

    • На хостах Windows, VRDPAuth.dll аутентификация происходит с помощью системы WinLogon хоста.

    Другими словами, метод "external" позволяет производить аутентификацию пользователей посредством существующей на хост системе по умолчанию. Доступ разрешается любому пользователю прошедшему аутентификацию, т.е. имя пользователя не обязательно должно соответствовать пользователю запустившего ВМ.

    Однако, вы можете заменить модуль аутентификации по умолчанию для метода "external", любым другим модулем. Для этого, VirtualBox предоставляет интерфейс который позволяет вам реализовать собственный модуль аутентификации; см. Раздел 9.3, “Пользовательская внешняя аутентификация VRDP” .

  • Наконец, метод "guest/ Гостевая ОС" производит аутентификацию с помощью специального компонента поставляемого с гостевыми дополнениями; в результате аутентификация не связывается с пользователями хост системы, а выполняется с помощью авторизацией гостевой системы. Этот метод в настоящее время все еще тестируется и официально не поддерживается.

7.4.6. RDP шифрование

Передаваемые данные RDP протокола шифруются алгоритмом на базе RC4 симетричного шифра (длинна ключа до 128bit). Ключ RC4 обновляется с регулярным интервалом (каждые 4096 пакетов).

RDP обеспечивает три различных аутентификации:

  1. Historically, RDP4 authentication was used, with which the RDP client does not perform any checks in order to verify the identity of the server it connects to. Since user credentials can be obtained using a man in the middle (MITM) attack, RDP4 authentication is insecure and should generally not be used.

  2. RDP5.1 authentication employs a server certificate for which the client possesses the public key. This way it is guaranteed that the server possess the corresponding private key. However, as this hard-coded private key became public some years ago, RDP5.1 authentication is also insecure and cannot be recommended.

  3. RDP5.2 authentication is based on TLS 1.0 with customer-supplied certificates. The server supplies a certificate to the client which must be signed by a certificate authority (CA) that the client trusts (for the Microsoft RDP Client 5.2, the CA has to be added to the Windows Trusted Root Certificate Authorities database). VirtualBox allows you to supply your own CA and server certificate and uses OpenSSL for encryption.и

Хотя VirtualBox обеспечивает все перечисленные выше методы, RDP5.2 аутентификация должна использоваться только с задачами касающимися безопасности. Чтобы указать rdesktop клиенту - какое шифрование использовать при подключении к серверу, используйте параметры -4 или -5.

7.4.7. Множественные соединения VRDP

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

Следующая команда включает режим множественных соединений:

VBoxManage modifyvm VMNAME --vrdpmulticon on

Если в гостевой системе используется несколько мониторов то режим множественных подключений должен быть активирован, чтобы использовать их в одно и тоже время (см. Section 9.6, “Multiple monitors for the guest” ).



[ 20 ] До VirtualBox 1.6, headless сервер назывался VBoxVRDP . В целях обратной совместимости, в VirtualBox по прежнему используется это имя исполняемого файла.

home start up prev next

Сайт создан в системе uCoz