Управление списками ACL портов в VMM
В System Center диспетчер виртуальных машин (VMM) можно централизованно настраивать списки управления доступом к портам Hyper-V и управлять ими. Списки управления доступом портов можно настроить как для структуры, управляемой сетевым контроллером, так и для сетей, которые не управляются сетевым контроллером.
- ACL порта — это набор правил, которые фильтруют трафик на уровне порта уровня 2. Список ACL портов в VMM фильтрует доступ к определенному объекту VMM. Сетевой объект может иметь не более одного порта ACL.
- ACL содержит правила и может быть присоединен к любому количеству сетевых объектов. Вы можете создать ACL без правил, а затем добавить правила позже. Каждое правило ACL соответствует только одному ACL портам.
- Если ACL имеет несколько правил, они применяются на основе приоритета. После того как правило соответствует критериям и применяется, другие правила не обрабатываются.
- Глобальные параметры порта ACL применяются ко всем сетевым адаптерам виртуальной машины в инфраструктуре. Для глобальных параметров нет отдельного типа объекта. Вместо этого глобальные параметры порта ACL подключены к серверу управления VMM.
- Параметры ACL портов предоставляются только с помощью командлетов PowerShell в VMM и не могут быть настроены в консоли VMM.
- Списки управления доступом к портам можно применить к:
- Виртуальные подсети и адаптеры в развертывании сетевого контроллера.
- Виртуальные подсети, сетевые адаптеры, сети виртуальных машин и сервер управления VMM в сетях, которые не управляются сетевым контроллером.
Перед началом работы
- Чтобы применить ACL к объектам, управляемым сетевым контроллером, используйте флаг ManagedByNC и задайте для него значение True. Если для него не задано значение True, ACL применяется только к сетевым объектам, которые не управляются сетевым контроллером.
- Типы ACL не являются взаимозаменяемыми. Не удается применить ACL с ManagedByNC с значением false, к объектам, управляемым сетевым контроллером, и наоборот.
- Основное различие между этими двумя типами списков управления доступом заключается в том, что необходимо исправить каждый сетевой адаптер после применения ACL к объектам, которые не управляются сетевым контроллером.
- Существует также разница в диапазонах приоритетов:
- Списки ACL портов Hyper-V (не управляемые сетевым контроллером):1 – 65535
- Списки управления доступом портов SDN (управляемые сетевым контроллером): 1 – 64500
- Для подключения ACL порта к глобальным параметрам требуются полные разрешения администратора VMM. Чтобы подключить ACL к объектам VMM (сети виртуальных машин, подсети, виртуальные сетевые адаптеры), необходимо быть администратором VMM или администратором клиента или пользователем самообслуживания.
Неподдерживаемые сценарии
Ниже приведен список неподдерживаемых сценариев:
- Управление отдельными правилами для одного экземпляра при совместном использовании ACL с несколькими экземплярами. Все правила управляются централизованно внутри родительских списков управления доступом и применяются везде, где подключен ACL.
- Присоединение нескольких ACL к сущности.
- Примените списки управления доступом портов к адаптерам виртуальной сети в родительской секции Hyper-V (операционная система управления).
- Создайте правила ACL портов в VMM, включающие протоколы уровня IP (кроме TCP или UDP). Другие протоколы по-прежнему поддерживаются в собственном коде Hyper-V.
- Примените списки управления доступом портов к логическим сетям, сетевым сайтам (определениям логических сетевых сетей), виртуальным сетям подсети и другим объектам сети VMM, которые не упоминаются как поддерживаемые.
Шаги развертывания
Используйте интерфейс PowerShell VMM, чтобы выполнить следующие действия:
Определите списки управления доступом и правилами портов.
- Правила применяются к портам виртуального коммутатора на серверах Hyper-V как расширенные списки управления доступом портов (VMNetworkAdapterExtendedAcl). Это означает, что они могут применяться только к узлам под управлением Windows Server 2012 R2 или более поздней версии, так как VMM не создает устаревшие списки управления доступом портов Hyper-V (VMNetworkAdapterAcl) для более ранних версий.
- Правила применяются к портам виртуального коммутатора на серверах Hyper-V как "расширенные списки управления доступом портов" (VMNetworkAdapterExtendedAcl). Это означает, что они могут применяться только к узлам под управлением Windows Server 2016 или более поздней версии, так как VMM не создает устаревшие списки управления доступом портов Hyper-V (VMNetworkAdapterAcl) для более ранних версий.
- Правила применяются к портам виртуального коммутатора на серверах Hyper-V как расширенные списки управления доступом портов (VMNetworkAdapterExtendedAcl). Это означает, что они могут применяться только к узлам под управлением Windows Server 2019 или более поздней версии, так как VMM не создает устаревшие списки управления доступом портов Hyper-V (VMNetworkAdapterAcl) для более ранних версий.
- Все правила ACL портов, определенные в VMM, являются отслеживанием состояния для 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>]
Параметры
Параметр | Сведения |
---|---|
Имя; Описание | Имя и описание 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 портов для 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>]
Параметры
Параметр | Сведения |
---|---|
Имя, описание | Имя и описание правила |
Тип | Указывает направление трафика, для которого применяется ACL (входящий или исходящий трафик) |
Действие | Указывает, разрешает ли ACL или блокирует трафик (разрешить или запретить) |
LocalAddressPrefix | Указывает исходный IP-адрес или подсеть, которая используется для идентификации трафика, который должен быть отфильтрован. |
LocalPortRange | Указывает диапазон исходного порта, используемый для идентификации трафика. |
RemoteAddressPrefix | Указывает ЦЕЛЕВОй IP-адрес или подсеть, которая используется для идентификации трафика для фильтрации |
RemotePortRange | Указывает конечный диапазон портов, используемый для идентификации трафика. |
Протокол | Указывает протокол, для которого применяется правило. |
Приоритет | Укажите приоритет правила в ACL порта. Правила применяются в соответствии с порядком. Задайте приоритет от 1 до 65535, где наименьшее число имеет наивысший приоритет. Правила ACL портов для объектов, управляемых сетевым контроллером, должны иметь значение или больше 100. Сетевой контроллер не поддерживает приоритет ниже 100. |
Примеры
Создайте ACL порта и сохраните объект в $portACL:
PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"
Создайте правило ACL порта, чтобы разрешить доступ RDP из удаленной подсети:
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]
Получение и просмотр списков управления доступом к портам и правилам
Откройте 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>]
Параметры
Параметр | Сведения |
---|---|
Нет параметров | Извлекает все списки управления доступом |
Имя или идентификатор | Получение по имени или GUID |
OnBehalfOfUser/OnBehalfOfUserRole | Запуск с именем пользователя или ролью |
VMMServer | Получение списков управления доступом на определенном сервере VMM |
CommonParameters | Подробнее |
Примеры
Получение определенного ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
Получение правил для определенного ACL:
PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"
Получение всех правил для ACL:
PS: C:> Get-SCPortACLRule -PortACL $portACL
Изменение списков управления доступом и правилами портов
Откройте 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>]
Параметры
Параметр | Сведения |
---|---|
Имя и описание | Имя и описание ACL порта |
JobVariable | Сохраняет ход выполнения задания |
OnBehalfOfUser/OnBehalfOfUserRole | Запуск с именем пользователя или ролью |
ProTipID | Идентификатор proTip, активировав действие |
RunAsynchronously | Указывает, выполняется ли задание асинхронно |
Confirm | Запросы перед выполнением задания |
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.
Удалите ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL
Первый командлет извлекает ACL; второй удаляет его.