Управление списками ACL портов в VMM
Важно!
Поддержка этой версии Virtual Machine Manager (VMM) завершена. Рекомендуется выполнить обновление до VMM 2022.
В System Center Virtual Machine Manager (VMM) можно централизованно настраивать и администрировать списки управления доступом (ACL) портов Hyper-V. Списки управления доступом для портов можно настроить как для структуры, управляемой сетевым контроллером, так и для сетей, которые не управляются сетевым контроллером.
- Список ACL портов — это набор правил, фильтрующих трафик на уровне портов уровня 2. Список ACL портов в VMM фильтрует доступ к определенному объекту VMM. Сетевой объект может иметь всего один подключенный список ACL для портов.
- ACL содержит правила и может быть присоединен к любому количеству сетевых объектов. Вы можете создать список ACL без правил и добавить их позднее. Каждое правило ACL соответствует только одному ACL портов.
- Если список ACL содержит несколько правил, они применяются на основе приоритета. После того, как одно из правил удовлетворяет критериям и применяется, никакие другие правила не обрабатываются.
- Список ACL портов для глобальных параметров применяется ко всем виртуальным сетевым адаптерам виртуальной машины в инфраструктуре. Отдельный тип объекта для глобальных параметров отсутствует. Вместо этого список ACL портов для глобальных параметров подключается к серверу управления VMM.
- Параметры ACL портов предоставляются только с помощью командлетов PowerShell в VMM и не могут быть настроены в консоли VMM.
- Списки ACL портов можно применить к следующим объектам:
- Виртуальные подсети и адаптеры в развертывании сетевого контроллера.
- Виртуальные подсети, сетевые адаптеры, сети виртуальных машин и сервер управления VMM в сетях, которые не управляются сетевым контроллером.
Перед началом работы
- Чтобы применить список ACL к объектам, управляемым сетевым контроллером, используйте флаг ManagedByNC, присвоив ему значение True. Если для него не задано значение True, список управления доступом применяется только к сетевым объектам, которые не управляются сетевым контроллером.
- Типы списков ACL не взаимозаменяемы. Невозможно применить список управления доступом с managedByNC , для которого задано значение false, к объектам, управляемым сетевым контроллером, и наоборот.
- Основное различие между этими двумя типами списков управления доступом заключается в том, что необходимо исправить каждый сетевой адаптер после применения ACL к объектам, которые не управляются сетевым контроллером.
- Также существует различие в диапазонах приоритета:
- Списки ACL портов Hyper-V (не управляются сетевым контроллером) : 1–65 535
- Списки ACL портов SDN (управляются сетевым контроллером) : 1–64 500
- Чтобы подключить список ACL портов к глобальным параметрам, требуются полные права администратора VMM . Чтобы подключить ACL к объектам VMM (сетям виртуальных машин, подсетям, виртуальным сетевым адаптерам), необходимо быть администратором VMM, администратором клиента или пользователем самообслуживания.
Неподдерживаемые сценарии
Ниже приведен список неподдерживаемых сценариев.
- Управление отдельными правилами для одного экземпляра, если список ACL совместно используется несколькими экземплярами. Управление всеми правилами осуществляется централизованно в родительских ACL; правила применяются по месту подключения ACL.
- Присоедините к сущности несколько ACL.
- Применение списков ACL портов к виртуальным сетевым адаптерам в родительском разделе Hyper-V (операционная система управления).
- Создание правил для списка ACL портов в VMM, которые включают протоколы уровня IP-адресов (кроме TCP или UDP). Другие протоколы по-прежнему поддерживаются в Hyper-V.
- Примените списки управления доступом для портов к логическим сетям, сетевым сайтам (определениям логических сетей), виртуальным локальным сетям подсети и другим сетевым объектам VMM, которые не указаны как поддерживаемые.
Этапы развертывания
В интерфейсе VMM PowerShell можно сделать следующее:
Определите списки ACL портов и правила.
- Правила применяются к портам виртуальных коммутаторов на серверах Hyper-V в качестве расширенных списков ACL портов (VMNetworkAdapterExtendedAcl). Это означает, что они могут применяться только к узлам под управлением Windows Server 2012 R2 или более поздней версии, так как VMM не создает списки ACL портов Hyper-V прежних версий (VMNetworkAdapterAcl).
- Правила применяются к портам виртуальных коммутаторов на серверах Hyper-V в качестве расширенных списков ACL портов (VMNetworkAdapterExtendedAcl). Это означает, что они могут применяться только к узлам, работающим Windows Server 2016 или более поздней версии, так как VMM не создает устаревшие списки управления доступом для портов Hyper-V (VMNetworkAdapterAcl) для более ранних версий.
- Все правила ACL портов, определяемые в VMM, поддерживают отслеживание состояния для TCP. Вы не можете создавать правила ACL без отслеживания состояния TCP.
Подключите список ACL портов к глобальным параметрам. При этом список применяется ко всем виртуальным сетевым адаптерам виртуальной машины.
Присоедините ACL портов к сетям виртуальных машин, подсетям виртуальных машин или виртуальным сетевым адаптерам виртуальных машин.
Управляйте правилами списка ACL портов.
Создание списков ACL портов
Откройте PowerShell в VMM.
Создайте ACL портов с помощью командлета New-SCPortACL.
New-SCPortACL [-Name] <String> [-Description <String>] [-JobVariable <String>] [-ManagedByNC] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-Owner <String>] [-PROTipID <Guid>] [-RunAsynchronously] [-UserRole <UserRole>] [-VMMServer <ServerConnection>] [<CommonParameters>]
Параметры
Параметр | Сведения |
---|---|
Name; Description | Имя и описание списка ACL портов. |
JobVariable | Сохраняет ход выполнения задания. |
ManagedByNC | Указывает, управляются ли объекты сетевым контроллером. |
OnBehalfOfUser/OnBehalfOfRole | Выполняет задание с именем или ролью пользователя. |
Владелец | Указывает владельца объекта VMM в виде допустимой учетной записи пользователя домена. Пример: Contoso\PattiFuller или PattiFuller@Contoso |
ProTipID | Идентификатор объекта ProTip, вызвавшего действие. |
RunAsychronously | Указывает, выполняется ли задание асинхронно. |
UserRole | Указывает роль пользователя. |
VMMServer | Указывает сервер VMM. |
CommonParameters | Дополнительные сведения |
Примеры
Создайте список ACL портов для объектов, управляемых сетевым контроллером, с именем "DemoACLManagedByNC":
PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN
Создайте список ACL портов для объектов, не управляемых сетевым контроллером, с именем "DemPortACL":
PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"
Определение правил для списка ACL портов
Откройте PowerShell в VMM.
Создайте одно или несколько правил с помощью командлета New-SCPortACLRule.
New-SCPortACLrule -PortACL <PortACL> -Name <string> [-Description <string>] -Type <Inbound | Outbound> -Action <Allow | Deny> -Priority <uint16> -Protocol <Tcp | Udp | Any> [-LocalAddressPrefix <string: IPAddress | IPSubnet>] [-LocalPortRange <string:X|X-Y|Any>] [-RemoteAddressPrefix <string: IPAddress | IPSubnet>] [-RemotePortRange <string:X|X-Y|Any>]
Параметры
Параметр | Сведения |
---|---|
Name, Description | Имя и описание правила. |
Type | Указывает направление трафика, для которого применяется список ACL ("Inbound" (Входящий) или "Outbound" (Исходящий)) |
Действие | Указывает, разрешает ли ACL трафик или блокирует ("Allow" (Разрешить) или "Deny" (Запретить)) |
LocalAddressPrefix | Указывает исходный IP-адрес или исходную подсеть, используемые для идентификации трафика, который нужно отфильтровать. |
LocalPortRange | Указывает исходный диапазон портов, используемый для идентификации трафика. |
RemoteAddressPrefix | Указывает конечный IP-адрес или конечную подсеть, используемые для идентификации трафика, который нужно отфильтровать. |
RemotePortRange | Указывает конечный диапазон портов, используемый для идентификации трафика. |
Протокол | Указывает протокол, для которого применяется правило. |
Приоритет | Укажите приоритет правила в ACL порта. Правила применяются по порядку. Задайте приоритет между 1 и 65 535, где наименьшее значение означает наибольший приоритет. Правила списков ACL портов для объектов, которыми управляет сетевой контроллер, должны иметь значение не меньше 100. Сетевой контроллер не поддерживает приоритет ниже 100. |
Примеры
Создайте список ACL портов и сохраните объект в $portACL:
PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"
Создайте правило ACL портов, чтобы разрешить доступ через протокол удаленного рабочего стола из удаленной подсети:
PS: C:\> New-SCPortACLRule -Name "AllowRDPAccess" -PortACL $portACL -Description "Allow RDP Rule from a subnet" -Action Allow -Type Inbound -Priority 110 -Protocol Tcp -LocalPortRange 3389 -RemoteAddressPrefix 10.184.20.0/24
Измените приоритет правила ACL:
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220
Первая команда получает правило ACL портов с именем "AllowRDPAccess". Вторая команда изменяет приоритет правила на 220.
Измените правило ACL портов для целевого диапазона адресов и протокол для правила:
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp
Первая команда получает правило "AllowRDPAccess". Вторая изменяет протокол на UDP и задает в качестве назначения подсеть 172.185.21.0/24.
Подключение и отключение списков ACL портов
Список ACL портов можно подключить к глобальным параметрам, сетям виртуальных машин, подсетям виртуальных машин, а также виртуальным сетевым адаптерам. Список ACL портов, подключенный к глобальным параметрам, по умолчанию применяется ко всем виртуальным сетевым адаптерам виртуальной машины.
Откройте PowerShell в VMM.
Подключите список ACL портов с помощью командлета Set-SCVMMServer.
Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
Параметры
Параметр | Сведения |
---|---|
Сервер VMM | Имя сервера VMM, к которому применяется ACL портов. |
PortACL | При необходимости подключает указанный список ACL портов к глобальным параметрам. |
Примеры
Подключите список ACL к глобальным параметрам:
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl
Отключите список ACL от глобальных параметров:
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL
Подключите список ACL к сети виртуальной машины при создании:
New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Подключите список ACL к существующей сети виртуальной машины:
Set-SCVMNetwork -PortACL $acl`
Подключите список ACL к подсети виртуальной машины при создании:
New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Подключите список ACL к существующей подсети виртуальной машины:
Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]
Извлечение и просмотр списков ACL портов и правил
Откройте PowerShell в VMM.
Запустите командлет Get-SCPortACL, чтобы извлечь и просмотреть ACL портов:
Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Запустите командлет Get-SCPortACLRule, чтобы извлечь и просмотреть правило:
Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Параметры
Параметр | Сведения |
---|---|
Без параметров | Извлекает все списки ACL. |
Name/ID | Извлечение по имени или GUID. |
OnBehalfOfUser/OnBehalfOfUserRole | Выполнение с именем или ролью пользователя. |
VMMServer | Извлечение списков ACL на определенном сервере VMM. |
CommonParameters | Дополнительные сведения |
Примеры
Извлеките определенный ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
Получите правила для определенного ACL:
PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"
Получите все правила для ACL:
PS: C:> Get-SCPortACLRule -PortACL $portACL
Изменение списков ACL портов и правил
Откройте PowerShell в VMM.
Запустите командлет Set-SCPortACL, чтобы изменить ACL портов:
Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
Запустите командлет Remove-SCPortACL, чтобы удалить ACL:
Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
Параметры
Параметр | Сведения |
---|---|
Name/Description | Имя и описание списка ACL портов. |
JobVariable | Сохраняет ход выполнения задания. |
OnBehalfOfUser/OnBehalfOfUserRole | Выполнение с именем или ролью пользователя. |
ProTipID | Идентификатор объекта ProTip, вызвавшего действие. |
RunAsynchronously | Указывает, выполняется ли задание асинхронно. |
Подтвердить | Выводит запрос перед выполнением задания. |
WhatIf | Показывает результат без выполнения команды. |
Примеры
Задайте описание ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"
Первый командлет извлекает ACL, а второй задает для него описание.
Удалите ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL
Первый командлет извлекает ACL, а второй удаляет его.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по