Поделиться через


Управление списками 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, чтобы выполнить следующие действия:

  1. Определите списки управления доступом и правилами портов.

    • Правила применяются к портам виртуального коммутатора на серверах 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 без отслеживания состояния.
  2. Подключите ACL порта к глобальным параметрам. Это применяет ACL ко всем виртуальным сетевым адаптерам виртуальной машины.

  3. Подключите списки управления доступом портов к сетям виртуальных машин, подсетям виртуальных машин или виртуальным сетевым адаптерам виртуальной машины.

  4. Управление правилами ACL портов.

Создание списков управления доступом к портам

  1. Откройте PowerShell в VMM.

  2. Создайте 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 порта

  1. Откройте PowerShell в VMM.

  2. Создайте одно или несколько правил с помощью командлета 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 портов, подключенных к глобальным параметрам, применяется по умолчанию ко всем виртуальным сетевым адаптерам виртуальной машины.

  1. Откройте PowerShell в VMM.

  2. Подключите 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]

Получение и просмотр списков управления доступом к портам и правилам

  1. Откройте PowerShell в VMM.

  2. Выполните командлет Get-SCPortACL, чтобы получить и просмотреть ACL портов:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Запустите 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

Изменение списков управления доступом и правилами портов

  1. Откройте PowerShell в VMM.

  2. Выполните командлет Set-SCPortACL, чтобы изменить ACL порта:

    Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
    
  3. Выполните команду 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; второй удаляет его.