Gerenciar ACLs de porta no VMM

No System Center Virtual Machine Manager (VMM), você pode configurar e gerenciar centralmente as ACLs (listas de controle de acesso) de porta Hyper-V. As ACLs de porta podem ser configuradas para uma malha gerenciada pelo Controlador de Rede e para redes que não são gerenciadas pelo Controlador de Rede.

  • Uma ACL de porta é um conjunto de regras que filtram o tráfego no nível da porta da camada 2. Uma ACL de porta no VMM filtra o acesso a um determinado objeto do VMM. Um objeto de rede não pode ter mais de uma ACL de porta anexada.
  • Uma ACL contém regras e pode ser anexada a qualquer número de objetos de rede. Você pode criar uma ACL sem regras e adicioná-las posteriormente. Cada regra de ACL corresponde a apenas uma ACL de porta.
  • Se uma ACL tiver várias regras, elas serão aplicadas com base na prioridade. Depois que uma regra corresponde aos critérios e é aplicada, nenhuma outra regra é processada.
  • Uma ACL de porta de configurações globais é aplicada a todos os adaptadores de rede virtual de VM em uma infraestrutura. Não há nenhum tipo de objeto separado para configurações globais. Em vez disso, a ACL da porta de configurações globais é anexada ao servidor de gerenciamento do VMM.
  • As configurações de ACL de porta são expostas somente por meio de cmdlets do PowerShell no VMM e não podem ser configuradas no console do VMM.
  • As ACLs de porta podem ser aplicadas a:
    • Sub-redes e adaptadores virtuais em uma implantação do Controlador de Rede.
    • Sub-redes virtuais, adaptadores de rede, redes VM e o servidor de gerenciamento do VMM em redes que não são gerenciadas pelo Controlador de Rede.

Antes de começar

  • Para aplicar uma ACL a objetos gerenciados pelo Controlador de Rede, use o sinalizador ManagedByNC e defina-o como True. Se não estiver definido como True, a ACL só se aplicará a objetos de rede que não são gerenciados pelo Controlador de Rede.
  • Os tipos de ACL não são intercambiáveis. Você não pode aplicar uma ACL com ManagedByNC definido como false, a objetos gerenciados pelo Controlador de Rede e vice-versa.
  • A principal diferença entre esses dois tipos de ACLs é que você precisa corrigir cada adaptador de rede depois de aplicar a ACL em objetos que não são gerenciados pelo Controlador de Rede.
  • Há também uma diferença nos intervalos de prioridade:
    • ACLs de porta Hyper-V (não gerenciadas pelo Controlador de Rede): 1 - 65535
    • ACLs de porta SDN (gerenciadas pelo Controlador de Rede): 1 - 64500
  • Você precisa de permissões completas de administrador do VMM para anexar uma ACL de porta às configurações globais. Para anexar a ACL a objetos do VMM (redes VM, sub-redes, adaptadores de rede virtual), você precisa ser um administrador do VMM ou administrador de locatários ou um usuário de autoatendimento.

Cenários sem suporte

Aqui está uma lista de cenários sem suporte:

  • Gerencie regras individuais para uma única instância quando a ACL é compartilhada com várias instâncias. Todas as regras são gerenciadas centralmente em suas ACLs pai e se aplicam onde quer que a ACL esteja anexada.
  • Anexe mais de uma ACL a uma entidade.
  • Aplique ACLs de porta a adaptadores de rede virtual na partição pai do Hyper-V (sistema operacional de gerenciamento).
  • Crie regras de ACL de porta no VMM que incluam protocolos de nível IP (diferentes de TCP ou UDP). Outros protocolos ainda têm suporte nativo do Hyper-V.
  • Aplique ACLs de porta a redes lógicas, sites de rede (definições de rede lógica), VLANs de sub-rede e outros objetos de rede do VMM que não são mencionados como suportados.

Etapas de implantação

Use a interface do PowerShell do VMM para fazer o seguinte:

  1. Defina ACLs e regras de porta.

    • As regras são aplicadas a portas de comutador virtual em servidores Hyper-V como ACLs de porta estendida (VMNetworkAdapterExtendedAcl). Isso significa que eles podem ser aplicados somente a hosts que executam o Windows Server 2012 R2 ou posterior, pois o VMM não cria ACLs de porta Hyper-V herdadas (VMNetworkAdapterAcl) para versões anteriores.
    • As regras são aplicadas a portas de comutador virtual em servidores Hyper-V como "ACLs de porta estendida" (VMNetworkAdapterExtendedAcl). Isso significa que eles podem ser aplicados somente a hosts que executam o Windows Server 2016 ou posterior, pois o VMM não cria ACLs de porta Hyper-V herdadas (VMNetworkAdapterAcl) para versões anteriores.
    • As regras são aplicadas a portas de comutador virtual em servidores Hyper-V como ACLs de porta estendida (VMNetworkAdapterExtendedAcl). Isso significa que eles podem ser aplicados somente a hosts que executam o Windows Server 2019 ou posterior, pois o VMM não cria ACLs de porta Hyper-V herdadas (VMNetworkAdapterAcl) para versões anteriores.
    • Todas as regras de ACL de porta definidas no VMM são com estado para TCP. Você não pode criar regras de ACL TCP sem estado.
  2. Anexe uma ACL de porta às configurações globais. Isso aplica a ACL a todos os adaptadores de rede virtual da VM.

  3. Anexe as ACLs de porta a redes VM, sub-redes VM ou adaptadores de rede virtual VM.

  4. Gerencie regras de ACL de porta.

Criar ACLs de porta

  1. Abra o PowerShell no VMM.

  2. Crie uma ACL de porta com o cmdlet 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>]
    

Parâmetros

Parâmetro Detalhes
Nome; Descrição Nome e descrição da ACL da porta
Variável de trabalho Armazena o progresso do trabalho
Gerenciado porNC Especifica se os objetos são gerenciados pelo Controlador de Rede
OnBehalfOfUser/OnBehalfOfRole Executar trabalho com nome de usuário ou função
Proprietário Especifica o proprietário de um objeto do VMM na forma de uma conta de usuário de domínio válida. Exemplo: Contoso\PattiFuller ou PattiFuller@Contoso
ProTipID ID da ProTip que acionou a ação
RunAsychronously Indica se o trabalho é executado de forma assíncrona
UserRole Especifica a função do usuário
VMMServer Especifica o servidor VMM
CommonParameters Saiba mais

Exemplos

Crie uma ACL de porta para objetos gerenciados pelo Controlador de Rede "DemoACLManagedByNC":

PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN

Crie uma ACL de porta para objetos não gerenciados pelo Controlador de Rede "DemPortACL":

PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"

Definir regras de ACL de porta para uma ACL de porta

  1. Abra o PowerShell no VMM.

  2. Crie uma ou mais regras com o cmdlet 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>]
    

Parâmetros

Parâmetro Detalhes
Nome, Descrição Nome e descrição da regra
Tipo Especifica a direção do tráfego para a qual a ACL é aplicada (Entrada ou Saída)
Ação Especifica se a ACL permite ou bloqueia o tráfego (Permitir ou Negar)
LocalAddressPrefix Especifica o endereço IP de origem ou sub-rede usado para identificar o tráfego que deve ser filtrado
Intervalo de portas locais Especifica o intervalo de portas de origem usado para identificar o tráfego
Prefixo de endereço remoto Especifica o endereço IP ou sub-rede de destino usado para identificar o tráfego para filtragem
Intervalo de portas remotas Especifica o intervalo de porta de destino que é usado para identificar o tráfego.
Protocolo Especifica o protocolo para o qual a regra é aplicada
Prioridade Especifique a prioridade da regra na ACL da porta. As regras são aplicadas de acordo com a ordem. Defina uma prioridade entre 1 e 65535, em que o número mais baixo tem prioridade mais alta. As regras de ACLs de porta para objetos gerenciados pelo Controlador de Rede devem ser definidas como iguais ou superiores a 100. O Controlador de Rede não dá suporte a prioridade abaixo de 100.

Exemplos

Crie uma ACL de porta e armazene o objeto em $portACL:

PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"

Crie uma regra de ACL de porta para permitir o acesso RDP de uma sub-rede remota:

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

Modifique a prioridade de uma regra de ACL:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220

O primeiro comando obtém a regra de ACL de porta "AllowRDPAccess". O segundo comando altera a prioridade da regra para 220.

Modifique a regra de ACL de porta para o intervalo de endereços de destino e o protocolo de uma regra:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp

O primeiro comando recupera a regra AllowRDPAccess. O segundo altera o protocolo para UDP e define o destino para a sub-rede 172.185.21.0/24.

Anexar e desanexar ACLs de porta

Uma ACL de porta pode ser anexada a configurações globais, redes VM, sub-redes VM e adaptadores de rede virtual. Uma ACL de porta anexada às configurações globais se aplica por padrão a todos os adaptadores de rede virtual da VM.

  1. Abra o PowerShell no VMM.

  2. Anexe uma ACL do portal usando o cmdlet Set-SCVMMServer .

    Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
    

Parâmetros

Parâmetro Detalhes
Servidor VMM Nome do servidor VMM no qual a ACL de porta é aplicada
PortaACL Opcionalmente, anexa a ACL de porta especificada às configurações globais

Exemplos

Anexe uma ACL às configurações globais:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl

Desanexar uma ACL das configurações globais:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL

Anexe uma ACL a uma rede VM durante a criação:

New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]

Anexe uma ACL a uma rede VM existente:

Set-SCVMNetwork -PortACL $acl`

Anexe uma ACL a uma sub-rede de VM durante a criação:

New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]

Anexe uma ACL a uma sub-rede de VM existente:

Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]

Recuperar e visualizar ACLs e regras de porta

  1. Abra o PowerShell no VMM.

  2. Execute o cmdlet Get-SCPortACL para recuperar e exibir uma ACL de porta:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Execute o Get-SCPortACLRule para recuperar e exibir uma regra:

    Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    

Parâmetros

Parâmetro Detalhes
Sem parâmetros Recupera todas as ACLs
Nome/ID Recuperar por nome ou GUID
OnBehalfOfUser/OnBehalfOfUserRole Executar com nome de usuário ou função
VMMServer Recuperar ACLs em um servidor VMM específico
CommonParameters Saiba mais

Exemplos

Recupere uma ACL específica:

    PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"

Obtenha regras para uma ACL específica:

    PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"

Obtenha todas as regras para ACL:

    PS: C:> Get-SCPortACLRule -PortACL $portACL

Modificar ACLs e regras de porta

  1. Abra o PowerShell no VMM.

  2. Execute o cmdlet Set-SCPortACL para modificar uma ACL de porta:

    Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
    
  3. Execute o Remove-SCPortACL para remover uma ACL:

    Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
    

    Parâmetros

Parâmetro Detalhes
Nome/Descrição Nome e descrição da ACL da porta
Variável de trabalho Armazena o progresso do trabalho
OnBehalfOfUser/OnBehalfOfUserRole Executar com nome de usuário ou função
ProTipID ID da ProTip que acionou a ação
ExecutarDe forma assíncrona Indica se o trabalho é executado de forma assíncrona
Confirmar Prompts antes de executar o trabalho
WhatIf Mostra o que acontece sem executar o comando

Exemplos

Defina uma descrição de ACL:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"

O primeiro cmdlet recupera a ACL; o segundo define a descrição na ACL.

Remover uma ACL:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL

O primeiro cmdlet recupera a ACL; o segundo o remove.