Нaстройка удаленного доступа к Hyper-V | Для системного администратора

Нашел полезные статейки по работе с HV. Автор: Алексей Кибкало

Оригиналы здесь:

Делегирование прав на Hyper-V

Нaстройка удаленного доступа к Hyper-V | Для системного администратора

 

Делегирование прав на Hyper-V

По умолчанию Hyper-V разрешает создание и управление виртуальными машинами только администраторам. Сегодня мы поговорим о том, как делегировать эти права пользователям, не обладающими правами администратора сервера.

Hyper-V используют новую модель авторизации пользователей — Authorization Management Framework, которая позволяет гибко настроить права пользователей на виртуальные машины. Модель очень хорошо продумана и имеет ряд интересных моментов, которые я обязательно как-нибудь затрону. Сейчас же мне придется сообщить некую вводную информацию про эту модель, чтобы затем показать настройки делегирования. Итак, термины:

Операция (Operation)

Основной кирпичик модели авторизации — представляет собой действие, которое пользователь может произвести. Примерами операций модели являются op_Create_VM, позволяющая создать виртуальную машину и op_Start_VM, соответственно, запускающая виртуальную машину.

Задача (Task)

Задача — это группа операций, требуемых для выполнения некоторых действий. По умолчанию мы не создаем никаких заданий, но если бы мы могли создать задачу control_VM, то нам бы потребовалось добавить в эту группу операции по запуску (op_Start_VM), остановке (op_Stop_VM), приостановке (op_Pause_VM) и перезапуску (op_Restart_VM) для выполнения необходимых в задаче действий.

Роль (Role)

Роль определяет должность, круг задач или зону ответственности для пользователя. Например, может потребоваться роль Virtual_Network_Admin. Эта роль будет иметь права на все операции и задачи, связанные с виртуальными сетями. При необходимости эту роль можно будет назначать пользователям.

Область (Scope)

Область позволяет вам указать, какие объекты управляются конкретными ролями. Если у вас есть система, и вы хотели бы быть дать пользователю административный доступ к некому набору виртуальных машин в ней, вам потребуется создать область, содержащую эти конкретные виртуальные машины, а затем применить ваши настройки к данной области.

Область по умолчанию (Default Scope)

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

Hyper-V может хранить настройки модели авторизации в Active Directory или в локальном файле в формате XML. По умолчанию после установки роли Hyper-V настройки хранятся в файле, который находится по адресу: %programdata%MicrosoftWindowsHyper-VInitialStore.xml. Для того, чтобы изменить настройки, вам потребуется:

  • Запустить приложение MMC. (Для этого выберите пункт Run в Start Menu или нажмите комбинацию клавиш ‘Windows Key + R’, затем выполните mmc.exe).
  • В меню File выбрать Add/Remove Snap-in.
  • Добавить Authorization Manager.
  • В дереве консоли (левой панели ) выбрать Authorization Manager, затем в меню Action выбрать пункт Open Authorization Store.
  • Выбрать XML file в предлагаемом диалоге Select the authorization store type: и открыть файл по указанному выше пути. (Папка programdata является скрытой, так что проще будет скопировать путь целиком).
  • Выберите InitialStore.xml, затем Microsoft Hyper-V services, далее Role Assignments и в конце концов Administrator.
  • В меню Action выберите Assign Users and Groups, затем From Windows and Active Directory, далее выберите пользователя, которому хотите делегировать права на управления Hyper-V. Нажмите OK и закройте окно MMC. (При этом можно сохранить или отменить настройки MMC. Это не повлияет на изменения, внесенные вами в модель авторизации).

На этом ваша задача выполнена. Пользователь может полностью контролировать Hyper-V, не являясь администратором на этом сервере. Делегирование гранулярных прав на конкретные виртуальные машины осуществляется абсолютно таким же образом.

Нaстройка удаленного доступа к Hyper-V

Мы только что рассмотрели, как делегировать пользователю права на управление Hyper-V. Но этими правами пользователь сможет воспользоваться, только работая на сервере локально.

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

Описанные в этой статье шаги применимы к версии RC0 гипервизора Hyper-V и RC0 версии клиентской утилиты управления Hyper-V Manager для Vista SP1 (x86 и x64).

Итак, на сервере следует выполнить следующие шаги:

  • Разрешить в Windows Firewall правило «Windows Management Instrumentation (WMI)» следующей командой:

netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes

Внимание: в различных локализованных ОС встроенные правила брандмауэера могут назваться по-разному. Необходимо указать название правила именно так, как оно выглядит в инструментах управления Windows Firewall. Например, в русской версии Windows Server 2008 приведенная выше строка будет выглядеть так:

netsh advfirewall firewall set rule group="Инструментарий управления Windows (WMI — входящий трафик)" new enable=yes

  • Предоставить пользователю права на удаленный запуск (remote launch and activation) в DCOM. Это можно сделать как для конкретного пользователя или группы, так и для всех AUTHENTICATED USERS.
    1. Нажмите Start, выберите Run, запустите dcomcnfg.exe.
    2. В Component Services раскройте Computers, правой кнопкой нажмите на My Computer и выберите в меню пункт Properties.
    3. В My Computer Properties раскройте COM Security.
    4. В Launch and Activation Permissions выберите Edit Limits.
    5. В случае, если пользователь не указан в списке Groups of user names в окне Launch Permission, добавьте его кнопкой Add.
    6. В Launch Permission выберите пользователя или группу и в колонке Allow в Permissions for user укажите Remote Launch и Remote Activation. Нажмите OK.
  • Предоставить пользователю права на удаленное управление (remote enable) в пространстве имен (namespace) rootCIMv2 и rootvirtualization. Это можно сделать как для конкретного пользователя или группы, или для AUTHENTICATED USERS.
    1. В Control Panel зайдите в Administrative Tools и запустите Computer Management.
    2. В Computer Management раскройте Services and Applications, правой кнопкой выберите WMI Control и нажмите Properties.
    3. В закладке Security выберите Advanced.
    4. В случае, если пользователь не указан в списке Permission в окне Advanced Security Settings, добавьте его кнопкой Add.
    5. В Advanced Security Settings выберите имя пользователя и нажмите Edit.
    6. В выпадающем меню Apply To окна Permission Entry выберите This namespace and subnamespaces и укажите Remote Enable в колонке Allow. Нажмите OK.
  • Предоставьте пользователю права на Hyper-V.
  • Перезагрузите сервер. (Если вы хотите избежать перезагрузки сервера, достаточно перезапустить следующие сервисы: winmgmt, vmms, vhdsvc & nvspwmi). При остановке winmgmt остальные роли стопнутся по депенденсам.

т.е. достаточно этих команд в командной строке (с правами администратора):

net stop winmgmt

а потом

net start winmgmt
net start vmms
net start vhdsvc
net start nvspwmi

Внимание: если сервер с установленной ролью Hyper-V, которым вы хотите управлять удаленно, используя локальную запись с правами администратора, не входит в домен, и при этом на сервере включен User Account Control (UAC), то имейте в виду следующее. По умолчанию к локальным учетным записям при неинтерактивном (в том числе сетевом) доступе применяется UAC Filtering. То есть, даже если вы являетесь администратором сервера, при попытке удалённого подключения UAC предоставит вам права стандартного пользователя. Поэтому в таком случае вам потребуется напрямую предоставить пользователю права на Hyper-V способом, описанным в предыдущей статье.

Настройки клиентского компьютера

Итак, сервер мы настроили. Теперь ряд настроек потребуется выполнить и на клиентском ПК с Vista SP1.

  • Разрешить на Windows Firewall правило «Windows Management Instrumentation (WMI)» командой

netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes

В русской версии Windows Vista эта же команда выглядит следующим образом:

netsh advfirewall firewall set rule group="Инструментарий управления Windows (WMI — входящий трафик)" new enable=yes

А на системах с ОС, предшествующими Windows Vista (Windows XP / 2003), для этого служит команда

netsh firewall set service RemoteAdmin enable

  • На системах с ОС, предшествующих Vista (Windows XP / 2003), следует также добавить исключение для исполняемого файла Unsecapp.exe:

netsh firewall add allowedprogram program=%windir%system32wbemunsecapp.exe name=UNSECAPP

  • Добавить в Windows Firewall исключение для исполняемого фалйла mmc.exe:

netsh firewall add allowedprogram program=%windir%system32mmc.exe name="Microsoft Management Console"

  • Если клиент или сервер находятся в рабочей группе или они находятся в разных доменах, между которыми нет доверительных отношений, то соединение от сервера до клиента, устанавливаемое для доставки результирующей информации, происходит анонимно. Анонимное соединение завершается неудачно с кодом ошибки 0x80070005 или 0x8007000e до тех пор, пока анонимному соединнеию не будет дано право Remote Access на DCOM клиента. Дать это право можно, выполнив следующие шаги:
    1. Нажмите Start, выберите Run, запустите dcomcnfg.exe.
    2. В Component Services раскройте Computers, правой кнопкой выберите My Computer и укажите Properties.
    3. В My Computer Properties раскройте COM Security.
    4. В Launch and Activation Permissions выберите Edit Limits.
    5. В окне Access Permissions выберите ANONYMOUS LOGON в списке Group or user names. В колонке Allow в Permissions for User укажите Remote Access и нажмите OK.

После выполнения всех описанных действий вы, наконец, получите возможность удаленно подключаться к серверу и управлять ролью Hyper-V.